Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 526

 
novichok2018:

Cette correspondance montre simplement que dans mon casif(!rost) n'est pas la même chose queif(rost==false). Parce qu' il y a unecondition distincte pour lesfaux.

Vous devez commencer par les bases. Ce sont deux entrées absolument identiques.

 
Artyom Trishkin:

Ce sont deux entrées absolument identiques.

Seulement si la logique du μl4 ne correspond pas à la logique du russe (et à la logique mathématique). Puisque l'expression ("NOT "rost) ne signifie pas que rost==(equal)false, car il existe une condition distincte stipulant quand rost==false. Donc "pas 5" ne signifie pas du tout "2".

 
novichok2018:

Seulement si la logique du μl4 ne correspond pas à la logique du russe (et à la logique mathématique). Puisque l'expression ("NOT "rost) ne signifie pas que rost==(equal)false, car il existe une condition distincte stipulant quand rost==false. C'est-à-dire que "pas 5" ne signifie pas du tout "2".

Si vous voulez que rost ne soit ni 5 ni 2, définissez alors rost comme int
 
novichok2018:

Seulement si la logique du μl4 ne correspond pas à la logique du russe (et à la logique mathématique). Puisque l'expression ("NOT "rost) ne signifie pas que rost==(equal)false, car il existe une condition distincte stipulant quand rost==false. C'est-à-dire que "pas 5" ne signifie pas du tout "2".

Apprenez les bases ;)

Non seulement cela, mais si vous définissez bool rost comme 5 ou 2, ou -5 ou -2, c'est évidemment vrai, car pour les variables booléennes, false est zéro, true est tout le reste.

 
Artyom Trishkin:

Apprenez les bases ;)

En plus de cela, si vous définissez bool rost comme 5 ou 2, ou -5 ou -2, alors c'est définitivement vrai, car pour les variables booléennes, false est zéro, true est tout le reste.

Donc vous essayez de m'expliquer la même chose queVladislav Andruschenko a expliqué plus tôt, mais je n'ai pas compris :"La deuxième ligne n'a pas d'importance parce que vous avez rost = bool et peut prendre seulement 2 valeurs et par défaut il est faux" .

Alors comment puis-je spécifier la deuxième condition ? Avec un drapeau supplémentaire ? Ou pas de drapeaux du tout, juste "condition dans les conditions" ? C'est sûrement mieux.

Merci.

 
novichok2018:

Donc vous essayez de me dire la même chose queVladislav Andruschenko a expliqué plus tôt, mais je ne comprends pas :"La deuxième ligne n'a pas d'importance, parce que vous avez rost = bool et il ne peut prendre que 2 valeurs et par défaut il est faux" .

Alors comment puis-je spécifier la deuxième condition ? Avec un drapeau supplémentaire ? Ou pas de drapeaux du tout, juste "condition dans les conditions" ? C'est probablement mieux.

Il sera plus facile de comprendre si vous considérez que les langages de programmation ont des conventions. Par exemple, n=n+10 ; est-ce correct du point de vue des mathématiques et de la logique ? Et il y a beaucoup de conventions de ce type. Vous devez croire que tout nombre correspond à une valeur logique. 0 = faux ; tous les autres nombres, qu'ils soient positifs ou négatifs = vrais. Voici un script pour le prouver :

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

Et voici le résultat :

 
STARIJ:

Il vous sera plus facile de comprendre si vous prenez pour acquis qu'il existe des conventions dans les langages de programmation. Par exemple, n=n+10 ; est-ce mathématiquement et logiquement correct ? Et il y a beaucoup de conventions de ce type. Vous devez croire que tout nombre correspond à une valeur logique. 0 = faux ; tous les autres nombres, qu'ils soient positifs ou négatifs = vrais. Voici un script pour le prouver :

Et voici le résultat :

Merci ! J'ai compris pour les conventions, je vais en tenir compte. Mais pour comprendre le script proposé, hélas, ma connaissance de mcl4 n'est pas suffisante. Désolé :( .

 
Le compte n'a plus de fonds et l'EA essaie d'ouvrir un ordre. Le serveur dit"pas assez de fonds pour..." et finalement BANNED. Y a-t-il un moyen de ne pas essayer s'il n'y a plus d'argent ?
 
PolarSeaman:
Le compte n'a plus de fonds et l'EA essaie d'ouvrir un ordre. Le serveur dit "pas assez de fonds pour..." et je finis par être banni. Y a-t-il un moyen d'arrêter d'essayer si nous n'avons plus d'argent ?

Si, il y en a un.

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

Si, il y en a un.

Merci.

Raison: