Diskussion zum Artikel "Erzeugung von Multi-Expert Advisors auf Grundlage von Handelsmodellen"

 

Neuer Artikel Erzeugung von Multi-Expert Advisors auf Grundlage von Handelsmodellen :

Der Einsatz des Objekt-orientierten Ansatzes in MQL5 erleichtert die Erzeugung von Multi-Currency/Multi-System und Multi-Timeframe Expert Advisors ganz erheblich. Stellen Sie sich nur vor, Ihr einziger EA handelt mit mehreren Dutzend Handelsstrategien auf allen verfügbaren Instrumenten und allen möglichen Zeitrahmen ! Und zusätzlich kann er im Tester problemlos getestet werden und hat zudem für alle, in dieser Zusammenstellung eingeschlossenen Strategien ein oder mehrere Arbeitssysteme zur Geldverwaltung.

Autor: Vasiliy Sokolov

 

Vasily, ich habe ehrlich gesagt mehr erwartet. In diesem Werk ist es Ihnen gelungen, den Leser mit dem Sinn Ihres Vorschlags zu verwirren.

Aber Sie hätten es viel einfacher nennen können - "Wie man Expert Advisors mit MQL4-Logik im MT5-Terminal handelt". Und das ist es, worauf Sie achten sollten.
Wenn Sie sich auf diesen Eckpfeiler konzentriert hätten, wäre es viel kompakter und verständlicher gewesen.

Und so haben Sie zunächst mit dynamischen Listen und deren Anwendung für diesen speziellen Fall geladen. Dann mit einer Tabelle von virtuellen Aufträgen.

Die gesamte Logik von MQL4 wird in MQL5 durch die Funktionalität von ZWEI Methoden gelöst!
1. Wiederherstellung von Stop-Loss- und Take-Profit-Tickets aus der Terminal-Historie
2. Ihre weitere Kontrolle, wenn eines von ihnen ausgelöst oder der Hauptorderer gelöscht wird.

Nachdem Sie diese beiden GENERAL-Funktionen erklärt haben, gehen Sie zu den dynamischen Arrays und der Erstellung von "models-mql4-experts" über.

Es ist sehr schade, dass Sie die Arbeit mit schwebenden Aufträgen nicht beschrieben haben. obwohl sie nicht komplizierter sind als Marktaufträge. sie verzögern nur die Platzierung von echten Stop-Loss- und Take-Profit-Aufträgen.

Aus irgendeinem Grund haben sie den Leser mit der nutzlosen Datei <Time.mqh> geladen, mit nicht sehr schönen Realisierungen ihrer Funktionen.

Dann Funktionen für die Auftragszählung, die Loskontrolle.

Es scheint, dass sie versucht haben, Ihr ganzes Wissen über die Arbeit mit Experten in den Artikel zu packen und den eigentlichen Zweck des Artikels unter diesem Wachstum begraben haben.

Und zu den angegebenen Modellen - ich habe nicht verstanden, wie Sie Stop-Loss und Take-Profit für Aufträge verwenden. Weder in IACD noch in Bolinger habe ich die Verwendung von Stopps gefunden.

Im Allgemeinen habe ich nicht genießen das Lesen des Artikels. es gibt eine Menge unnötiges Gewicht, dass eine helle Idee begraben.

Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
  • www.mql5.com
Основы языка / Типы данных / Объект динамического массива - Документация по MQL5
 

Ja, ohne die Liste der Geschäfte aus der Kontohistorie (oder aus Ihrer eigenen Datei) wiederherzustellen, stellte sich heraus, dass es sich um ein Spielzeug eines Testers handelt.

 
udmurt2:

Es ist sehr schade, dass Sie die Arbeit mit schwebenden Aufträgen nicht beschrieben haben.

Es gibt Arbeit mit schwebenden Aufträgen, aber es ist am Ende des Artikels geschrieben. (Sie hatten wahrscheinlich nicht die Geduld, ihn zu lesen :)).

Im Allgemeinen ist der Artikel wirklich schwer zu verstehen. Er könnte in Bezug auf die Darstellung der Informationen besser strukturiert sein.

 

an:Udmurt2

Wo ist Ihrer Meinung nach die Logik der MQL4-Experten in meinem Artikel? Aus der von Ihnen geschriebenen Rezension schließe ich, dass Sie die Materie überhaupt nicht verstanden haben. In vielerlei Hinsicht ist das natürlich meine Schuld, vielleicht hätte er wirklich besser strukturiert werden müssen.

--------------------------------

Haben Sie konkrete Vorschläge zur Verbesserung der Struktur des Artikels?

Ich stimme zu, dass viele Dinge "hinter den Kulissen" geblieben sind. Betrachten Sie diese Version als 1.0. Es ist geplant, Folgendes einzuführen:

1. Serialisierung von Daten auf der Grundlage von Datendateien;

2. Rekonstruktion der Historie von Modellgeschäften anhand der Auftragshistorie;

3. Vollständige Beschreibung des Modells auf der Grundlage schwebender Aufträge. 4;

4. Beschreibung des Handelsmodells anhand eines komplexen Systems von gegenseitig gezählten Aufträgen. 5;

5. Dynamische Kontrolle der Effizienz der einzelnen Modelle (Entfernung ineffizienter Modelle aus der Liste der Modelle).

6. Rückzug externer Funktionen aus den Handelsmodellen, z.B. Kapitalmanagementfunktionen.

7. Multithreading-Unterstützung (wird jetzt teilweise genutzt, dank der internen Parallelisierung des MT5).

...

Wie Sie sehen, ist das Material, das noch berücksichtigt werden muss, so umfangreich, dass es an der Zeit ist, einen weiteren Artikel darüber zu schreiben, sozusagen den zweiten Teil. Dieser Artikel ist kein Gummiartikel, jedenfalls glaube ich, dass die Aufgaben, die ich mir gestellt habe, gelöst sind. Und hier liegt Udmurt2 besonders falsch. Die Grundlage des vorgeschlagenen Ansatzes sind dynamische Listen, die überhaupt nicht mit schwebenden Aufträgen arbeiten (wie es ihm aus irgendeinem Grund zu sein schien). Deshalb wird ihnen auch so viel Aufmerksamkeit gewidmet. Im Großen und Ganzen gäbe es keine Strategie, die nicht auch ohne die Verwendung von Pending Orders gelöst werden könnte. Der von mir vorgeschlagene Ansatz schränkt jedoch die Verwendung von Pending Orders, die dieselben Stopps und Take-outs simulieren, nicht ein. In diesem Fall sind jedoch zusätzliche Prüfungen und Programmteilsysteme erforderlich, insbesondere wäre eine Struktur zur Beschreibung des Trade()-Ereignisses sehr nützlich. Und solange es eine solche Struktur nicht gibt (weil MQL5 in der Entwicklung ist), halte ich es für einen völligen Wahnsinn, Kontrollsysteme für nicht existierende Möglichkeiten zu schreiben.

Übrigens, im einfachsten Fall kann man einen Trade Restorer aus Dateien in ein paar Stunden schreiben. Dieser Punkt wurde in dem Artikel jedoch nicht berücksichtigt, denn ich möchte, dass diese Lösung gut durchdacht ist und nicht einfach nur in aller Eile geschrieben wird. Auf jeden Fall wird es eine der vielen interessanten Fragen sein, die im zweiten Teil gelöst werden.

MQL5 wird gerade entwickelt. Der vorgeschlagene Ansatz wird sich ebenso wie MQL5 mit der Zeit weiterentwickeln und an Möglichkeiten gewinnen. Manchen mag es so vorkommen, als sei es zum jetzigen Zeitpunkt ein Spielzeug für einen Prüfer. In diesem Fall können wir sagen, dass MetaTrader 5 auch ein Spielzeug für Demokonten ist. Aber glauben Sie mir, es wird nicht viel Zeit vergehen, und MT5 wird ein De-facto-Standard werden, und der Ansatz, den ich vorgeschlagen habe, wird eine leistungsstarke Lösung für den Handel mit mehreren Währungen, Zeitrahmen und Systemen sein. Das Wichtigste ist jetzt, die Grundlagen zu verstehen. Diese Grundlagen habe ich in diesem Artikel dargelegt. Sobald Sie sie verstanden haben, können Sie problemlos Ihr eigenes Handelsmodell erstellen und dabei alle Vorteile von Pending Orders und der Speicherung von Geschäften in Dateien nutzen.

 
Oh, und noch eine Sache. Ursprünglich habe ich den vorgeschlagenen Handelsmotor für mich selbst geschrieben, da ich ein aktiver MTS-Händler bin. Ich brauchte eine solche Engine, damit ich sie in Zukunft bei der Arbeit an echten Konten einsetzen kann. Jetzt gibt es keine realen Konten und ein vollständiger Übergang zu MT5 steht noch aus. Daher habe ich noch Zeit, die notwendigen Funktionen innerhalb des vorgeschlagenen Modells zu durchdenken und zu implementieren, die für den Handel auf realen Konten erforderlich sind. In jedem Fall glaube ich, dass durch den hohen Grad an Kapselung und die flexible Speicherverwaltung ein hohes Maß an Skalierbarkeit und Vielseitigkeit erreicht wird. Auf der Grundlage des vorgeschlagenen Ansatzes ist es möglich, eine Reihe interessanter Wartungs-Subsysteme zu schaffen, wie z.B.: ein System der Effizienzkontrolle für jedes Handelsmodell aus der Liste, ein individuelles Kapitalisierungssystem für jedes Modell (bereits implementiert), ein System der bedingten Aufnahme/Entfernung eines Handelsmodells in die Liste (wenn der Markt bestimmte formalisierte Eigenschaften aufweist, bei denen das Modell effizient oder ineffizient ist, wird es dynamisch in die Liste aufgenommen oder aus ihr entfernt). Außerdem kann der Algorithmus Hunderte von Modellen gleichzeitig verarbeiten (für die Zukunft ist die Einführung von Multithreading mit Standardmitteln geplant). Sagen Sie mir, welcher andere vorgeschlagene Ansatz hat eine solche Flexibilität und Kontrollierbarkeit?
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете - Документация по MQL5
 
C-4:

Was denken Sie, wo die Logik der MQL4-Experten in meinem Artikel ist?

öffnen Sie ganz am Anfang und lesen Sie:

Also, hier sind die wichtigsten Aufgaben, die wir lösen müssen:

  1. Ein Expert Advisor soll auf der Basis mehrerer Handelssysteme gleichzeitig handeln. Dabei sollte es ebenso einfach sein, sowohl mit einem als auch mit mehreren Handelssystemen zu handeln;
  2. Alle im Expert Advisor enthaltenen Handelssysteme dürfen sich nicht gegenseitig behindern. Jedes Handelssystem darf nur seinen Beitrag zur Gesamtposition und nur seine Aufträge verarbeiten;
  3. Jedes der zusammengefassten Systeme muss sowohl auf einem Zeitrahmen des Instruments als auch auf allen Zeitrahmen gleichzeitig leicht zu handeln sein.
  4. Jedes der aggregierten Systeme muss sowohl für ein Handelsinstrument als auch für alle verfügbaren Instrumente gleichermaßen einfach zu handeln sein.

und durch all diese Punkte ist die Logik des MT4-Terminals klar und deutlich erkennbar

1. Es können gleichzeitig mehrere Expert Advisors geführt werden, dank der Magie und der Abwesenheit einer Nettoposition.
2. Die Expert Advisors widersprechen sich nicht, dank der gleichen Magie und der Abwesenheit einer Nettoposition.
3. Alles kann auf jedem Zeitrahmen gehandelt werden
4. Alles wird auf jedem Instrument gehandelt.

FRAGE:Was haben Sie Neues geschrieben, was es im MT4-Terminal nicht gibt?

Ich schrieb oben, dass Sie Ihre Argumentation von der Basis von MQL4 bauen könnte und entwickeln seine Umsetzung. so wäre es viel klarer, was Sie sagen wollen.

Haben Sie irgendwelche konkreten Vorschläge zur Verbesserung der Struktur des Artikels?

Ich würde ihn schrittweise aufbauen, von der Berücksichtigung von Stops durch magik-ticket bis zur Erstellung eines Modells eines Trading Expert Advisors-mt4
und erst dann zu Methoden der Steuerung mehrerer Expert Advisors übergehen. (Listen/Nicht-Listen ist schon so, wie man es gerne anwenden wird)

Betrachten Sie diese Version als 1.0. Folgende Neuerungen sind geplant:
2. Rekonstruktion der Historie von Modellgeschäften anhand der Auftragshistorie;
3. Vollständige Beschreibung des Modells auf der Grundlage von schwebenden Aufträgen;
4. Beschreibung des Handelsmodells unter Verwendung eines komplexen Systems von gegenseitig gezählten Aufträgen;

die punkte 2-4 sind das, was man in diesem artikel sofort hätte lösen sollen. alles andere ist vom bösen. und hätte dem ermessen des programmierers oder im zweiten artikel überlassen werden können.

Und hier liegt Udmurt2 besonders falsch. Die Grundlage des vorgeschlagenen Ansatzes sind dynamische Listen, die überhaupt nicht mit schwebenden Aufträgen arbeiten (wie es ihm aus irgendeinem Grund zu sein schien). Deshalb wird ihnen auch so viel Aufmerksamkeit geschenkt.
Was auch immer Sie sagen wollen, aber die Grundlage dieser Methode (Ihre ursprünglichen Aufgaben und der Zweck dieses Artikels) sind nicht Listen, sondern die Verteilung der MT5-Nettoposition auf die Logik der MT4-Expert Advisors und die Verarbeitung ihrer Stops über das Magik-Ticket.

Dynamische Listen sind nur eine der Methoden ihrer Kontrolle und Abrechnung. Sie können mit einem gewöhnlichen Array tun.

Sagen Sie mir, welcher andere vorgeschlagene Ansatz hat eine solche Flexibilität und Kontrollierbarkeit?

jeder MT4-Experte :)))

 

C-4:

Manchen mag es so vorkommen, als sei es zum jetzigen Zeitpunkt ein Spielzeug für einen Tester. In diesem Fall können wir sagen, dass MetaTrader 5 jetzt auch ein Spielzeug für Demokonten ist.

Ja, das ist er ;)

Aber MT wird gerade fertiggestellt. Und der im Artikel vorgeschlagene Code könnte für echte Konten geschrieben worden sein.


Übrigens, wie ist der Championship Expert Advisor? Hat er unter Reboots gelitten?

 

Wassili, du arbeitest wohl zu viel. Manchmal muss man zurück an den Anfang gehen und alles neu machen. Ich bin schon zum tausendsten Mal davon überzeugt, dass die Menschen dazu neigen, alles zu verkomplizieren. Meine freundliche Empfehlung an Sie - überarbeiten Sie Ihre Basisklassen zur Mutterlogik des MT4-Terminalbetriebs mit einem linearen Gerät. Vieles wird dann klarer werden.
Andernfalls werde ich den zweiten Artikel schreiben müssen :)

 
komposter:

Ja, das ist sie ;)

Aber MT wird gerade fertiggestellt. Und der im Artikel vorgeschlagene Code hätte sofort mit Blick auf die Realität geschrieben werden können.

Übrigens, wie geht es dem Championship EA? Hat er unter den Reboots gelitten?


Er hat gelitten, aber nicht wesentlich. Natürlich hatte er einen eingebauten Initialisierungs-/Deinitialisierungs-Event-Handler. Allerdings habe ich eine Sache nicht berücksichtigt: Die Initialisierung und Deinitialisierung kann außerhalb der Geschäftszeiten stattfinden, zum Beispiel am Samstag, was die Organisatoren der Meisterschaft so eingerichtet haben. Das lässt sich mit ein paar Zeilen Code lösen, aber ich war mir dieser heimtückischen Kombination einfach nicht bewusst (na ja, man kann nicht alles berücksichtigen), so dass irgendwo 1 Menge verloren ging.

Ich werde versuchen, in nächster Zeit eine einfache Datenserialisierung zu schreiben und sie in den Artikel einzufügen (im Prinzip wird es zwei Tage dauern). Damit wird es ein vollwertiges Produkt für die Arbeit auf Echtzeitkonten (Demo und Real). Sie sagen also, dass dies ein Spielzeug für einen Tester ist. Es fehlen nur 5-6% des Wartungscodes für den zuverlässigen Einsatz auf realen Konten.

Wir haben auch vor, so etwas einzuführen: Nehmen wir an, es gibt ein abstraktes Handelsmodell. Es verwendet nur schwebende Aufträge (Stops, Take-outs, Einstiegspunkte). Es wird zwei Möglichkeiten geben, es in der Engine zu verwenden: Alle Einstiegspunkte werden virtuell sein, verborgen vor den Augen des Brokers. Die zweite Möglichkeit: Alle Take-Stops und Einstiegspunkte werden auf schwebenden Aufträgen liegen, um die Zuverlässigkeit zu erhöhen. Interessant ist, dass es für jedes Modell zwei Arten der Virtualisierung geben wird (schwebend und virtuell). D.h. es wird wie folgt sein: switch virtual_orders=true; - und alle Aufträge sind virtuell, verborgen vor den Augen des Brokers; switch virtual_orders=false; - und alle Aufträge werden auf magische Weise ausstehend. Das Beste daran ist, dass das Modell keine besondere Unterstützung benötigt, alles wird auf der Ebene der Engine implementiert. Die Modelle müssen nur die Auftragsart für Einstiegspunkte angeben, die Art der Stops und Takes wird unabhängig gewählt, je nach dem Schalter virtual_orders.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 

an:Udmurt

Sagen Sie mir bitte nicht, was ich hätte tun oder nicht tun sollen. Ich diene nicht Ihren Interessen und arbeite nicht für Sie.

Ich halte unser Gespräch für Unsinn, weil Sie nicht einmal das Wesentliche Ihrer eigenen Aussagen verstehen. Beweisen Sie mir, dass Sie MQL4 wirklich verstehen und z.B. einen Handelsexperten darüber schreiben und gleichzeitig 500 verschiedene Handelsmodelle handeln. Nehmen wir z.B. 5 Strategien * 20 Instrumente * 5 Timeframes. Wenn Ihr Expert Advisor zumindest im Tester eindeutig darauf funktioniert, dann und nur dann werde ich zugeben, dass der überhitzte Unsinn, den Sie sagen, nicht wirklich Unsinn ist, sondern nützliche Bemerkungen eines intelligenten Menschen. Jetzt möchte ich Sie um einen Gefallen bitten: Belästigen Sie mich nicht umsonst und versuchen Sie nicht einmal, ohne den Quellcode dieses Experten mit mir zu kommunizieren.