Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
потому что вы берете каждый раз новое время тика, и оно конечно не равно предыдущему.
In der letzten Funktion haben Sie die Startzeit des Balkens genommen. Nehmen Sie also auch hier die Balkenzeit, nicht die Tickzeit.
Erklären Sie jemandem, der nicht versteht, welcher Parameter im Code in welchen zu ändern ist.
Wie kann man die Balkenzeit und nicht die Tickzeit beschreiben?
Erklären Sie jemandem, der nicht versteht, welcher Parameter im Code in welchen zu ändern ist.
Wie kann man die Balkenzeit anstelle der Tickzeit beschreiben?
Erklären Sie jemandem, der nicht versteht, welcher Parameter im Code in welchen zu ändern ist.
Wie kann man die Zeit eines Balkens und nicht eines Ticks beschreiben?
Hier ist eine gängige Beschreibung des "new bar"-Ereignishandlers
Seien Sie nicht zu faul, sich manchmal Artikel und die Codebasis anzuschauen, bevor Sie eine Frage stellen.
Вот тут все популярно описано Обработчик события "новый бар"
Seien Sie generell nicht zu faul, sich Artikel und Codebasen anzusehen, bevor Sie eine Frage stellen.
In mql4 konnte man in fünf Zeilen herausfinden, ob der Balken neu war oder nicht. Und nun sind eine ganze Reihe von Dateien geschrieben worden, und es ist nicht klar, wo sie hingehören, was in das Programm geschrieben werden soll...
Kurz gesagt, wenn es Experten, dann geben Sie mir ein Beispiel für Code, so dass ich nicht leiden, und ich kann jeder in die Bibliothek selbst zu senden, entweder auf die elektronische oder real ein.
Ich zweifle nicht daran, aber ich frage nur zur Kontrolle - hat jemand ein und denselben EA in mql4 und mql5 erstellt und die Testergebnisse verglichen? Wenn der Code richtig umgewandelt wird, sollte er sich doch perfekt ähneln, oder? Oder liege ich da falsch?
Wenn die Prüfung sowohl pro Bar und in mql5 die Logik in onTick platziert ist, dann wird es ähnlich sein.
Der einzige Unterschied könnte in den Spreads liegen. In 5 enthält die Geschichte die Spreads. In der Version 4 entspricht die Spreizung des Testers der aktuellen Spreizung des Terminals.
Wenn man "jeden Tick" testet, sieht es so aus, als ob er noch kleiner wäre, da die Algorithmen zur Erzeugung von Ticks in den beiden Versionen unterschiedlich sind.
In mql4 konnte man in fünf Zeilen herausfinden, ob der Balken neu war oder nicht. Und nun sind eine ganze Reihe von Dateien geschrieben worden, und es ist nicht klar, wo sie hingehören und was in das Programm geschrieben werden soll...
Kurz gesagt, wenn es Experten sind, dann geben Sie mir ein Beispiel für Code, so dass ich nicht leiden, und ich kann jeder in die Bibliothek selbst, elektronisch oder real zu senden.
Hier wird die Variable lastbar als statisch oder global deklariert, das Array iTime global
Auf der Seite gibt es ein Beispiel mit der Funktion isNewBar
https://www.mql5.com/ru/forum/2804/38752#comment_38752
1. Ich habe nicht nach den Ergebnissen der Tests der gleichen Strategien auf mql4 und mql5 gefragt.
Früher bin ich bei einem neuen Balken in den Markt eingestiegen, wenn die Bedingungen die Einstiegsvoraussetzungen erfüllen, und habe die Position geschlossen, wenn die Indikatoren das gegenteilige Signal anzeigten, und bin bei einem neuen Balken wieder eingestiegen.
Auf mql4 habe ich dieses Verfahren verwendet, um einen neuen Balken einzugeben:
void Fun_New_Bar() // Ф-ия обнаружения ..
{ // ... neuer Balken
static datetime New_Time=0; // Uhrzeit des aktuellen Taktes
New_Bar=false; // kein neuer Balken
if(Neue_Zeit!=Zeit[0]) // Zeiten vergleichen
{
Neue_Zeit=Zeit[0]; // Jetzt ist die Zeit
New_Bar=true; // Neuer Balken wird gefangen
}
}
So sieht das Ergebnis des Tests des Roboters auf mql4 mit meiner Strategie aus:
Vielen Dank für die Übermittlung der Verfahren zur Bestimmung der neuen Leiste. Sie sind im Einsatz. Ich habe ein Skript erstellt, das Alert bei einem neuen Balken schreibt, und es auf M1 getestet, also habe ich nicht zu lange gewartet.
Aber dieselbe Strategie liefert völlig unterschiedliche Ergebnisse (und dieselben), wenn beide Verfahren in mql5 Expert Advisor verwendet werden:
Ich habe nicht umsonst mein Hemd zerrissen und mit den Füßen aufgestampft. Ich möchte die Ergebnisse wiederholen, aber sie stimmen nicht überein.
So sieht die onStart-Funktion in mql4 ungefähr aus
int start()
{
GetIns();
Fun_New_Bar();
if (New_Bar==false) return(0);
wenn (Gesamt()>0)
{
CloseSellEnd();
CloseBuyEnd();
}
wenn (Gesamt()<1)
{
OpenBuy();
OpenSell();
}
zurück(0);
}
Dasselbe in mlq5:
void OnTick()
{
GetIns();
wenn (NeuerBalken())
{
wenn (Gesamt()>0) TryToClose();
wenn (Gesamt()<1)
{
OpenBuy(Lots,10, "EUR/USD (Buy)",102406);
OpenSell(Lots,10, "EUR/USD (Sell)",102406);
}
}
}
GetIns, um Indikatorparameter zu verarbeiten, und Total() - gibt die Anzahl der Positionen mit der erforderlichen Magie für mql4 oder mit dem erforderlichen Symbol für mql5 an.
Hilfe.
Ich glaube, ich habe den Grund für diese Diskrepanz gefunden. Sie werden es nicht glauben. Der MT4 und der MT5 haben einen unterschiedlichen Kursverlauf. Scheint etwas anders zu sein und die Strategie wird mit einem großen Unterschied getestet!!!!
Hier ist eine Darstellung auf verschiedenen Terminals:
Wenn man genauer hinsieht, ist da ein Unterschied. Eine kleine? Und wie groß ist der Unterschied zwischen den Testergebnissen der Strategie, der ebenfalls gering ist?
Ich werde die Entwickler kontaktieren! Was für eine Beta!!!