Fragen von Anfängern in MQL5. Fachleute kommen nicht vorbei. - Seite 2

 
Figar0:

Das "all ticks"-Modell hat nur 14-mal mehr Ticks als das "open price"-Modell auf H4. Entweder bin ich verrückt, oder einer der beiden... Es gibt also kein Modell des "offenen Preises"?

Werfen Sie einen Blick auf "Die Grundlagen des Testens in MetaTrader 5":

Nur offene Preise

Im Testmodus "Nur offene Kurse" wird die Erzeugung der Ticks durch denselben Algorithmus wie im Modus "1 Minute OHLC" durchgeführt. Der einzige Unterschied besteht darin, dass die Funktion OnTick() in diesem Modus nur auf die Eröffnungskurse des getesteten Zeitraums angewendet wird.

Zum Beispiel wird ein Expert Advisor auf EURUSD H1 im Modus "Nur offene Kurse" getestet. Das bedeutet, dass die Gesamtzahl der Ticks (Kontrollpunkte) die gleiche ist wie im "1 Minute OHLC"-Modus, aber der OnTick()-Handler wird nur beim Öffnen eines Stundenbalkens aufgerufen . Bei anderen ("verborgenen" von einem Expert Advisor) Ticks finden die für die korrekte Prüfung erforderlichen Kontrollen statt:

  • Berechnung der Einschussanforderungen;
  • Auslösung von Stop Loss und Take Profit;
  • Auslösung von schwebenden Aufträgen;
  • Entfernung von ausstehenden Aufträgen mit abgelaufener Zeit.

Wenn es keine offenen Positionen oder schwebenden Aufträge gibt, sind diese Überprüfungen von versteckten Ticks nicht erforderlich, und die Geschwindigkeit kann erheblich gesteigert werden. Dieser Modus "Nur offene Kurse" eignet sich gut für das Testen von Strategien, die nur bei der Eröffnung eines Balkens handeln und keine Pending-Orders sowie StopLoss- und TakeProfit-Orders verwenden. Für die Klasse dieser Strategien wird die gesamte erforderliche Präzision der Prüfung beibehalten.

 
Rosh:

Werfen Sie einen Blick auf diesen Artikel Basic Testing in MetaTrader 5:

Es ist klar, warum, aber es ist nicht klar, wie es sein soll? Wie ich bereits sagte - traurig - ist der MT5-Tester in meinem Beispiel 70 Mal langsamer als der MT4-Tester. Wo in meinem MT4 war ein Tag hier werden 10 Wochen? Es ist cool, ich habe beschlossen, zu beschleunigen) Es ist gut, dass ich klein angefangen und nicht umgewandelt all die guten Sachen zu MT5 für die Prüfung)

Verzeihen Sie meinen Sarkasmus, ich verstehe, dass der MT5-Tester eine Menge Vorteile gegenüber MT4 hat, aber das wird durch die Geschwindigkeit aufgewogen.

Vielleicht sollten wir ein ähnliches Modell wie die "Eröffnungskurse" von MT4 einführen? Lassen Sie es ungenau sein, lassen Sie es in fetter roter Schrift mit vielen Warnungen erscheinen, aber lassen Sie es unmittelbarer sein als in MT4. Die Genauigkeit der Testsequenz-Generierung im MT5 ist zum Beispiel für Expert Advisors, die auf einer Bar-Eröffnung ohne TP und SL arbeiten, absolut unnötig.

 
Figar0:

Es ist klar, warum, aber nicht klar, wie es sein soll? Wie ich bereits sagte - traurig - ist der MT5-Tester in meinem Beispiel 70 Mal langsamer als der MT4-Tester. Wo in meinem MT4 war ein Tag hier werden 10 Wochen? Es ist cool, ich habe beschlossen, zu beschleunigen) Es ist gut, dass ich klein angefangen und nicht umgewandelt all die guten Sachen zu MT5 für die Prüfung)

Verzeihen Sie meinen Sarkasmus, ich verstehe, dass der MT5-Tester eine Menge Vorteile gegenüber MT4 hat, aber das wird durch die Geschwindigkeit aufgewogen.

Vielleicht sollten wir ein ähnliches Modell wie die"Eröffnungskurse" von MT4 einführen? Lassen Sie es ungenau sein, lassen Sie es in fetter roter Schrift mit vielen Warnungen erscheinen, aber lassen Sie es unmittelbarer sein als in MT4. Die Genauigkeit der Testsequenz-Generierung im MT5 ist zum Beispiel für Expert Advisors, die auf einer Bar-Eröffnung ohne TP und SL arbeiten, absolut unnötig.

Wenn Sie schnelle offene Preise wollen, schreiben Sie einfach einen Filter in den Code, so dass er nicht unter der Bedingung berechnet wird, dass es keinen neuen Balken gibt. Die Generierung der Ticks selbst dauert minimal, speziell die 3-Jahres-Historie auf jedem TF (zu offenen Preisen) dauert 7-15 Sekunden.
 
Urain:
Wenn Sie schnell durch offene Preise wollen, schreiben Sie einfach einen Filter in den Code, so dass es keine Berechnung auf Bedingung, bis ein neuer Balken erscheint, die Erzeugung von Ticks selbst nimmt minimale Zeit, speziell 3-Jahres-Historie auf einem TF (durch offene Preise) dauert 7-15 Sekunden.
Welche Art von Filter?) Ich habe eine Prüfung auf einen neuen Balken am Anfang von Ontick(). Aber selbst mit diesem Filter ist meine Optimierung von vergleichbaren EAs in MT5 70!!! mal langsamer als MT4, und es ist nicht zum Lachen... Vielleicht habe ich mich in diesem Teil des Codes vertan (nach neuer Leiste suchen), bitte schauen Sie sich die Codeseite vorher an. Oder liegt das vielleicht nur an mir? Vielleicht sollte ich versuchen, zum Beispiel mt5 neu zu installieren?
 
Figar0:
Welche Art von Filter?) Mein Ontick() beginnt mit einer Prüfung auf einen neuen Balken. Aber selbst mit diesem Filter ist die Optimierung vergleichbarer EAs in MT5 70!!! mal langsamer als in MT4, und das ist nicht lustig ... Vielleicht habe ich mich in diesem Teil des Codes vertan (nach neuer Leiste suchen), bitte schauen Sie sich die Codeseite vorher an. Oder liegt das vielleicht nur an mir? Vielleicht sollte ich versuchen, zum Beispiel mt5 neu zu installieren?

Erstellen einer Variablen bei jedem Tick, Erstellen eines dynamischen Arrays bei jedem Tick, Aufrufen der Kopierfunktion, zwei Prüfungen.

Warum diese Komplikationen?

Sie deklarieren eine globale Variable, die die Anzahl der Takte in der vorherigen Abfrage speichert, und prüfen, ob sich die Anzahl der Takte geändert hat, das ist alles.

int prevbars;

int OnInit()
  {
   prevbars=-100;// любое число которое не может вернуть Bars()  
   // ...
   return(0);
  }

void OnTick()
  {
   if(prevbars!=Bars(_Symbol,_Period))
     {
      prevbars=Bars(_Symbol,_Period);
      // ...
     }
  }

Wenn Sie weitere Nachweise benötigen, dann platzieren Sie diese Nachweise innerhalb des geschützten Bereichs.

 
Urain:

Erstellen einer Variablen bei jedem Tick, Erstellen eines dynamischen Arrays bei jedem Tick, Aufrufen der Kopierfunktion, zwei Prüfungen.

Warum diese Komplikationen?

Deklarieren Sie global eine Variable, die die Anzahl der Takte bei der letzten Anfrage speichert, und prüfen Sie, ob sich die Anzahl der Takte geändert hat, das ist alles.

Wenn Sie prüfen wollen, ob die Daten geladen sind, dann platzieren Sie diese Prüfung innerhalb der geschützten Zone.

Ich danke Ihnen. Aber glauben Sie wirklich, dass dies die Situation grundlegend ändern kann?) Überprüft, so Pennies, vielleicht nur innerhalb der Fehlermarge... Es ist alles über den riesigen Unterschied im Volumen der generierten Ticks von "By opening prices" Modell in MT4 2K und MT 1200K, keine Multicore und Wolke wird helfen. Ich weiß nicht einmal, ob dieses Modell ein "Recht" hat, von Eröffnungskursen genannt werden, es ist wie "1 Tick von 14" Modell nach dem Verhältnis zu beurteilen. Ich weiß nicht, woran das Modell "Eröffnungskurs" von MT4 schuld ist, ich verstehe es nicht. Es gab definitiv eine Nachfrage danach, warum sollte man es nicht in seiner MT4-Form belassen?

Ich weiß nicht, warum und für wen diese Redundanz bei den Prüfungen so offensichtlich ist. Müssen wir den Tester benutzen, um aus der Geschichte Gewinn zu ziehen? Ich denke, der wichtigste Punkt ist, dass die Genauigkeit des Testers nicht auf ein echtes Konto übertragen werden kann.

Übrigens, wer weiß, wo man mein Lieblingskästchen "Unbrauchbare Ergebnisse überspringen" verstecken kann? Ich konnte es nicht finden.... Ist sie auch in Ungnade gefallen?)

 
Figar0:

Es war definitiv gefragt

... ist und wird weiterhin gefragt sein.

Warten wir darauf, dass die Verlaufsdateien, zumindest die Minutendateien, geknackt werden.

 
TheXpert:

... nutzt und weiterhin nutzen wird.

Warten wir, bis die Verlaufsdateien, zumindest die Minutendateien, geknackt sind.

Ja, ich verstehe, wir werden das schon irgendwie hinkriegen, ich wollte nur Unordnung vermeiden... Die Entwickler scheinen gewillt zu sein, eine benutzbare und funktionelle => bei Händlern beliebte => bei Maklerfirmen beliebte Plattform zu schaffen. Aber manchmal denke ich, dass sie die Sache einfach nicht von der anderen Seite aus betrachten). Dann die kategorische Verweigerung der Möglichkeit, Streuungen festzulegen (mit dem Ergebnis, dass man 4 am Wochenende ohne TakeMySpread nicht nutzen kann), und jetzt die Einführung einer innovativen Cloud, Agenten, die die Arbeit beschleunigen sollen und als Ergebnis die Verlangsamung um das 70-fache... Ich verstehe es nicht.
 
Die Entwickler müssen eine weitere Option zur Auswahl hinzufügen. Das heißt, die alte Option" Eröffnungspreise". Sie reicht für viele Ideen aus. Ich habe in allen Modi von MT4 identische Ergebnisse erzielt. Die Wolke wird dann zu einer Superwolke, wenn sie in der alten Variante getestet wird)).
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
joo:

Ich würde den gleichen Modus "nach Eröffnungskurs" hinzufügen, aber mit einer Option zur Auswahl eines Unterzeitrahmens. Nehmen wir an, Sie haben den Testzeitrahmen H1 gewählt, das bedeutet, dass Sie die Modi der Preisbewegung auf M1, M2, M5, M10 ..... auswählen können. М30. Dann wird es sehr flexibel sein, zwischen "Geschwindigkeit und Genauigkeit" zu wählen (wenn sie keine Pipsers sind, werden die meisten "Geschwindigkeit" bevorzugen).

Das ist eine großartige Ergänzung! Auch gestaffelte Balken im Testgerät... Aber das ist eine andere Geschichte.))