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
Vielen Dank für die Antwort. Das ist sehr seltsam, ich bin in der Tat mit echten Ticks-Modus und ich war mir nicht bewusst, dass es eine feste Spread-Option in MT5, so dass ich sicher bin, dass ich nicht bin (ich bin mehr vertraut mit MT4).Mir war nicht aufgefallen, dass die Spreads für jeden Balken gleich sind, denn wenn ich mir die gesamte Datei ansehe, scheint es, dass sie sich nur an den Grenzen von 1 Minute ändern. Ich nehme an, dass ich richtig liege, wenn ich denke, dass die Aufrufe von SymbolInfoDouble() die Preise für den Tick zurückgeben sollten, der als Ergebnis des OnTick()-Ereignisaufrufs verarbeitet wird - und nicht irgendeine Art von M1-Wert?
Ich habe versucht zu drucken, was ich erwartet habe, um die tatsächliche Tick-Zeit mit Millisekunden mit dem Code unten zu sein, aber der Millisekunden-Wert ist immer Null...
EDIT: Wie ich schon sagte, ich bin relativ neu in MQL5 - ich habe gerade SymbolInfoTick() gefunden, vielleicht sollte ich das verwenden, anstatt was ich tue! Ich werde versuchen, dass und sehen, was passiert...
Ok, das hat keinen Unterschied gemacht, genau die gleichen Ergebnisse, aber keines von beiden hängt mit dem "Symbol Ticks"-Dialog im Terminal zusammen. Ich habe mich geirrt, als ich sagte, dass der Millisekundenwert immer Null ist - er ist für genau eine Minute ungleich Null, nämlich die eine Minute vor Mitternacht!
Dies scheint mir ein ziemlich wichtiges Problem zu sein. Mein Handels-EA erwartet Ticks mit Preisen, die mit den importierten Tick-Daten übereinstimmen (wie jeder andere auch!). Ich wage zu behaupten, dass ich etwas falsch mache, aber wenn ja, würde ich gerne wissen, was es ist.Wenn nicht, dann gibt es hier ein sehr ernstes Problem. Ich habe eine Zip-Datei mit dem Test-EA, eine Tabelle mit den Ergebnissen für die Stunde vor und nach Mitternacht und einige Screenshots von Einstellungen und Ticks beigefügt.
Ich fürchte, es ist nicht klar, wie Sie Ihr benutzerdefiniertes Symbol erstellen. Die angehängten csv-Dateien sind identisch (ich weiß übrigens nicht, warum Sie zwei Kopien unter verschiedenen Namen benötigen), und beide haben das falsche Format: Tick-Dateien sollten die folgenden Spalten haben, um in MT5 Custom Symbol importiert werden zu können: Datum, Uhrzeit, Bid, Ask, Last, Volume. Daher ist es derzeit nicht möglich, ein benutzerdefiniertes Symbol aus Ihren Ticks ohne zusätzliche Manipulationen zu erstellen.
Es wäre einfacher, wenn Sie Bilder von importierten Ticks in MT5 UI und das Log Ihres EA nebeneinander posten würden. Die oben gezeigten Bilder sind unvollständig und die Ticks sehen zwischen den Bildern und im Vergleich zu den csv-Dateien unterschiedlich aus.
Ich fürchte, es ist nicht klar, wie Sie Ihr benutzerdefiniertes Symbol erstellen. Die angehängten csv-Dateien sind die gleichen (BTW, ich weiß nicht, den Grund, den Sie zwei Kopien unter verschiedenen Namen benötigen), und beide haben das falsche Format: Tick-Dateien sollten die folgenden Spalten in MT5 benutzerdefinierte Symbol importiert werden: Datum, Zeit, bid, ask, letzte, Volumen. Daher ist es derzeit nicht möglich, ohne zusätzliche Manipulationen ein benutzerdefiniertes Symbol aus Ihren Ticks zu erstellen.
Es wäre einfacher, wenn Sie Bilder von importierten Ticks in MT5 UI und das Log Ihres EA nebeneinander posten würden. Die oben gezeigten Bilder sind unvollständig und die Ticks sehen zwischen den Bildern und im Vergleich zu den csv-Dateien unterschiedlich aus.
Die Tick-Daten wurden in MT5 als benutzerdefiniertes Symbol aus einem Export aus meiner MT4 'Tick Data Suite' mit Dukascopy-Daten importiert (CSV-Dateien mit einer Größe von etwa 8 GB).
Die CSV-Dateien, die ich geschickt habe, sind keineswegs dazu gedacht, als Tick-Daten importiert zu werden, sie sind die Ausgaben meines Test-EAs (der beiliegt), der die Bid- und Ask-Preise und die Zeit für jedes empfangene OnTick-Ereignis aufzeichnet. Die beiden werden einfach durch unterschiedliche Methoden abgeleitet - eine verwendet SymbolInfoDouble(...), um die Bid- und Ask-Preise zu erhalten, und die andere verwendet SymbolInfoTick(...). Die Tatsache, dass sie gleich sind, beweist mir einfach, dass es keinen Unterschied zwischen den Methoden gibt.
Mir geht es darum, dass die Bid- und Ask-Preise und -Zeiten in den vom Test-EA aufgezeichneten CSV-Dateien nicht mit dem Bild der importierten Ticks in der MT5-Benutzeroberfläche übereinstimmen (die ich ebenfalls gesendet habe). Also...
Mir scheint, dass die Tick-Daten des benutzerdefinierten Symbols auf ihrem Weg zwischen dem Repository und dem OnTick-Ereignis des EA durch irgendetwas gestört werden.
Unten habe ich versucht, einen Teil der vom Test-EA (links) und der MT5-Benutzeroberfläche (rechts) aufgezeichneten Daten so genau wie möglich abzugleichen. Es ist unmöglich, sie genau abzugleichen, da der EA weniger Ticks aufzeichnet als die MT5-Benutzeroberfläche. Beachten Sie auch, dass die vom Test-EA aufgezeichneten Millisekunden bis 23:59 Uhr null sind.
Das hervorgehobene Ereignis ist wahrscheinlich derselbe Tick, aber beachten Sie, dass der Test-EA andere Preise als die UI aufzeichnet...
Sie haben viele "Warum"-Fragen, aber es ist schwer, eine Antwort zu geben (ohne Spekulationen). Es gibt ein Problem in Ihrem Verfahren oder Quellcode.
Was Sie tun könnten, ist, einen kleinen Teil der 8Gb der Tick-Historie zu veröffentlichen, der leicht in ein benutzerdefiniertes Symbol importiert werden kann und Ihren Code zu überprüfen.
Normalerweise sollte SymbolInfoTick genau die gleichen Ticks (einschließlich Millisekunden Timing) erhalten, die Sie im MT5 GUI für das gleiche benutzerdefinierte Symbol sehen.
Einige Ticks können in Ihrem EA übersprungen werden, wenn er zu viel Zeit für die Verarbeitung des vorherigen Ticks benötigt. Dieses "zu viel" kann sehr kurz sein, da Ticks sehr schnell kommen können. Wenn Sie sicherstellen möchten, dass alle Ticks in der Historie verfügbar sind, sollten Sie die Funktion CopyTicks für den Zeitraum seit dem letzten verarbeiteten Tick aufrufen. Aber das ist nicht das Problem, mit dem Sie sich jetzt befassen sollten - Sie sollten erst einmal herausfinden, was mit dem derzeitigen Ansatz falsch ist.
Die Tickdaten wurden in MT5 als benutzerdefiniertes Symbol aus einem Export aus meiner MT4 "Tick Data Suite" mit Dukascopy-Daten (CSV-Dateien mit einer Größe von etwa 8 GB) importiert.
Die csv-Dateien, die ich geschickt habe, sind keineswegs dazu gedacht, als Tick-Daten importiert zu werden, sie sind die Ausgaben meines Test-EAs (der beigefügt war), der die Bid- und Ask-Preise und die Zeit für jedes empfangene OnTick-Ereignis aufzeichnet. Die beiden werden einfach durch unterschiedliche Methoden abgeleitet - eine mit SymbolInfoDouble(...), um die Bid- und Ask-Preise zu erhalten, und die andere mit SymbolInfoTick(...). Die Tatsache, dass sie gleich sind, beweist mir einfach, dass es keinen Unterschied zwischen den Methoden gibt.
Mir geht es darum, dass die Bid- und Ask-Preise und -Zeiten in den vom Test-EA aufgezeichneten CSV-Dateien nicht mit dem Bild der importierten Ticks in der MT5-Benutzeroberfläche übereinstimmen (die ich ebenfalls gesendet habe)...
Mir scheint, dass etwas die Tick-Daten des benutzerdefinierten Symbols auf dem Weg zwischen dem Repository und dem OnTick-Ereignis des EA stört.
Unten habe ich versucht, einen Teil der vom Test-EA (links) und der MT5-Benutzeroberfläche (rechts) aufgezeichneten Daten so genau wie möglich abzugleichen. Es ist unmöglich, sie genau abzugleichen, da der EA weniger Ticks aufzeichnet als die MT5-Benutzeroberfläche. Beachten Sie auch, dass die vom Test-EA aufgezeichneten Millisekunden bis 23:59 Uhr null sind.
Das hervorgehobene Ereignis ist wahrscheinlich derselbe Tick, aber beachten Sie, dass der Test-EA andere Preise als die UI aufzeichnet...
Die Ticks, die Ihr EA sammelt, scheinen simulierte Ticks und keine echten Ticks zu sein. Prüfen Sie die Logs des Strategy Testers.
Danke, Alain, ich stimme Ihnen vollkommen zu. Die Tick-Daten sind in der Benutzeroberfläche vorhanden, aber bis der EA sie erhält, sieht es so aus, als ob er das erste Bid/Ask-Paar nimmt, das er findet, und diesen Spread für die Dauer der nächsten Minute anwendet - oder so ähnlich.
Jedenfalls habe ich einen Blick auf das Protokoll geworfen (im Anhang), aber ich bin mir nicht ganz sicher, was ich zu sehen erwarte, daher wäre ich Ihnen dankbar, wenn Sie einen Blick darauf werfen könnten, um zu sehen, was falsch läuft. Ich habe auch die generierte CSV-Datei zur Information beigefügt.
Vielen Dank, David.
Danke Alain, ich stimme dir vollkommen zu. Die Tick-Daten sind in der UI vorhanden, aber wenn es zum EA kommt, sieht es so aus, als ob er das erste Bid/Ask-Paar nimmt, das er findet, und diesen Spread für die Dauer der nächsten Minute anwendet - oder so ähnlich.
Jedenfalls habe ich einen Blick auf das Protokoll (beiliegend), aber ich bin nicht zu sicher, was ich erwarte, zu sehen, so wäre ich dankbar, wenn Sie einen Blick nehmen könnte und sehen, wenn Sie sehen können, was falsch läuft. Ich habe auch die generierte CSV-Datei zur Info beigefügt.
Vielen Dank, David.
In Ihrem Protokoll steht "every tick generating", was künstliche Ticks bedeutet. Es sollte heißen "Generierung basierend auf echten Ticks". Bitte konsultieren Sie die Tester-Dokumentation.
Nochmals, wenn Sie möchten, dass jemand anderes Ihr benutzerdefiniertes Symbol testet, stellen Sie eine kompatible CSV-Datei zur Verfügung, die nicht Ihr eigenes Format hat.
In Ihrem Protokoll steht "every tick generating", was künstliche Ticks bedeutet. Es sollte heißen "Generierung basierend auf echten Ticks". Bitte konsultieren Sie die Testerdokumentation.
Nochmals, wenn Sie möchten, dass jemand anderes Ihr benutzerdefiniertes Symbol testet, stellen Sie eine kompatible CSV-Datei zur Verfügung, die nicht Ihr eigenes Format hat.
Danke Stanislav, ich weiß die Hilfe von allen zu schätzen, aber ich komme nicht weiter.
Ich habe in der Dokumentation nachgeschaut und kann nichts finden, was mir erklärt, warum der Tester künstliche Ticks generiert, wenn er doch einen vollständigen Satz von Tick-Daten zur Verfügung hat! Tatsächlich heißt es dort...
Ich wiederhole: Die CSV-Dateien sind die Ausgabe meines Test-EAs sind, der einfach die Preise der empfangenen Ticks schreibt und nichts mit den Tick-Daten zu tun hat, die ich in das benutzerdefinierte Symbol importiert habe - ihr Format ist also völlig irrelevant.
Ok, was ich getan habe...
Weil Sie in den Einstellungen des Testers nicht"Jeder Tick basiert auf echten Ticks " ausgewählt haben:
Außerdem stieß ich auf "HistoryCache: container header read error [0]", gefolgt von "HistoryBase: invalid container (1970.01.01) found".
Dadurch wird die Historie für Januar 2022 aus der Historie des benutzerdefinierten Tools entfernt, wodurch eine Lücke vom 31. Dezember bis heute entsteht.
Es tritt nur auf 2 Computern auf, die Ressourcen sind ausreichend.
@Slava, welche Details benötigen Sie für die Reproduktion?
Es ist wieder passiert. Wenn ich durch Mitternacht gehe, scheint es:
Welcher Weg zum Graben?
Weil Sie in den Einstellungen des Testers nicht"Jeder Tick basiert auf echten Ticks " ausgewählt haben:
Aa, na endlich :-)
Danke Fernando, ich hatte schon den Verdacht, dass ich etwas Dummes tue, aber ich konnte es einfach nicht sehen! Wie ich schon sagte, bin ich viel vertrauter mit MT4 (etwa 8 Jahre) und ich hatte nicht bemerkt, dass es zwei "£Every Tick"-Optionen in MT5 gibt. Ich habe ihn einfach gestartet, gesehen, dass er auf "Every Tick" eingestellt war und angenommen, dass er, wenn er echte Ticks hat, diese verwenden würde.
Es musste etwas Einfaches sein, und ich danke Ihnen nochmals, dass Sie es entdeckt haben.
David.