Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 248

 
makssub #:

Herzlichen Dank für Ihre Antworten. Ich habe einige Ihrer Vorschläge umgesetzt.
Ich habe eine Funktion geschrieben, die das richtige Häkchen findet.
Ich habe eine Funktion geschrieben, die den Gewinn aller geschlossenen Aufträge nach dem gewünschten Auftragstick der gewählten Funktion berechnet. Jetzt muss ich sie nur noch gemäß Ihren Empfehlungen korrigieren und eine Prüfung nach Zeit usw. hinzufügen.

Das Einzige, was mich jetzt verwirrt, ist, dass es nicht richtig berechnet wird. Wenn der Test einen TP von 0,02 ergibt, wird 0,1300 berechnet und in Comment geschrieben. Bitte teilen Sie mir mit, was damit nicht in Ordnung ist?

Tick und Ticket sind unterschiedliche Dinge, ein Tick ist ein neu erscheinender Preis des Handels... Es ist besser, sich nicht gleich verwirren zu lassen.

TP und SL schließen an den Kursniveaus und dem Kurs mehr oder weniger. Der Preis ist diskret und der Preis der Stopp-Levels ist es auch. Wenn sie nicht über das Niveau hinausgeht, bleibt der Auftrag bestehen, wenn doch, wird er geschlossen. Im Tester werden 4 Ticks modelliert, das sind weniger als in der realen Situation und daher ist der Abstand zwischen den Tick-Preisen größer.

Fehler und der Handelsverlauf sind besser entweder in das Journal zu schreiben, aber dort gibt es viele unnötige Informationen, man sollte die notwendigen Zeilen finden, oder in die Datei. Es werden keine unnötigen Dinge in der Datei enthalten sein.

 
Valeriy Yastremskiy #:

Tick und Ticket sind unterschiedliche Dinge, ein Tick ist ein neuer Preis... Am besten ist es, wenn man sich nicht gleich verwirren lässt.

TP und SL schließen auf Preisniveau und Preis mehr oder weniger. Der Preis ist diskret und der Preis der Stopp-Levels ist es auch. Wenn sie nicht über das Niveau hinausgeht, bleibt der Auftrag bestehen, wenn doch, wird er geschlossen. Im Tester werden 4 Ticks modelliert, das sind weniger als in der realen Situation und daher ist der Abstand zwischen den Tick-Preisen größer.

Fehler und der Handelsverlauf sind besser entweder in das Journal zu schreiben, aber dort gibt es viele unnötige Informationen, Sie sollten die notwendigen Zeilen finden, oder in die Datei. Es werden keine unnötigen Dinge in der Datei enthalten sein.

Ich möchte sie heute im Protokoll anzeigen. Wenn überhaupt, werde ich wieder Fragen stellen.

 
Guten Tag.

Was ist der Unterschied zwischen einer Funktion und einem Operator?

Warum ist "if()" ein Operator und"Alert()" eine Funktion, wenn beide Klammern hinter ihrem Namen stehen? Ich studiere das mql4-Tutorial, aber ich verstehe die Zeichen und Eigenschaften nicht
 
Ivan Butko #:

Was ist der Unterschied zwischen einer Funktion und einem Operator?

Ich habe mir diese Frage nie gestellt, aber ich weiß, dass es in allen Programmiersprachen nur ein Dutzend Operatoren gibthttps://www.mql5.com/ru/docs/basis/operators

und der Rest sind entweder eingebaute Bibliotheken oder benutzerdefinierte Funktionen, deren Syntax wie () aussieht

S: Theoretisch werden alle Bibliotheken von den Betreibern geschrieben..... - zumindest war das früher in C so. MQL ist ein Wrapper auf einige Compiler, jetzt ist es wie LLVM und einige fertige Bibliotheken, die die eingebetteten Funktionen .... geben. aber das ist nur ein Gedanke, im Prinzip ist es egal, es kann die Aufgaben bewältigen

 
Ivan Butko "Alert()" eine Funktion, wenn beide Klammern hinter dem Namen stehen? Ich studiere das mql4-Tutorial, aber ich verstehe die Zeichen und Eigenschaften nicht

"if" wird direkt als Befehl in den Assembler übersetzt, während "Alert" eine Funktion ist, die Benachrichtigungen sendet.

 
Taras Slobodyanik #:

"if" wird direkt als Befehl in den Assembler übersetzt, während "Alert" eine Funktion ist, die Benachrichtigungen sendet.

Hmm ... Und switch oder new werden auch in einen Assembler-Befehl übersetzt?

;)


die Programmierfibel ist der beste Ort, um nachzuschauen, dort im Vorwort und in den ersten Kapiteln wird normalerweise etwas zu diesem Thema geschrieben, du musst nach einer Fibel für Schüler suchen, dort wird es sicher zu finden sein


UPD: und wenn ich mich recht erinnere, wird if durch Assembler XOR / CMP und dann JNE / JNZ ersetzt ... d.h. für Vergleiche und Flag-Übergänge, nicht ganz derselbe Assembler-Befehl, wenn auch nicht der Punkt

 
Ivan Butko "Alert()" eine Funktion, wenn beide Klammern nach ihrem Namen haben? Ich studiere das mql4-Tutorial, aber ich verstehe die Zeichen und Eigenschaften nicht

Unterschiede nur in der Semantik der jeweiligen Sprache. In dieser Sandbox ist es üblich, einen if-Operator aufzurufen. Solange du hier Puppen machst, soll es so sein :-)

Eigentlich ist es das Gleiche. Ich kenne Sprachen, in denen es keine "Operatoren", sondern nur Funktionen gibt... und umgekehrt (in der Praxis nicht verwendet, aber es gibt einige)

 
Igor Makanu #:

Hmm ... werden switch oder new auch in einen Assembler-Befehl übersetzt?

;)


im Allgemeinen solltest du eine Programmierfibel zu Rate ziehen, im Vorwort und in den ersten Kapiteln steht normalerweise etwas zu diesem Thema, du musst nach einer beliebigen Fibel für Schüler suchen, dort wird es genau stehen


UPD: und wenn ich mich recht erinnere, wird if durch Assembler XOR / CMP und dann JNE / JNZ ersetzt ... d.h. zum Vergleich und für Flag-Schalter, nicht ganz derselbe Assembler-Befehl, aber darum geht es auch nicht.

Wenn ich mich richtig an BASIC erinnere, sind Operatoren einfach eine Aktion, während Funktionen komplexer sind und mehrere Aktionen umfassen.

Dies ist historisch gesehen eine gute Erklärung)

 
Igor Makanu #:

UPD: und wenn ich mich recht erinnere, wird if durch Assembler XOR / CMP und dann JNE / JNZ ersetzt ... d.h. für den Vergleich und für Flag-Passes, nicht ganz derselbe Assembler-Befehl, obwohl es nicht darum geht

Das ist der Punkt, Sie können Operatoren in Assembler übersetzen, ohne Funktionen zu verwenden, mit einfachen CPU-Befehlen.

Und alles, was komplizierter ist, alles, was den Aufruf komplexer Prozeduren erfordert, das sind Funktionen.

Noch komplexer sind die Klassen-Strukturen.

 

Wenn nichts anderes, müssen Sie Wiki )))) lesen.

Bediener (Programmierung)

und es gibt einen Link zu einem entsprechenden Artikel

Bediener (Programmierung)