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...
Ich werde das Projekt mit Interesse verfolgen...
Bitte klären Sie, ob Sie mit dem Projekt(Projekte - MetaEditor) verbunden werden möchten?
- www.metatrader5.com
Hallo!
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
- www.metatrader5.com
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.
***
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
***
Ü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.
... 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.
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.
- www.metatrader5.com
Ich weiß nicht, wie man programmiert, aber ich habe deine Idee für 4.
Hier gibt es nur mql5. Das alte Terminal zitiert nicht.
- 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.
Ich eröffne ein Projekt
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):
(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)