Fehler, Irrtümer, Fragen - Seite 2120

 
fxsaber:

Es sieht nicht so aus, als wäre es eng fokussiert. Sieht nicht so aus, als ob es noch nicht öffentlich zugänglich wäre.

Es kann durchaus ein internes Produkt der Analyse der eigenen Werbung, des Forums und etwas anderem sein
 
Комбинатор:
Es kann durchaus das interne Produkt einer Analyse der eigenen Werbung, des Forums und etwas anderem sein

Die Beschreibung stimmt irgendwie nur schlecht mit dem internen Gebrauch überein.

 

?

void OnStart()
{
        int a = 0, b = 0; //Результат:
        Print(( ++a) + ( ++a)); //3
        Print((b+=1) + (b+=1)); //4
}

Ergebnis: 3 4

Was ist der Unterschied?

 
A100:

?

Ergebnis: 3 4

Worin besteht der Unterschied?

Natürlich gibt es einen Unterschied. Im ersten Fall kommt zuerst ++a, dann +, dann ++a.

Die zweite ist b+=1, dann b+=1, dann b+b.

 
Können Sie Neulingen einen Rat geben? Früher haben wir in MQL4 beim Schreiben einer Bedingung in einem EA einfach Close[0] geschrieben, um den Schlusskurs anzugeben, z. B. eine Kerze schloss über dem gleitenden Durchschnitt, und der Auftrag wurde geöffnet. In MQL5 (für Forts) funktioniert das nicht, verschiedene Indikatoren können über Handles verglichen werden, aber eine einfache Candlestick-Analyse wird nicht funktionieren. Vielleicht müssen diese Candlesticks (High, Low, Open, Close) irgendwo deklariert werden? Bei MT4 habe ich einfach Close[0] in die Bedingung geschrieben und das System hat verstanden, dass dies der Schlusskurs des aktuellen Balkens ist.
 
VadimR:
Können Sie Neulingen einen Rat geben? Früher haben wir in MQL4 beim Schreiben einer Bedingung in einem EA einfach Close[0] geschrieben, um den Schlusskurs anzugeben, z. B. eine Kerze schloss über dem gleitenden Durchschnitt, und der Auftrag wurde geöffnet. In MQL5 (für Forts) funktioniert das nicht, verschiedene Indikatoren können über Handles verglichen werden, aber eine einfache Candlestick-Analyse wird nicht funktionieren. Vielleicht müssen die Candlestick-Daten (High, Low, Open, Close) irgendwo angegeben werden? Aber für MT4 habe ich einfach Close[0] in die Bedingung geschrieben und das System hat erkannt, dass dies der Schlusskurs des aktuellen Balkens ist.

Funktion CopyXXXX verwenden

 
fxsaber:

Natürlich gibt es einen Unterschied.

Die zweite ist b+=1, dann b+=1, dann b+b.

Wenn Sie dieser Logik folgen, dann

void OnStart()
{
        int c = 0;    //Результат:
        Print( c     + (c+=1)); //1
}

Zuerst c+=1, dann c+c und das Ergebnis ist 1+1= 2. Und das Ergebnis = 1

 
A100:

Wenn Sie dieser Logik folgen, dann

Zuerst c+=1, dann c+c und das Ergebnis ist 1+1= 2. Und das Ergebnis = 1

Es funktioniert nur im Skript nicht richtig und im EA funktioniert es gut.

Ich meine das vorherige Beispiel.

 
A100:

Wenn Sie dieser Logik folgen, dann

Erst ist c+=1, dann c+c und das Ergebnis ist 1+1= 2. Und das Ergebnis = 1

Sie verstehen die Logik nicht.

Print((c+=0) + (c+=1)); //2
Print((c+=1) + c); //2
 
fxsaber:

Du verstehst nicht, worum es geht.

Wenn ich die Logik nicht verstehe, warum ist dann das Ergebnis https://www.mql5.com/ru/forum/1111/page2140#comment_6484866 in beiden Fällen in C99\C++ gleich?

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2018.02.05
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы