Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 526

 
novichok2018:

Esta correspondência apenas mostra que no meu casose(!rost) não é o mesmo quese(rost==falso). Porqueexiste uma condição separada para ofalso.

Você precisa começar com o básico. Estas são duas entradas absolutamente idênticas.

 
Artyom Trishkin:

Estas são duas entradas absolutamente idênticas.

Somente se a lógica do µl4 não corresponder à lógica do russo (e da lógica matemática). Como a expressão ("NÃO "rost") não significa que rost===(igual) falso, pois há uma condição separada que estipula quando rost===falso. Portanto, "não 5" não significa "2" de forma alguma.

 
novichok2018:

Somente se a lógica de μl4 não corresponder à lógica da Rússia (e da lógica matemática). Como a expressão ("NÃO "rost") não significa que rost===(igual) falso, pois há uma condição separada que estipula quando rost===falso. Isto é, "não 5" não significa "2" de forma alguma.

Se você quer que o rost não seja 5 ou 2, então defina rost como int
 
novichok2018:

Somente se a lógica do µl4 não corresponder à lógica do russo (e da lógica matemática). Como a expressão ("NÃO "rost") não significa que rost===(igual) falso, pois há uma condição separada que estipula quando rost===falso. Isto é, "não 5" não significa "2" de forma alguma.

Aprender o básico ;)

Não apenas isso, mas se você definir bool rost como 5 ou 2, ou -5 ou -2, é obviamente verdade, porque para variáveis booleanas falso é zero, verdadeiro é tudo o mais.

 
Artyom Trishkin:

Aprender o básico ;)

Não apenas isso, mas se você definir bool rost como 5 ou 2, ou -5 ou -2, então é definitivamente verdade, porque para variáveis booleanas falso é zero, verdadeiro é tudo o mais.

Então você está tentando me explicar o mesmo queVladislav Andruschenko explicou antes, mas eu não entendi:"A segunda linha é irrelevante porque você tem rost = bool e pode tomar apenas 2 valores e por padrão é falso" .

Então, como especificar a segunda condição? Com uma bandeira adicional? Ou sem bandeira alguma, apenas "condição em condições" ? Certamente, isto é melhor.

Obrigado.

 
novichok2018:

Então você está tentando me dizer a mesma coisa queVladislav Andruschenko explicou anteriormente, mas não entendo:"A segunda linha não importa, porque você tem rost = bool e só pode tomar 2 valores e por padrão é falso" .

Então, como especificar a segunda condição? Com uma bandeira adicional? Ou sem bandeira alguma, apenas "condição em condições" ? Isto provavelmente é melhor.

Será mais fácil de entender se você tomar por certo que as linguagens de programação têm convenções. Por exemplo, n=n+10; Isto é correto do ponto de vista da matemática e da lógica? E existem muitas dessas convenções. Você deve acreditar que qualquer número corresponde a um valor lógico. 0 = falso; Todos os outros números, tanto positivos como negativos = verdadeiro. Aqui está um roteiro para provar isso:

//+------------------------------------------------------------------+
//| Логика языка mql-4                                     PROBA.mq4 |
//+------------------------------------------------------------------+
#property strict
void OnStart()
{
  string s1="Числовое значение n:   ";
  string s2="Логическ значение n: ";
  string s3="ЛогичЧис значение x: ";
  string s4="Числовое значение x:   ";
  bool x;
  int k;
  Alert("-------------------------");
  for(int n=-4; n++<3;)                  // Вот еще: можно ли так цикл записать?  а Вы попробуйте!!!
  {
     s1 +=string(n)+"        ";
     s2 += (n ? "TRUE" : "false")+"   ";
     x=n;
     s3 += (x ? "TRUE" : "false")+"   ";
     k=x;
     s4 += (string)k + "         ";
  }
  Alert(s4);
  Alert(s3);
  Alert(s2);
  Alert(s1);
}

E aqui está o resultado:

 
STARIJ:

Será mais fácil para você entender se você acreditar que existem convenções em linguagens de programação. Por exemplo, n=n+10; Isto é matematicamente e logicamente correto? E existem muitas dessas convenções. Você deve acreditar que qualquer número corresponde a um valor lógico. 0 = falso; Todos os outros números, tanto positivos como negativos = verdadeiro. Aqui está um roteiro para provar isso:

E aqui está o resultado:

Obrigado! Entendi sobre convenções, vou levar isso em consideração. Mas para entender o roteiro sugerido, infelizmente, meu conhecimento do mcl4 não é suficiente. Desculpe :( .

 
A conta ficou sem fundos e a EA está tentando abrir uma ordem. O servidor diz"não há fundos suficientes para..." e eventualmente BANNED. Existe alguma maneira de não tentar se não houver mais dinheiro?
 
PolarSeaman:
A conta ficou sem fundos e a EA está tentando abrir uma ordem. O servidor diz "não há fundos suficientes para..." e eu acabo sendo banido. Existe alguma maneira de pararmos de tentar se não tivermos mais dinheiro?

Sim, .

AccountFreeMarginCheck - Информация о счете - Справочник MQL4
AccountFreeMarginCheck - Информация о счете - Справочник MQL4
  • docs.mql4.com
Размер свободных средств, которые останутся после открытия указанного ордера по текущей цене на текущем счете. Если свободных средств не хватает, то будет сгенерирована ошибка 134 (ERR_NOT_ENOUGH_MONEY).
 
Ihor Herasko:

Sim, .

Obrigado.