Diskussion zum Artikel "Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil V)."
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien.
Weniger Code, mehr Rollen... einen EA schreiben
fxsaber, 2019.03.12 21:46
Diese Aufgabe kann durchaus als ein erster Test für das Schreiben von Trading unter MT5 angesehen werden. So kann sich jeder daran versuchen.
Forum zum Thema Trading, automatisierte Handelssysteme und Testen von Handelsstrategien
Weniger Code, mehr Rollen... einen EA schreiben
fxsaber, 2019.03.12 21:40
Versuchen Sie es hier: ForexTimeFXTM-Demo01.
Ich frage mich, wie die Bibliothek mit vielen Nuancen des Handels umgeht. Es ist also wahrscheinlich einen Versuch wert, zumindest den ersten Test zu bestehen
Es gibt noch keine Handelsklassen in der Bibliothek. Im Moment kommt die Arbeit mit der Kontohistorie und dem aktiven Marktstatus zum Ende - die Verfolgung von Netting-Kontoereignissen wird im nächsten Artikel veröffentlicht, dann die Arbeit mit dem Konto im MetaTrader 4, und dann, nach der Vorbereitung von Klassen für die Nachrichtenausgabe, wird die Arbeit mit Handelsklassen beschrieben.
Es gibt noch keine Handelsklassen in der Bibliothek. Im Moment kommt die Arbeit mit der Kontohistorie und dem aktiven Marktstatus zum Ende - die Verfolgung von Netting-Kontoereignissen wird im nächsten Artikel veröffentlicht, dann die Arbeit mit dem Konto in MetaTrader 4, und dann, nach der Vorbereitung der Klassen für die Nachrichtenausgabe, wird die Arbeit mit den Handelsklassen beschrieben.
Das war's. MT5 ist in dieser Hinsicht so komplex, dass wir meiner Meinung nach einen ganzen Artikel brauchen, der die Feinheiten des Handels, die auf MT5 auftreten, im Detail beschreibt und wie man sie berücksichtigt.
Verstanden. MT5 ist in dieser Hinsicht so komplex, dass wahrscheinlich ein ganzer Artikel nötig ist, in dem die Feinheiten des Handels mit MT5 im Detail beschrieben werden und wie man sie berücksichtigen kann.
Ich bin gerade dabei, mich mit solchen Situationen zu beschäftigen. Ich hoffe, dass ich in der Lage sein werde, sie alle richtig zu behandeln.
Etwas anderes ist interessant - auf der Grundlage der beschriebenen Bibliothek werden User-Case-Funktionen für den einfachen Zugriff auf die gesammelten und in der Bibliothek gespeicherten Daten, für die Verwendung von Handelsklassen und dementsprechend für die einfache und leichte Erstellung von Programmen auf der Grundlage dieser Bibliothek erstellt werden.
Obwohl es schon so ist, wie es ist, gibt es eine Möglichkeit, es zu benutzen, aber auf einer niedrigeren Ebene des Zugangs - durch Zeiger auf Listen von Sammlungen, und von ihnen - durch Zeiger auf irgendwelche ihrer Daten. Dies entspricht jedoch nicht den eingangs erwähnten "Ansprüchen" an die Leichtigkeit, mit der eigene Programme auf der Basis der Bibliothek erstellt werden können. Aber das ist erst der Anfang :)
Bibliothek automatisch sowohl Netting-Konten als auch Hedge-Konten erkennen und bearbeiten kann?
Ja, das ist bereits geschehen. Sie wird im nächsten Artikel veröffentlicht.
Ja, jetzt schon. Der nächste Artikel wird veröffentlicht werden.
Neuer Artikel Funktionsbibliothek für die einfache und schnelle Entwicklung von MetaTrader-Programmen (Teil 5): Trading Event Collection Class, Senden von Ereignissen an das Programm veröffentlicht:
Autor: Artyom Trishkin
Sehr leistungsfähig als Testwerkzeug, vielen Dank für die Bereitstellung!
Hallo Artyom, herzlichen Glückwunsch zu der tollen Arbeit! Der Beschreibung im Text folgend, scheint es, dass die Funktion CHistoryCollection::OrderSearch(...) eine Unterbrechung hat , die fehlt.
Die for-Schleife schließt immer alle Iterationen von Start-1 bis 0 ab , egal ob sie die "verlorene Bestellung" findet oder nicht.
Vielleicht wäre es effizienter, nach dem Auffinden der "verlorenen Bestellung "eine Pauseeinzufügen :
ulong CHistoryCollection::OrderSearch(const int start,ENUM_ORDER_TYPE &order_type) { ulong order_ticket=0; for(int i=start-1;i>=0;i--) { ulong ticket=::HistoryOrderGetTicket(i); if(ticket==0) continue; ENUM_ORDER_TYPE type=(ENUM_ORDER_TYPE)::HistoryOrderGetInteger(ticket,ORDER_TYPE); if(this.IsPresentOrderInList(ticket,type)) continue; order_ticket=ticket; order_type=type; break; } return order_ticket; }
Was meinen Sie dazu?
- www.mql5.com
Hallo Artyom, herzlichen Glückwunsch zu der tollen Arbeit! Nach der Beschreibung im Text, scheint es, dass die Funktion CHistoryCollection::OrderSearch(...) kann eine Pause fehlt.
Die for-Schleife schließt immer alle Iterationen von Start-1 bis 0 ab , egal ob sie die "verlorene Bestellung" findet oder nicht.
Vielleicht wäre es effizienter, nach dem Auffinden der "verlorenen Ordnung" eine Pauseeinzufügen :
...
Was meinen Sie dazu?
Vielleicht gibt es mehr als einen verlorenen Auftrag
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil V). Klassen und Kollektionen für Handelsereignisse, Nachrichten an das Programm senden :
In den vorherigen Artikeln haben wir begonnen, eine große plattformübergreifende Bibliothek zu erstellen, die die Entwicklung von Programmen für MetaTrader 5 und MetaTrader 4 Plattformen vereinfacht. Im vierten Teil haben wir die Verfolgung von Handelsereignissen auf dem Konto getestet. In diesem Artikel werden wir Klassen für Handelsereignisse entwickeln und diese in der Kollektion der Ereignisse platzieren. Von dort aus werden sie an das Basisobjekt der Enginebibliothek und die Steuerelement des Chartprogramms.
Jetzt können wir den EA kompilieren und im Tester starten. Wenn wir auf die Schaltflächen klicken, werden im Testerjournal kurze zweizeilige Meldungen über auftretende Kontoereignisse angezeigt.
Einträge der Ereignisbehandlung des EAs werden im Journal nicht angezeigt, da sie außerhalb des Testers arbeiten. Wenn wir auf die Schaltflächen des EAs eines Demokontos klicken, werden im Terminaljournal drei Zeilen angezeigt: zwei Zeilen aus der Methode zur Anzeige von Kurznachrichten der Klasse CEvent und eine weitere — aus der Funktion OnChartEvent() des EAs.
Nachfolgend sehen wir ein Beispiel für die Anzeige einer Nachricht im Journal, wenn Platzieren und Entfernen einer Pending-Order:
Autor: Artyom Trishkin