Kaufstopp Verkaufsstopp Rasterberater als Klasse

 

Ich eröffne ein Projekt

Entwurf Kaufstopp Verkaufsstopp Rasterberater als Klasse

Testen einer Strategie für die Arbeit mit schwebenden Stop-Aufträgen.

Die Essenz des Handels: Zu Beginn setzen wir zwei Stop-Pending-Orders (Buy Stop und Sell Stop). Wenn eine ausgelöst wurde, löschen Sie die zweite (wir werden sie später ändern, aber im Moment löschen Sie sie einfach) und wieder zwei ausstehende Stoppaufträge.

Die Bedeutung: eine Reihe von Positionen in Übereinstimmung mit dem Trend.

Screenshot (Ergebnis, wenn es einen Trend gibt und mehrere Pending Orders ausgelöst wurden):

Kaufstopp Verkaufsstopp Raster

(ein wenig später ...).


Wie man auf den vollständigen Code zugreifen kann: NUR durch Verbindung mit dem Projekt, während die Teile natürlich in diesem Thread diskutiert werden. Der EA selbst wird in Form einer Klasse (*.mqh) vorliegen.


Hinzugefügt:

Wenn der EA läuft, werden die Daten in ein Array in OnTradeTransaction geschrieben. Das Format der Aufzeichnung ist wie folgt: Wenn wir eine Kaufposition haben, notieren wir '+1'; wenn wir eine Verkaufsposition haben, notieren wir '-1'.

Prüfen wir die Idee des Pyramidings (falls eine Position in Richtung der vorherigen eröffnet wurde)

 
Vladimir Karputov:

Ich eröffne ein Projekt, um eine Strategie für die Arbeit mit schwebenden Stop-Orders zu testen.

Die Essenz des Handels: Zu Beginn setzen wir zwei Stop-Pending-Orders (Buy Stop und Sell Stop). Wenn eine ausgelöst wurde, dann löschen Sie die zweite (wir werden sie später ändern, aber im Moment löschen Sie sie einfach) und wieder zwei Stop-Pending-Orders.

Die Bedeutung: eine Reihe von Positionen nach Trend.

Bild:

(ein wenig später ...).


Wie man auf den vollständigen Code zugreifen kann: NUR durch Verbindung mit dem Projekt, während die Teile natürlich in diesem Thread diskutiert werden. Der Expert Advisor selbst wird in Form einer Klasse (*.mqh) vorliegen.


Ich bin gerade dabei, etwas Ähnliches zu bestellen, nur komplizierter

 

Ich werde das Projekt mit Interesse verfolgen...

 
Vasily Bykov:

Ich werde das Projekt mit Interesse verfolgen...


Bitte klären Sie, ob Sie mit dem Projekt(Projekte - MetaEditor) verbunden werden möchten?

Проекты - Справка по MetaEditor
Проекты - Справка по MetaEditor
  • www.metatrader5.com
MetaEditor позволяет программистам вести совместную разработку приложений на MQL4/MQL5 удаленно. Специально для этих целей в нем предусмотрены...
 

Hallo!


Solche Roboter sind bekannt und verfügbar. Und was ist das Ziel Ihres Projekts?
 
Alexander Ivanov:

Hallo!


Es ist bekannt, dass solche Expert Advisors existieren. Und was ist das Ziel Ihres Projekts?

Die Hauptziele sind oben beschrieben:

  • ist es, einen EA als eigene Klasse zu erstellen
  • Entwicklung von Projekten(Projekte - MetaEditor)
  • Testen einer Handelsstrategie mit schwebenden Stop-Aufträgen

Проекты - Справка по MetaEditor
Проекты - Справка по MetaEditor
  • www.metatrader5.com
MetaEditor позволяет программистам вести совместную разработку приложений на MQL4/MQL5 удаленно. Специально для этих целей в нем предусмотрены...
 

Ich finde das Thema interessant. Zunächst einmal die Bedingung "als Klasse".

Mein "Rein als Klasse" hat nicht funktioniert. Die Systemarchitektur umfasst die Hauptvorlage, die die Standardfunktionen OnInit(), OnTick() usw. enthält. Außerdem wird ein Objekt der Klasse CExpert deklariert, das über Funktionen verfügt - Klassenmitglieder, die all diese Ereignisse verarbeiten. In der Main-Vorlage werden die Mitgliedsfunktionen von Standardfunktionen aufgerufen.

Wir haben also bereits "nicht rein in Form einer Klasse", denn es gibt Standardfunktionen, aus denen die Eventhandler der EA-Klasse aufgerufen werden.

Und wenn wir in dieser Architektur genau diese EA-Klasse ersetzen wollen, müssen wir die gesamte Vorlagendatei neu schreiben. Der EA als Klasse" sollte wie folgt aussehen: Wir deklarieren eine EA-Klasse (die gesamte Beschreibung steht in den Include-Dateien), schließen eine Vorlage ein - und das war's.

Mit anderen Worten, es stellt sich heraus, dass es in der Vorlage Standardfunktionen geben sollte, ein Hub-Objekt, das den EA mit diesen Standardfunktionen verbindet, und dann kann die Hauptdatei auf die "richtige Struktur" reduziert werden - Deklaration eines EA-Objekts und Verbindung der Vorlage. In diesem Fall deklarieren wir in der Hauptdatei ein EA-Objekt, verbinden die Hauptvorlage, das Hub-Objekt registriert ein Objekt und verbindet seine Handlerfunktionen in der Hauptvorlage mit den Standard-Ereignisfunktionen.

Es ist sogar möglich, viele TC in einem EA zu implementieren - dazu werden mehrere EA-Objekte deklariert und die Hub-Klasse verbindet sie alle mit Hauptfunktionen, und sie arbeiten unabhängig voneinander (natürlich muss man beim Verbinden den Unterschied in den Magiern überprüfen, und die EAs selbst müssen die Positionen ihrer Magier auswählen).


Zum Thema "Verbinden Sie mich mit dem Projekt" - ich bin bereit, mich im Nur-Lesen-Modus zu verbinden - ich werde wahrscheinlich nichts schreiben, aber ich kann schauen, etwas vorschlagen, auf Fehler hinweisen.

 
George Merts:

***

Und wenn wir in dieser Architektur genau diesen Klassenberater ersetzen wollen, müssen wir die gesamte Vorlagendatei neu schreiben. Der "EA als Klasse" sollte wie folgt aussehen: Wir deklarieren eine EA-Klasse (die gesamte Beschreibung - in Include-Dateien), verbinden die Vorlage - und das war's.

***

... verbinden Sie die Vorlage und übergeben Sie die Eingabeparameter an die Expert Advisor-Klasse


George Merts:

***

Über "Verbinden Sie mich mit dem Projekt" - bereit, eine Verbindung im Nur-Lesen-Modus herzustellen - es ist unwahrscheinlich, dass ich etwas schreibe, aber um zu schauen, um etwas anzubieten, um auf Fehler hinzuweisen - das kann ich.


Erledigt, verbunden.

 
Vladimir Karputov:

... die Vorlage verbinden und die Eingabeparameter an die EA-Klasse übergeben



Erledigt, eingesteckt.

О ! Ich habe sie. Ich habe die Dateien. Wenn ich Zeit habe, werde ich nachsehen, was es dort gibt.

 
Ibragim Dzhanaev:

Wer nicht programmieren kann, kann nicht mitmachen?


Jeder kann mitmachen, aber nur diejenigen, die dem Projekt beitreten wollen(Projekte - MetaEditor), haben Zugang zum VOLLEN Code. Es wird eine Diskussion über das Projekt geben, so dass die Meinung eines jeden (Programmierer oder Benutzer) wertvoll sein wird.

Проекты - Справка по MetaEditor
Проекты - Справка по MetaEditor
  • www.metatrader5.com
MetaEditor позволяет программистам вести совместную разработку приложений на MQL4/MQL5 удаленно. Специально для этих целей в нем предусмотрены...
 
Ibragim Dzhanaev:

Ich weiß nicht, wie man programmiert, aber ich habe deine Idee für 4.



Hier gibt es nur mql5. Das alte Terminal zitiert nicht.