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

 
ANDREY:

Und was genau macht der Tester bei jedem Tick , wenn es in dem Programm, das er ausführt, kein einziges Symbol gibt, das dem Tester einen Befehl geben würde?

Nun, der Prüfer erstellt eine Simulation des Marktes. Er sendet bei jedem Tick einen neuen Preis an Ihren EA. Und da es 53 Tausend Häkchen gibt, braucht es viel Zeit, sie alle zu senden. All dies geschieht, bevor der EA-Code ausgeführt wird. Was in den EA zu schreiben ist, ist Sache des Programmierers und hat nichts mit der Arbeit des Testers zu tun.

 

Die Gesamtzeit umfasst die Laufzeit des Testers und die Vorbereitungszeit des Testers. Die Laufzeit Ihres Prüfgeräts ist in beiden Modi minimal (verarbeitet in). Die Zubereitungszeit ist unabhängig vom Modus einheitlich.

 
ANDREY:

Beim Testen der ERÖFFNUNGSPREISE wurden von 160 Aufträgen, die zu JEDEM TICK eröffnet wurden, nur 120 eröffnet, und zwar nicht zu Intra-Minuten-Preisen (wie es der Code verlangt).

Hier liegt alles in den Händen des Programmierers: wie man die Logik aufbaut, wie sie funktioniert, wie man nach Fehlern im Verständnis des Programms sucht.

Die Bearbeitung von Zecken in einer langen Geschichte nimmt viel Zeit in Anspruch. Und da es eine große Anzahl von Testläufen geben wird, muss die Berechnungszeit reduziert werden. Daher ist es besser, einen Expert Advisor mit Kontrolle der Eröffnung eines neuen Balkens zu entwickeln und den Modus - nach Eröffnungskursen- zu verwenden. Und dann untersuchen und analysieren Sie, was falsch ist.

 
Aleksei Stepanenko:

Nun, der Tester erstellt eine simulierte Marktoperation. Er sendet bei jedem Tick einen neuen Preis an Ihren EA. Und da es 53 Tausend Häkchen gibt, dauert es eine ganze Weile, sie alle zu versenden. All dies geschieht , bevor der EA-Code ausgeführt wird. Was in den EA zu schreiben ist, ist Sache des Programmierers und hat nichts mit der Arbeit des Testers zu tun.

Vielen Dank für die Informationen, aber die gelben und grauen Sätze scheinen sich zu widersprechen. Es scheint, dass der Tester ALLE Ticks mit Preisen an meinen Expert Advisor sendet, sobald die Funktion OnTick() zu arbeiten beginnt. Aber wenn OnTick( ) zu funktionieren beginnt , sendet das Testgerät keine Ticks mit Preisen an den Expert Advisor. In diesem Fall, was, wenn es nicht Ticks, die Programmzeilen von meinem EA verarbeiten wird? Es tut mir leid, wenn ich Sie missverstanden habe.

 
Aleksei Stepanenko:

Hier liegt alles in den Händen des Programmierers: welche Art von Logik er aufbauen will, wie sie funktionieren soll, wie er nach Fehlern sucht, um zu verstehen, wie das Programm funktioniert.

Die Bearbeitung von Zecken in einer langen Geschichte nimmt viel Zeit in Anspruch. Und da der Tester sehr oft laufen wird, muss die Berechnungszeit reduziert werden. Daher ist es besser, einen Expert Advisor mit Kontrolle der Eröffnung eines neuen Balkens zu entwickeln und den Modus - nach Eröffnungspreisen- zu verwenden. Und dann untersuchen und analysieren Sie, was falsch ist.

Sind Sie damit einverstanden, dass das Modell BAR OPENING PRICES keine Orders zu Tick-Preisen innerhalb einer Minutenkerze öffnet, wenn die Orders innerhalb einer Minutenkerze auf Ticks eröffnet werden? Auch wenn wir die Eröffnung jeder Minutenkerze kontrollieren.

 
Aleksei Stepanenko:

Die Gesamtzeit umfasst die Laufzeit des Testers und die Vorbereitungszeit des Testers. Die Laufzeit Ihres Prüfgeräts ist in beiden Modi minimal (verarbeitet in). Die Vorbereitung dauert unabhängig von der Art des Verfahrens die gleiche Zeit.

Dies bedeutet, dass Sie die Laufzeit des Testers nur bei der Verarbeitung in

 
Hallo! Ich wusste nicht, wo ein wenig off-topic zu schreiben, ich brauche einen Indikator für Binance Anwendung, gibt es eine "konfigurierbare Indikator" durch direkte Eingabe eines Codes hinzugefügt. Wenn Sie helfen können, hier ist die Aufgabe:
"Die Impulskerze identifizieren"

1. Vergleich der Körpergröße einer soeben geschlossenen Kerze mit den vorherigen Kerzen (Anzahl der vorherigen Kerzen X (sollte dies im Indikatorparameterfenster oder im Code selbst geändert werden?)

2. die Kerze muss um Y% größer sein als die vorherige Kerze (Möglichkeit, Y im Indikatorparameterfenster oder im Code zu ändern)

3. der Schatten einer Kerze macht nicht mehr als Z% des Kerzenkörpers aus (er sollte sich auch ändern)

Wenn alle drei Bedingungen erfüllt sind, ist es wünschenswert, eine Benachrichtigung an die E-Mail zu senden.
Ich habe bereits eine im Luac-Format, aber ich brauche sie auf Binance.

 
ANDREY:

Es stellt sich heraus, dass der Tester ALLE Ticks mit Preisen an meinen Expert Advisor in dem Moment sendet, in dem die Funktion OnTick() zu arbeiten beginnt.

OnTick() ist die Funktion zur Erfassung von Ereignissen, wobei das Ereignis das Eintreffen eines Ticks am Terminal oder die Imitation eines solchen Eintreffens im Tester ist. Wenn es einen Code in OnTick() gibt, wird dieser bei jedem eingehenden Tick ausgeführt. Wenn ein neuer Tick in dem Moment kommt, in dem der alte Tick verarbeitet wird, wird der neue Tick nicht in die Warteschlange gestellt, sondern übersprungen (im Handelsmodus). Wenn es keinen Code in OnTick() gibt, aktiviert der Tick auch diese Funktion, aber der Code ist nicht vorhanden, also gibt es nichts auszuführen.

 
Aleksei Stepanenko:

OnTick() ist eine Funktion zum Abfangen von Ereignissen, wobei das Ereignis das Eintreffen eines Ticks im Terminal oder ein simuliertes Eintreffen im Testgerät ist. Die Ticks kommen nacheinander und aktivieren die Funktion. Wenn es einen Code in OnTick() gibt, wird jeder Tick verarbeitet. Wenn ein neuer Tick eintrifft, während der alte verarbeitet wird, wird der neue Tick übersprungen und nicht in die Warteschlange gestellt. Wenn es keinen Code in OnTick() gibt, aktiviert der Tick auch diese Funktion, aber es gibt dort keinen Code, also gibt es nichts zu berechnen.

Ich hab's. Danke.

 
Hallo, können Sie mir bitte helfen zu verstehen, warum PrintFormat() das %-Zeichen benötigt, wenn ohne es die Werte wie in Print() protokolliert werden?
PrintFormat("%s %d: Schulter = 1:%I64d",
server,login,leverage);