Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 526

 
novichok2018:

Esta correspondencia sólo muestra que en mi casoif(!rost) no es lo mismo queif(rost==false). Porquehay una condición distinta para elfalso.

Hay que empezar por lo básico. Son dos entradas absolutamente idénticas.

 
Artyom Trishkin:

Son dos entradas absolutamente idénticas.

Sólo si la lógica de μl4 no coincide con la lógica del ruso (y la lógica matemática). Ya que la expresión ("NOT "rost) no significa que rost==(igual)false, porque hay una condición independiente que estipula cuando rost==false. Así que "no 5" no significa "2" en absoluto.

 
novichok2018:

Sólo si la lógica de µl4 no coincide con la lógica del ruso (y la lógica matemática). Ya que la expresión ("NOT "rost) no significa que rost==(igual)false, porque hay una condición independiente que estipula cuando rost==false. Es decir, "no 5" no significa "2" en absoluto.

Si quieres que rost no sea ni 5 ni 2, entonces establece rost como int
 
novichok2018:

Sólo si la lógica de µl4 no coincide con la lógica del ruso (y la lógica matemática). Ya que la expresión ("NOT "rost) no significa que rost==(igual)false, porque hay una condición independiente que estipula cuando rost==false. Es decir, "no 5" no significa "2" en absoluto.

Aprende lo básico ;)

No sólo eso, sino que si estableces bool rost como 5 o 2, o -5 o -2, obviamente es verdadero, porque para las variables booleanas falso es cero, verdadero es todo lo demás.

 
Artyom Trishkin:

Aprende lo básico ;)

No sólo eso, sino que si estableces bool rost como 5 o 2, o -5 o -2, entonces es definitivamente verdadero, porque para las variables booleanas falso es cero, verdadero es todo lo demás.

Así que estás tratando de explicarme lo mismo queVladislav Andruschenko explicó antes, pero no lo entendí:"La segunda línea no importa porque tienes rost = bool y puede tomar sólo 2 valores y por defecto es falso" .

Entonces, ¿cómo se especifica la segunda condición? ¿Con una bandera adicional? ¿O no hay banderas en absoluto, sólo "condición en condiciones"? Seguramente esto es mejor.

Gracias.

 
novichok2018:

Así que estás tratando de decirme lo mismo queVladislav Andruschenko explicó antes, pero no lo entendí:"La segunda línea no importa, porque tienes rost = bool y sólo puede tomar 2 valores y por defecto es falso" .

Entonces, ¿cómo especifico la segunda condición? ¿Con una bandera adicional? ¿O no hay banderas en absoluto, sólo "condición en condiciones"? Esto es probablemente mejor.

Será más fácil de entender si da por sentado que los lenguajes de programación tienen convenciones. Por ejemplo, n=n+10; ¿Es esto correcto desde el punto de vista de las matemáticas y la lógica? Y hay muchos convenios de este tipo. Debes creer que cualquier número corresponde a un valor lógico. 0 = falso; Todos los demás números, tanto positivos como negativos = verdadero. Aquí hay un guión que lo demuestra:

//+------------------------------------------------------------------+
//| Логика языка 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);
}

Y aquí está el resultado:

 
STARIJ:

Te será más fácil entenderlo si asumes que hay convenciones en los lenguajes de programación. Por ejemplo, n=n+10; ¿Es esto matemática y lógicamente correcto? Y hay muchos convenios de este tipo. Debes creer que cualquier número corresponde a un valor lógico. 0 = falso; Todos los demás números, tanto positivos como negativos = verdadero. Aquí hay un guión que lo demuestra:

Y aquí está el resultado:

Gracias. Lo tengo sobre las convenciones, lo tendré en cuenta. Pero para entender el script sugerido, por desgracia, mis conocimientos de mcl4 no son suficientes. Lo siento :( .

 
La cuenta se ha quedado sin fondos y el EA está intentando abrir una orden. El servidor dice"no hay fondos suficientes para..." y al final se prohíbe. ¿Hay alguna forma de no intentarlo si no hay más dinero?
 
PolarSeaman:
La cuenta se ha quedado sin fondos y el EA está intentando abrir una orden. El servidor dice "no hay fondos suficientes para..." y termino siendo baneado. ¿Hay alguna forma de dejar de intentarlo si no tenemos más dinero?

Sí, lo hay.

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

Sí, lo hay.

Gracias.