Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 526

 
novichok2018:

Diese Entsprechung zeigt nur, dass in meinem Fallif(!rost) nicht dasselbe ist wieif(rost==false). Dennes gibt eine eigene Bedingung fürfalsch.

Sie müssen mit den Grundlagen beginnen. Es handelt sich um zwei absolut identische Einträge.

 
Artyom Trishkin:

Es handelt sich um zwei absolut identische Einträge.

Nur wenn die Logik von μl4 nicht mit der Logik des Russischen (und der mathematischen Logik) übereinstimmt. Denn der Ausdruck ("NOT "rost) bedeutet nicht, dass rost==(gleich)falsch ist, denn es gibt eine separate Bedingung, die festlegt, wann rost==falsch ist. Nicht 5" bedeutet also keineswegs "2".

 
novichok2018:

Nur wenn die Logik von µl4 nicht mit der Logik des Russischen (und der mathematischen Logik) übereinstimmt. Denn der Ausdruck ("NOT "rost) bedeutet nicht, dass rost==(gleich)falsch ist, denn es gibt eine separate Bedingung, die festlegt, wann rost==falsch ist. D.h. "nicht 5" bedeutet keineswegs "2".

Wenn rost weder 5 noch 2 sein soll, dann setzen Sie rost als int
 
novichok2018:

Nur wenn die Logik von μl4 nicht mit der Logik des Russischen (und der mathematischen Logik) übereinstimmt. Denn der Ausdruck ("NOT "rost) bedeutet nicht, dass rost==(gleich)falsch ist, denn es gibt eine separate Bedingung, die festlegt, wann rost==falsch ist. D.h. "nicht 5" bedeutet keineswegs "2".

Lernen Sie die Grundlagen ;)

Und nicht nur das: Wenn Sie bool rost als 5 oder 2 oder -5 oder -2 setzen, ist es offensichtlich wahr, denn für boolesche Variablen ist false gleich Null, true ist alles andere.

 
Artyom Trishkin:

Lernen Sie die Grundlagen ;)

Und nicht nur das: Wenn du bool rost als 5 oder 2 oder -5 oder -2 einstellst, dann ist es definitiv wahr, denn für boolesche Variablen ist false gleich Null, true ist alles andere.

Sie versuchen also, mir dasselbe zu erklären, wasVladislav Andruschenko bereits erklärt hat, aber ich habe es nicht verstanden:"Die zweite Zeile ist irrelevant, weil Sie rost = bool haben und nur 2 Werte annehmen können, und standardmäßig ist es false" .

Wie kann ich dann die zweite Bedingung angeben? Mit einer zusätzlichen Flagge? Oder gar keine Flaggen, nur "Bedingung in Bedingungen"? Sicherlich ist dies besser.

Ich danke Ihnen.

 
novichok2018:

Sie versuchen also, mir dasselbe zu sagen, wasVladislav Andruschenko bereits erklärt hat, aber ich habe es nicht verstanden:"Die zweite Zeile spielt keine Rolle, weil Sie rost = bool haben und es nur 2 Werte annehmen kann und standardmäßig false ist" .

Wie kann ich dann die zweite Bedingung angeben? Mit einer zusätzlichen Flagge? Oder gar keine Flaggen, nur "Bedingung in Bedingungen"? Dies ist wahrscheinlich besser.

Es wird leichter zu verstehen sein, wenn Sie davon ausgehen, dass Programmiersprachen Konventionen haben. Zum Beispiel n=n+10; ist dies aus Sicht der Mathematik und Logik richtig? Und solche Konventionen gibt es viele. Sie sollten glauben, dass jede Zahl einem logischen Wert entspricht. 0 = falsch; alle anderen Zahlen, sowohl positive als auch negative, = wahr. Hier ist ein Skript, das dies beweist:

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

Und hier ist das Ergebnis:

 
STARIJ:

Es wird für Sie leichter zu verstehen sein, wenn Sie davon ausgehen, dass es in Programmiersprachen Konventionen gibt. Beispiel: n=n+10; ist dies mathematisch und logisch korrekt? Und solche Konventionen gibt es viele. Sie sollten glauben, dass jede Zahl einem logischen Wert entspricht. 0 = falsch; alle anderen Zahlen, sowohl positive als auch negative, = wahr. Hier ist ein Skript, das dies beweist:

Und hier ist das Ergebnis:

Ich danke Ihnen! Das mit den Konventionen habe ich verstanden, ich werde es berücksichtigen. Aber um das vorgeschlagene Skript zu verstehen, reichen meine Kenntnisse von mcl4 leider nicht aus. Tut mir leid :( .

 
Das Konto hat kein Guthaben mehr und der EA versucht, einen Auftrag zu eröffnen. Der Server sagt"nicht genug Mittel für..." und schließlich BANNED. Gibt es eine Möglichkeit, es nicht zu versuchen, wenn es kein Geld mehr gibt?
 
PolarSeaman:
Das Konto hat kein Guthaben mehr und der EA versucht, einen Auftrag zu eröffnen. Der Server sagt "nicht genug Geld für..." und ich werde gebannt. Gibt es eine Möglichkeit, den Versuch abzubrechen, wenn wir kein Geld mehr haben?

Ja, die gibt es.

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

Ja, die gibt es.

Ich danke Ihnen.

Grund der Beschwerde: