Diskussion zum Artikel "Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil X): Kompatibilität mit MQL4" - Seite 4
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
Nein. Lesen Sie einfach die Artikel
Tut mir leid, aber ich kenne nicht so viele Buchstaben. )))
Und das ist passiert:
Während ich diesen Code in der Demo ausführte, wurde eine Limit-Order gesetzt und gelöscht.
Und plötzlich, während des nächsten Mockings, wurde eine Position geändert, eine Position wurde geöffnet und eine Position wurde geschlossen. Aber woher kam die Aufzeichnung des Löschens einer längst gelöschten Order?
Haben Sie die Bibliothek durch die Dateien ersetzt, die ich Ihnen gegeben habe? Die Bibliothek in diesem Artikel ist noch nicht fertig - sie hat diesen Fehler - wenn zwei Ereignisse die gleichen Kriterien für MQL4 haben. Im elften Artikel wurde die Portierung der aktuellen Funktionalität der Bibliothek auf MQL4 abgeschlossen. Und die Version aus diesem Artikel hat diesen Fehler, und sein Vorhandensein wird indirekt durch die letzten Worte in dem Artikel angezeigt:
Was kommt als Nächstes?
Im nächsten Artikel werden wir die Positionsschlussverfolgung vornehmen und die Fehler beheben, die bei der aktuellen Implementierung der Ereignisverfolgung für MQL4 auftreten können - denn die Installation und Löschung von Aufträgen wird durch den Code für MQL5 verfolgt, und es kann einige Nuancen geben, die bei der Arbeit unter MQL4 berücksichtigt werden müssen.Haben Sie die Bibliothek mit den Dateien ersetzt, die ich Ihnen gegeben habe? Die Bibliothek in diesem Artikel ist noch nicht fertig - es hat diesen Fehler - wenn zwei Ereignisse die gleichen Kriterien für MQL4 haben. Im elften Artikel wurde die Portierung der aktuellen Funktionalität der Bibliothek auf MQL4 abgeschlossen. Aber die Version aus diesem Artikel hat diesen Fehler, und sein Vorhandensein wird indirekt durch die letzten Worte in dem Artikel angezeigt:
Was kommt als Nächstes?
Im nächsten Artikel werden wir die Verfolgung der Positionsschließung vornehmen und die Fehler beheben, die bei der aktuellen Implementierung der Ereignisverfolgung für MQL4 auftreten können - denn die Installation und Löschung von Aufträgen wird durch den Code für MQL5 verfolgt, und es kann einige Nuancen geben, die bei der Arbeit unter MQL4 berücksichtigt werden müssen.Ja, das habe ich getan. Ich habe die Abfolge bereits beschrieben
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien.
Diskussion des Artikels "Bibliothek zur einfachen und schnellen Erstellung von Programmen für MetaTrader (Teil X): Kompatibilität mit MQL4 - Ereignisse der Positionseröffnung und der Aktivierung von Pending Orders"
Alexey Viktorov, 2019.05.27 17:59
Und hier ist so ein unverständliches Ding passiert:
Während ich diesen Code in der Demo ausgeführt habe, wurde eine Limit-Order gesetzt und gelöscht
Und plötzlich wurde beim nächsten Mocking eine Position geändert, eine geöffnet und eine geschlossen. Aber woher kommt die Aufzeichnung der Löschung einer längst gelöschten Order?
Um 15:01:14 Uhr löschte ich eine zuvor gesetzte Limit-Order.
Bis 18:29 Uhr war ich mit meinem eigenen Geschäft beschäftigt. Der Expert Advisor stand auf dem Chart.
Um 18:29:21 Uhr änderte ich die zuvor gesetzte Position.
Um 18:33:02 Uhr setzte ich Sell
Um 18:34:11 Uhr schloss ich diesen Verkauf.
Und in diesem Moment erhielt ich den zweiten Datensatz, dass das Limit, das um 15:01:14 gelöscht wurde, entfernt wurde.
Ja, das habe ich. Ich habe die Abfolge bereits beschrieben, nicht wahr?
Das haben Sie:
Und so ist es passiert:
Während ich diesen Code in der Demo laufen ließ, wurde eine Limit-Order gesetzt und gelöscht.
Und plötzlich wurde beim nächsten Mocking eine Position geändert, eine Position geöffnet und eine Position geschlossen. Aber woher kommt die Aufzeichnung der Löschung einer längst gelöschten Order?
Und was ist die Reihenfolge dieser Aktionen?
Sie haben geschrieben:
Wie ist die Reihenfolge dieser Maßnahmen?
Ich habe die vorherige Nachricht vervollständigt.
Ja, das habe ich. Ich habe den Ablauf bereits beschrieben, nicht wahr?
Ich kann diesen Fehler in keiner Reihenfolge erhalten.
Bitte beschreiben Sie die Sequenz, die zu diesem Fehler führt.
Am besten nicht im Protokoll - dort gibt es inzwischen eine Menge Debugging-Einträge, die den schnellen Überblick stören, sondern gleich hier in einer nummerierten Liste.
Ich habe die vorherige Nachricht vervollständigt.
Um 15:01:14 Uhr habe ich die zuvor erteilte Limit-Order gelöscht.
Bis 18:29 Uhr habe ich meine eigenen Sachen gemacht. Der Expert Advisor stand auf dem Chart.
Um 18:29:21 Uhr änderte ich die zuvor gesetzte Position.
Um 18:33:02 Uhr setzte ich Sell
Um 18:34:11 Uhr schloss ich diesen Verkauf.
Und in diesem Moment erhielt ich einen zweiten Datensatz, dass das Limit, das um 15:01:14 gelöscht wurde, gelöscht wurde.
D.h., Sie müssen:
Um 15:01:14 Uhr löschte ich die zuvor erteilte Limit-Order.
Bis 18:29 Uhr habe ich meine eigenen Sachen gemacht. Der Expert Advisor stand auf dem Chart.
Um 18:29:21 Uhr änderte ich die zuvor gesetzte Position.
Um 18:33:02 Uhr setzte ich Sell
Um 18:34:11 Uhr schloss ich diesen Verkauf.
Und in diesem Moment erhielt ich den zweiten Datensatz, dass das Limit, das um 15:01:14 gelöscht wurde, entfernt wurde.
D.h., ich muss es tun:
Nein, achten Sie auf Ihre Hände.
Das Limit wurde um 14:54:10 Uhr gesetzt und um 15:01:14 Uhr aufgehoben.
Dann eine lange Sendepause. Alles wird still.
Dann mehrere Sätze hintereinander, bei 18:. Auflistung nur der Minuten 29, 33 und 34. Bei Minute 34 kommt das Ereignis, das sich vor dreieinhalb Stunden ereignet hat, durch.
Hier ist die Liste der Positionen.
Sie sind alle morgens und mittags geöffnet. Um 18 Minuten war nur Sell offen und wurde fast sofort wieder geschlossen.Nein, pass auf deine Hände auf
Limit gesetzt um 14:54:10 und gelöscht um 15:01:14.
Dann eine lange Sendepause. Alles wird still.
Dann mehrere Sätze hintereinander, bei 18:. Auflistung nur der Minuten 29, 33 und 34. Jetzt, bei 34, dieses Ereignis, das sich vor dreieinhalb Stunden ereignet hat.
Hier ist eine Liste von Positionen.
Sie sind alle morgens und mittags geöffnet. Um 18 Minuten war nur Sell offen und wurde fast sofort wieder geschlossen.Na also, es geht doch:
Um 15:01:14 Uhr habe ich eine zuvor erteilte Limit-Order gelöscht .
Bis 18:29 Uhr war ich mit meinem eigenen Geschäft beschäftigt. Der Expert Advisor stand auf dem Chart.
Um 18:29:21 Uhr änderte ich die zuvor gesetzte Position.
Um 18:33:02 Uhr setzte ich Sell
Um 18:34:11 habe ich diesen Sell geschlossen.
Zuvor - ist es VOR dem Setzen der Limit-Order? Oder danach? Als sie eröffnet wurde? "Früher" ist nicht eindeutig. Wahrscheinlich hat der Zeitpunkt aller Aktionen eine Bedeutung - schließlich wird alles in der Liste gespeichert. Irgendwo gibt es gleiche Bedingungen, da die Entfernung der alten Limit-Order im Moment des Schließens der Position neu bestimmt wird - die Position wurde geschlossen, wir haben die Bedingungen geprüft (das ist direkt im Code beschrieben) und anhand dieser Bedingungen die Art des Ereignisses bestimmt. Und dann wird die Liste nach dem Typ einer bestimmten Order im Ereignis sortiert und das Ereignis an das Programm gesendet - es gibt also eine Überschneidung der Bedingungen in MQL4, so dass sie sich für die Bibliothek als gleich herausstellen. Das habe ich allerdings im 11. Artikel, der noch in der Testphase ist, entfernt.
Nun, hier sind Sie und schreiben:
Um 15:01:14 löschte ich eine zuvor erteilte Limit-Order.
Bis 18:29 Uhr habe ich mein eigenes Ding gemacht. Der Expert Advisor stand auf dem Chart.
Um 18:29:21 Uhr änderte ich die zuvor gesetzte Position.
Um 18:33:02 Uhr setzte ich Sell
Um 18:34:11 Uhr habe ich diese Sell-Order geschlossen.
Zuvor - ist das BEVOR die Limit-Order gesetzt wurde? Oder danach? Als sie geöffnet wurde? "Früher" ist nicht eindeutig. Wahrscheinlich hat der Zeitpunkt aller Aktionen eine Bedeutung - schließlich wird alles in der Liste gespeichert. Irgendwo gibt es gleiche Bedingungen, da die Entfernung der alten Limit-Order im Moment des Schließens der Position neu bestimmt wird - die Position wurde geschlossen, wir haben die Bedingungen geprüft (das ist direkt im Code beschrieben) und anhand dieser Bedingungen die Art des Ereignisses bestimmt. Und dann wird die Liste nach dem Typ einer bestimmten Order im Ereignis sortiert und das Ereignis an das Programm gesendet - es gibt also eine Überschneidung der Bedingungen in MQL4, so dass sie sich für die Bibliothek als gleich herausstellen. Das habe ich allerdings im 11. Artikel, der noch in der Testphase ist, entfernt.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Diskussion über den Artikel "Bibliothek zur einfachen und schnellen Erstellung von Programmen für MetaTrader (Teil X): Kompatibilität mit MQL4 - Ereignisse der Positionseröffnung und Aktivierung von Pending Orders"
Alexey Viktorov, 2019.05.27 18:50
Nein, pass gut auf deine Hände auf
Begrenzer um 14:54:10 gesetzt und um 15:01:14 gelöscht
Dann eine lange Sendepause. Alles wird still.
Dann mehrere Sätze hintereinander, bei 18:. Auflistung nur der Minuten 29, 33 und 34. Jetzt, bei 34, dieses Ereignis, das sich vor dreieinhalb Stunden ereignet hat.
Hier ist die Liste der Positionen.
Sie sind alle morgens und mittags geöffnet. Um 18 Minuten war nur eine Position offen, nämlich Verkaufen, und wurde fast sofort wieder geschlossen.Geändert wurde nur eine, die hervorgehobene Position. Daran gibt es keinen Zweifel. Sie wurde am Morgen platziert. Ich änderte sie mehrmals. Es war mir egal, welche ich änderte. Bei dieser hatte ich bereits einen Takeout gesetzt. Das war es, was ich tun wollte.
Hier sind alle Limiter und der letzte Sell.
Die gelöschten Begrenzer und der Verkauf sind hervorgehoben. Das Löschungsereignis muss irgendwo übrig geblieben sein. Aber warum ist es nicht bei der Eröffnung dieses Sell "aufgewacht", sondern erst bei der Schließung des Sell?