Diskussion zum Artikel "Der Algorithmus der Tick-Erzeugung im Strategietester des MetaTrader 5 Terminals" - Seite 4

 
Renat :
Aber Sie beteiligen sich am Thema MetaTrader 5 + MQL5 + Tester und stehen damit in direkter Konkurrenz zu den Entwicklern.


Da Sie das MetaTrader 5-Terminal nicht kennen, sind Ihnen die Handelsmodi im Tester nicht bekannt und Sie haben nicht einmal meiner Erklärung dieser Modi mit einem Bild auf der ersten Seite dieses Themas Beachtung geschenkt.

Die Testmodi wurden speziell entwickelt, um Trader nüchtern zu machen und robuste Expert Advisors zu schreiben. Dies wird die Expert Advisors dramatisch und qualitativ verbessern.

Ich habe wiederholt über aggressive Modi im Tester in Foren (MQL4.com und MQL5.com) geschrieben.

Dies ist die Wurzel der Probleme - die mangelnde Bereitschaft, in der Praxis zu testen.

Im Allgemeinen sieht unser Dialog wie eine Diskussion zwischen Gegnern und Befürwortern von Sperren aus,

Jede Seite will die andere nicht hören (wahrscheinlich, weil eine Seite einige Lösungen erlitten hat, die die Gegner nicht sehen und nicht verstehen).

Es wäre gut, dass Sie Recht haben und die Praxis wird es zeigen,

Ich wünsche Ihnen viel Glück und glauben Sie mir, es ist ein aufrichtiger Wunsch, denn für mich ist es wichtiger, ein perfekteres Terminal zu benutzen

(und mit seiner Hilfe Gewinn zu machen), als in einem Streitfall Recht zu haben.

 
Renat писал(а) :

...
4. Ich erinnere mich an Ihre "Fähigkeiten" in der Modellierung und Ihre Einstellung dazu in MT4. Ich kann eine weitere Frage stellen. Haben Sie die gleiche Anzahl von Ticks in einem Balken? In MT4 haben Sie früher 20% der Ticks weggeworfen. Wie ist das jetzt? Wenn ein echter Balken 100 Ticks hat, wie viele Ticks haben Sie dann in der Modellierung?

Es stimmt überein, aber Sie wollen das nicht überprüfen. Theoretisches Denken reicht Ihnen.

Okay, lass es uns überprüfen. Ich habe einen Experten skizziert. Hier ist der Code.

  int ticks=0; 
  double  old_bid=0, old_ask=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit() {return(0);}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason){}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  MqlTick last_tick;
//---
   if(SymbolInfoTick(Symbol(),last_tick)) // получаем тик по символу
     {
     // ограничение по времени, собираем смоделированные тики за 1 час. 2010.05.21   22:00
      if(last_tick.time>"2010.05.21 21.00.00" && last_tick.time<"2010.05.21 23.00.00") {
      if(old_ask!=last_tick.ask || old_bid!=last_tick.bid)  { // если нет изменения цены это не тик, пропускаем
         // это тик запоминаем цену, увеличиваем счетчик тиков и выводим принт для проверки
         old_bid=last_tick.bid;
         old_ask=last_tick.ask;
         ticks++;
         Print("ticks=", ticks," ",last_tick.time,": Bid =",last_tick.bid," Ask =",last_tick.ask);
     }      
     }
     }
   else Print("SymbolInfoTick() failed, error =",GetLastError());
//---
  }

Hier ist das Ergebnis.

Die Zahlen stimmen nicht überein. Entweder sind meine Hände krumm oder du lügst. Jeder kann es herunterladen und selbst überprüfen. Wenn Sie einen Fehler in meinem Code finden, wäre ich Ihnen dankbar.

Dateien:
111.mq5  3 kb
 

Die praktische Prüfung ergab die erste Option. Sie haben einen Fehler bei den Grenzwerten gemacht, indem Sie 2 Stunden statt einer Stunde angegeben haben.

Hier ist die richtige Variante der Zeitbegrenzung:

      if(last_tick.time>="2010.05.21 21:00" && last_tick.time<"2010.05.21 22:00") 

Und die Ergebnisse:

2010.05.23 20:13:07     Core 1  ticks= 2315   2010.05.21 21:59:59 : Bid = 1.25721  Ask = 1.25738

Es wurden 2315 Ticks erzeugt, während es in Wirklichkeit 2318 Ticks waren. Ein Verlust von 3 Ticks von 2318 ist eine normale Variante.


 

Sie stimmen zu, dass dieser Code überprüft werden kann. Sie müssen nur noch das richtige Zeitintervall eingeben. Bitte geben Sie dieses ein.

      if(last_tick.time>"2010.05.19 12.00.00" && last_tick.time<"2010.05.19 13.00.00") {

Erklären Sie, wo 5200 Ticks geblieben sind?

 

Es ist gut, dass Sie mit den Übungstests weitermachen.

Ich habe nicht 5869 Ticks auf dieser Uhr, sondern 679. Hier sind meine Ergebnisse der Ausführung dieses Zeitraums - 679 Ticks. 100 % der Ticks wurden simuliert.


Offensichtlich haben Sie eine zwischengespeicherte Uhr (und die Minuten waren für insgesamt 679 Ticks korrekt) - wir haben den Ticker am 19. für kurze Zeit eingeschaltet, aber dann haben wir ihn zurückgedreht.

Rufen Sie einfach den Befehl "Aktualisieren" im Diagramm auf und führen Sie es erneut aus.

Achten Sie auf das richtige Zeitformat JJJJ.MM.TT HH:MM:SS.

 

ein Thema, das vergessen wurde, in diesem Artikel behandelt zu werden

mit dem Erscheinen von echten Volumendaten in mt5

wie diese Informationen generiert werden

 

Ich verstehe Pips-Trader sehr gut, auch wenn Urain und Prival es ablehnen. Aber meine TSs sind im Gegenteil auf die maximal mögliche Rauschfilterung aufgebaut, TSs werden immun gegen die Qualitäten von Ticks. Solche TSs können mit allen Kursanbietern verwendet werden. Was die von Urain erwähnte NN betrifft - es macht keinen Sinn, einen TS auf NN zu bauen, der auf die Qualität der Ticks reagiert.

Ich kann die Entwickler auch gut verstehen.

Ich sehe einen Kompromiss darin, dass die Entwickler ein Add-on zum Standard-Tick-Generator erstellen, das es ermöglicht, die "Fluffigkeit" der generierten Ticks zu regulieren, mit der Möglichkeit, die Häufigkeit des Auftretens und die Größe der Emissionen in Ticks zu regulieren. Meiner Meinung nach ist dies nicht dasselbe wie die Einstellung des "Aggressionsgrads" der Tests. Vielleicht sollten wir die Möglichkeit einer Art Analysator für den Grad der Übereinstimmung zwischen den im Tester erzeugten Ticks und den realen Ticks in Betracht ziehen, so dass wir dann die Parameter ausgeben könnten, die den Benutzern zur Anpassung zur Verfügung stehen.

In jedem Fall müssen die Entwickler etwas tun, um ihre Interessen und die Interessen der Endhändler zu schützen. Kompromisslösungen lassen sich fast immer finden.

PS Ja, und noch eine Sache. Ich weiß nicht, wozu wir die Tick-Historie brauchen (denn es muss ja ausreichend real getestet werden), wenn DC die Filter sogar jeden Tag ändern kann, was die akkumulierte Tick-Historie unbrauchbar macht, weil das zukünftige Verhalten des TS ganz anders sein wird, als man es nach dem Testen auch mit der realen Tick-Historie erwartet hat. Deshalb halte ich die Variante mit "Fluffiness"-Einstellung durch den Benutzer für besser als die Möglichkeit, eine echte Tick-Historie zu haben.
 
joo писал(а) :

Ich verstehe Pips Trader sehr gut, auch wenn Urain und Prival es ablehnen. Aber meine TSs sind im Gegenteil auf die maximal mögliche Geräuschfilterung aufgebaut, TSs werden immun gegen die Qualitäten von Ticks. .....

Und ich verstehe Leute nicht, die etikettieren ohne zu verstehen. Hier ist noch einmal der Link von der ersten Seite. https://www.mql5.com/ru/forum/115584/page11#150512. Schauen Sie sich das Bild genauer an!!! Sie können dort alles sehen - die Trades sind im Chart eingezeichnet.

Parameter - durchschnittliche Handelsgröße in Pips 650, minimale Zeit, um einen Handel zu halten 1 Stunde. BIN ICH EIN PIPS-MANN?

Warum verbieten SIE mir, die Ticks zu analysieren? Verbiete ich Ihnen, die eingehenden Informationen so zu verarbeiten und zu analysieren, wie SIE es für richtig halten? Sie denken, dass Sie durch die Arbeit mit stündlichen Ticks automatisch das Rauschen loswerden - das ist eine Täuschung, ich schlage eine noch bessere Variante vor - arbeiten Sie mit jährlichen Candlesticks, das System wird noch besser, noch robuster, noch geräuschloser sein, die Datenanbieter haben keine Probleme, geben Sie dem Händler einmal im Jahr 5 Ziffern von OHLC und "Volumen" und lassen Sie ihn handeln. Alle sind zufrieden, der Händler hat ein robustes System, es gibt kein Rauschen, der Anbieter hat keine Probleme mit der Skalierung, etc. (in der Wissenschaft gibt es eine solche Methode, die Substitution von Extremfällen, um zu verstehen, ob eine Idee Unsinn ist oder nicht... ziehen Sie Ihre eigenen Schlüsse).

Jetzt werde ich eine Antwort an Renat schreiben und das war's. Ich werde versuchen zu beschreiben, wo ich Diskrepanzen zwischen der Modellierung von und echten Zitaten sehe. Dies ist seine Idee, er beschloss, Zecken zu modellieren, und er glaubt, dass viele Parameter von für die Modellierung unwichtig sind.

Unsere Aufgabe ist es, zu verstehen, wo wir dem Prüfer vertrauen können und wo nicht. Und wo der Prüfer uns täuschen wird. Wir können die Meinung des anderen nicht ändern. Renat hat die Illusion, dass es möglich ist, ein Modell zu erstellen, das besser ist als das reale Modell. Das glaube ich nicht.

Wir haben die Möglichkeit, die TK nur am Modell zu studieren, und es gibt keine Möglichkeit, die erstellte TK an realen Daten zu testen (egal, ob sie gut oder schlecht sind, ob sie fluffig sind oder nicht). Wir haben diese Möglichkeit nicht !!!. Warum geben sie uns nicht die Möglichkeit, die Historie zumindest unabhängig herunterzuladen, z.B. von hier http://www.dukascopy.com/swiss/russian/data_feed/historical/, sie in den Tester einzugeben und den TS auf diesen Daten laufen zu lassen? Das Ergebnis kennt ihr alle sehr gut, ist niemandem aufgefallen... Im Tester ist alles gut, aber im wirklichen Leben, selbst wenn man den TS gefunden hat, kann man so schön auf die Fresse bekommen https://www.mql5.com/ru/forum . Und man muss schon ein absoluter Paranoiker sein, um so etwas zu modellieren (sogar mit Hilfe eines Generators) und zu versuchen, einen TS zu erstellen, der gegen so etwas resistent ist und unter solchen Bedingungen funktioniert....

Nun zum Vergleich der Anzahl der historischen Ticks und der modellierten Ticks....

Ja, es handelt sich um ein Problem mit der Historie (das ist genau das, worüber wir sprechen).

Ich schrieb an den Service Desk #14710 2010.05.18 08:42 Uhr über Fehler in Anführungszeichen. Sie haben lange gebraucht, um das Problem zu lösen, und es scheint, dass sie es nicht gelöst haben. Am 20.05. habe ich alle Angebote manuell gelöscht und neu heruntergeladen, also liegt es nicht daran (Sie haben am 19. experimentiert). Zitate habe ich frisch durch Korrespondenz von Service Desk heruntergeladen alle neu um 2010.05.20 12:08.

Damit es keine Missverständnisse mehr gibt. Habe den Ordner histories wieder komplett gelöscht und einen neuen hochgeladen.

  1. Ja, tatsächlich, als ich auf den Aktualisierungsbutton klickte - änderte sich der Verlauf. Die Daten stimmten mit ticks= 678 überein.
  2. Aus der Sicht des Datenanbieters ist das gut, er kann die Historie wie ein Assistent ändern.
  3. Aus der Sicht des Händlers ist es ein Albtraum. Schließen Sie eine solche Situation aus. Ich habe diese Daten in meinem Terminal, sie fließen in Berechnungen ein, in Indikatoren, sie werden verwendet, um TSs zu erstellen und Entscheidungen zu treffen.

Was ich sonst noch beachtet habe, ist diese Prüfung nutzlos.

if(old_ask!=last_tick.ask || old_bid!=last_tick.bid)  

1. es gibt keine Situationen, in denen sich nur Ask oder Bid ändert (Verkäufer oder Käufer wird abgebaut). Und das passiert sehr oft. Bid steht, nur Ask ändert sich und umgekehrt.

2. Der Spread ist gleich einer Konstante. Auch dies entspricht nicht den Realitäten.

3. wenn Sie Hilfe bei der Erforschung der Qualität des Modells wünschen. Sammeln Sie selbst Ticks, am besten von 3-4 Quellen und stellen Sie diese ein. Zeigen Sie die Ergebnisse der Modellierung dieser Ticks nicht in Form eines Bildes, in dem der Preis um 30 Punkte pro 1000 Ticks sinkt. Sondern z.B. für einen Tag, an dem es verschiedene Situationen gibt, einschließlich großer Bewegungen in einem kurzen Zeitintervall.

4. Geben Sie die numerischen Merkmale der Abweichung von den wahren Daten an, zumindest den RMS auf beiden Achsen.

5. Dies wird auf der ganzen Welt durchgeführt, und die Ergebnisse können als vertrauenswürdig angesehen werden, wenn jemand anderes mit denselben Ausgangsdaten dasselbe Ergebnis erhält.

6. Andernfalls ist die Situation wie oben, Sie haben 678 Ticks im Terminal, ich habe 5800. Wenn wir hier alle Nuancen des Sammelns von Ticks hinzufügen, werden wir nie die Wahrheit finden.

7. 2-3 Tage lang sitzen und Ticks sammeln, um jemandem etwas zu zeigen oder zu beweisen, Entschuldigung, ich habe bereits in meiner Zeit gesammelt. Es reicht mir, wenn ich sehe, wie die Zecken entstehen, um mir eine Meinung zu bilden.

8. Es ist schade, dass aufgrund des gewählten Formats der Speicherung und Einspeisung der Geschichte in das Terminal, wir Händler Informationen verlieren. Renat, egal wie sehr Sie sich bemühen, Sie werden nicht in der Lage sein, einen Chart zu erstellen, sagen wir in Form von Renko, Kagi. Es wird neu gezeichnet und unterscheidet sich von dem, was auf realen Daten aufgebaut ist.

Meine Schlussfolgerungen und Empfehlungen für Trader. Sie können sie berücksichtigen, oder nicht, es liegt an Ihnen.

  1. Der Testmodus ist nutzlos. Er ist reine Zeitverschwendung, weil die Struktur der Ticks innerhalb des Balkens nicht genau wiedergegeben wird.
  2. Die korrekteste Methode zum Testen ist wahrscheinlich die gleiche wie in MT4 bei den Eröffnungskursen. Genauer gesagt, müssen Sie sich vergewissern, dass ein neuer Balken begonnen hat, und die Preise des vorherigen Balkens nehmen. Gleichzeitig müssen Sie im realen Handel "paranoide" Überprüfungen auf das Vorhandensein und die Synchronisierung von Daten wie diesem https://www.mql5.com/ru/forum/993 durchführen, und die Ergebnisse stimmen möglicherweise ohnehin nicht überein.
  3. Wenn Sie das System mit einem kleinen Stopp- oder Schleppnetzwert testen, können die Ergebnisse sogar bei den Eröffnungskursen voneinander abweichen, da die Zeitpunkte von Low und High möglicherweise nicht übereinstimmen. (Sie können neu angeordnet werden).
  4. Bevor der Expert Advisor im wirklichen Leben arbeitet, sollten Sie bei der Initialisierung irgendwie die Korrektheit der Historie überprüfen (simulieren Sie das Drücken der Aktualisierungsschaltfläche).
MetaTrader не отражает реальности ! как с этим бороться? - MQL4 форум
  • www.mql5.com
MetaTrader не отражает реальности ! как с этим бороться? - MQL4 форум
 
Prival :

Ich verstehe Leute nicht, die Menschen bezeichnen, ohne zu wissen, wovon sie sprechen. Hier ist noch einmal der Link von der ersten Seite. https://www.mql5.com/ru/forum/115584/page11#150512. Schauen Sie sich das Bild genauer an!!! Sie können dort alles sehen - die Geschäfte sind auf dem Diagramm eingezeichnet.

Parameter - durchschnittliche Handelsgröße in Pips 650, minimale Zeit, um einen Handel zu halten 1 Stunde. BIN ICH EIN PIPS-MANN?

Warum verbieten SIE mir, die Ticks zu analysieren? Verbiete ich Ihnen, die eingehenden Informationen so zu verarbeiten und zu analysieren, wie SIE es für richtig halten? Sie denken, dass Sie durch die Arbeit mit stündlichen Ticks automatisch das Rauschen loswerden - das ist ein Irrglaube, ich schlage eine noch bessere Option vor - arbeiten Sie mit jährlichen Candlesticks, das System wird noch besser, noch robuster, noch geräuschloser, die Datenanbieter haben keine Probleme, geben Sie dem Händler einmal im Jahr 5 Ziffern von OHLC und "Volumen" und lassen Sie ihn handeln. Alle sind zufrieden, der Händler hat ein robustes System, es gibt kein Rauschen, der Anbieter hat keine Probleme mit der Skalierung, etc. (in der Wissenschaft gibt es eine solche Methode, die Substitution von Extremfällen, um zu verstehen, ob die geäußerte Idee Unsinn ist oder nicht... Sie können Ihre eigenen Schlüsse ziehen).

................

Warum reagieren Sie so heftig, ich bin ein wenig erstaunt? Ich habe Ihren Standpunkt unterstützt. Ich mag das Wort "Wichtigtuer" nicht - ich nehme es zurück. Es tut mir leid, dass ich bei Ihnen einen Sturm negativer Gefühle ausgelöst habe.

Ich verstehe das Wort "piper" in einem breiteren Sinne. Ein Piper ist ein TS, der für die Qualität von Ticks empfänglich ist. Das ist alles. Als ob Sie nur die erste Zeile meines Beitrags gelesen hätten. Und weiter in meinem Beitrag habe ich eine Kompromisslösung angeboten.

PS: Ich verwende andere Methoden der Rauschfilterung als den Wechsel zu einem höheren TF (fett gedruckt in meinem Beitrag). Meine Forschung konzentriert sich auf M1.

 
joo писал(а) :

....

Wenn Sie diese Information persönlich genommen haben, entschuldige ich mich. Ja, ich reagiere heftig, denn statt zu handeln und ein Stück Brot für meine Familie zu verdienen, sitze ich und schreibe. Dies war eher an diejenigen gerichtet, die denken, dass eine Person, die Ticks analysiert, ein Pips-Spieler ist. Das ist nicht wahr. Ich versuche, es so gut wie möglich zu zeigen.

Es gibt kein Konzept für einen qualitativen/nicht qualitativen Tick. Dementsprechend gibt es auch kein Aggregat von qualitativen oder nicht-qualitativen Ticks. Ein Tick ist eine Realität, die uns im Handelsterminal gegeben wird. Er kommt zu uns, der Expert Advisor wird gestartet und wir analysieren ihn. Derjenige, der hier anwesend ist, wird in der Lage sein zu sagen. Ist dieser Tick von hoher Qualität und dieser nicht?

Jemand analysiert nur das Schließen von Bars = ein Tick, der am Ende der Stunde kam. Inwiefern unterscheidet sich dieser Tick von dem Tick, der eine Sekunde früher kam? Nehmen wir an, jemand behauptet, er sei "flauschiger", was ist das und womit hat er es zu tun? Ich hoffe, Sie erkennen die Absurdität solcher Behauptungen.

Denken Sie einmal darüber nach: Die Anbieter von Börsenkursen arbeiten auf der Ebene der Zecken, ja, sie filtern sie, sie haben mehrere Lieferanten, sie geben uns das, was sie zu einem bestimmten Zeitpunkt für notwendig und profitabel halten. Aber sie arbeiten mit Ticks, nicht mit OHLC, sondern mit Ticks. Diese werden dann auf zu Balken gefaltet. Sind die DCs dort alle dumm und sehen nicht, dass es Selbstmord ist, auf der Ebene der Ticks zu arbeiten?

Wenn nicht, sind sie klug und kompetent? Warum sollten wir mit der Durchschnittstemperatur des Krankenhauses arbeiten und nicht mit Zecken? Aus Zecken kann man alles herausschneiden, was man will, jede Art von Diagramm. Mit Minuten kann man das nicht, denn das ist eine verlustbehaftete Form der Datenkompression, unumkehrbarer Verlust.

Es ist wie ein Packalgorithmus, derselbe *.rar komprimierte die Informationen, gab sie an einen anderen weiter, der sie entpackte und las, sagen wir, es ist ein Buch. Und jetzt ändern wir den Algorithmus, packen nur den ersten(Open) und den letzten(Close) Buchstaben des Satzes aus, nun, man kann zwei weitere Buchstaben hinzufügen, den dicksten (analog zu High) und den dünnsten (analog zu Low). Wie ist das? Wer mag so ein Buch lesen? So ist es auch hier ((((