Ich habe mich entschlossen, mein eigenes Signalmodul zu schreiben, rein aus kognitiven Gründen. Ich bin mit einem Problem konfrontiert worden. Ich habe verstanden, dass dies über CExpertSignal::OpenLongParams(...) erfolgen kann. Aber ich habe ein Problem - mein Tester warnt vor einem ungültigen Ablaufdatum. Nachdem ich mich in den Quellcode vertieft habe, habe ich festgestellt, dass wir außerORDER_TIME_SPECIFIED keinen anderen Zeittyp erhalten können und wir ORDER_TIME_GTC wünschen.
Ich habe bisher einen klugen Zug gemacht, aber er ist nicht ganz richtig. Ich habe die Funktion in der Bibliothek korrigiert:
Was können Sie mir raten?
Hallo.
Sie haben völlig Recht. Ich habe die Nullverfallzeiten nicht berücksichtigt.
Ihre Lösung ist gut. Ich werde entsprechende Änderungen an der Standardbibliothek vornehmen.
Sie haben völlig Recht. Ich habe den Null-Ablauf nicht berücksichtigt.
Ihre Lösung ist gut. Ich werde entsprechende Änderungen an der Standardbibliothek vornehmen.
Ich danke Ihnen.
Das wird schon werden, aber in der Zwischenzeit habe ich in dieser Situation einen anderen Ausweg gefunden, den richtigen :) Indem ich eine von CExpert geerbte Klasse erstellt habe, in der ich die Funktionen CheckOpenLong() und CheckOpenShort() überschrieben habe, und ich habe dort Korrekturen dieser Art vorgenommen:
Aber in der Zwischenzeit habe ich einen anderen Ausweg aus dieser Situation gefunden - den richtigen :) Indem ich eine von CExpert geerbte Klasse erstellt habe, in der ich die Funktionen CheckOpenLong() und CheckOpenShort() überschrieben habe, und dort Korrekturen dieser Art vorgenommen habe:
Bitte erklären Sie die Logik des Parameters Expert_EveryTick
Wenn Expert_EveryTick=true, verarbeitet der Expert Advisor jeden Tick? D.h. es prüft die Ein- und Ausstiegsbedingungen und die Positionsverfolgung (Trawl) bei jedem neuen Tick, richtig?
Und wenn Expert_EveryTick=fasle - nur beim ersten Tick eines neuen Balkens? Und der Trail wird auch nur beim ersten Tick ausgelöst?
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
Bitte erklären Sie die Logik des Parameters Expert_EveryTick
Wenn Expert_EveryTick=true, verarbeitet der Expert Advisor jeden Tick? D.h. es prüft die Ein- und Ausstiegsbedingungen und die Positionsverfolgung (Trawl) bei jedem neuen Tick, richtig?
Und wenn Expert_EveryTick=fasle - nur beim ersten Tick eines neuen Balkens? Und das Schleppnetz wird auch nur beim ersten Tick ausgelöst?
Es gibt ein Signal an die andere Seite, zu verkaufen.
Was wird der EA tun? werden zwei Geschäfte von 1 Lot jeder (die erste wird um 1 Lot schließen) oder ein Geschäft von 2 Lots? gibt es einen Unterschied zwischen gewinnen und verlieren den aktuellen Kauf?
Wenn es eine Kaufposition und wieder ein Kaufsignal gibt, welche Methoden sollte ich neu definieren, um sie zu schließen?
gibt es ein Signal an die andere Seite, zu verkaufen.
Was sollte der Expert Advisor tun? wird er zwei Geschäfte von je 1 Lot eröffnen (das erste wird um 1 Lot geschlossen) oder ein Geschäft von 2 Lots? gibt es einen Unterschied, wenn der aktuelle Kauf im roten Bereich oder im Überschuss ist?
2. der EA wird nicht selbst lang gehen, d.h. wenn es eine Kaufposition und wieder ein Signal zu kaufen? welche Methoden sollte ich neu definieren, damit es lang gehen, CheckOpenLong()?
1. zwei Schwellenwerte für die Auslösung (Einstellungen des Expert Advisors) Wenn der Schwellenwert für Close überschritten wird, wird die Position einfach geschlossen, wenn zwei Schwellenwerte überschritten werden (Close und Open), wird die Position umgekehrt. -/+ Es gibt keinen Unterschied.
1. zwei Triggerschwellen (EA-Einstellungen). Wird die Close-Schwelle überschritten, wird die Position einfach geschlossen. Werden zwei Schwellenwerte überschritten (Close und Open), wird die Position umgekehrt. -/+ Es gibt keinen Unterschied.
2. die Verarbeitungsmethode
Die Schwellenwerte für "Close" und "Open" sind das Ergebnis einer "Abstimmung". Was liefern ShortCondition() oder LongCondition() im Signalmodul?
Sind die Schwellenwerte für "Close" und "Open" das Ergebnis der "Abstimmung" darüber, was ShortCondition() oder LongCondition() im Signalmodul zurückgibt?
Schwellenwerte sind Parameter (Signal_ThresholdOpen und Signal_ThresholdClose), mit denen das Ergebnis der "Abstimmung" verglichen wird.
Wie kann man erreichen, dass das Signalmodul nur bei Eröffnungskursen und nicht bei jedem Tick funktioniert?
Wie erhalte ich die Abstimmungswerte des Signalmoduls im Modul Positionsbestimmung? Sie müssen sich auf ein bereits berechnetes Signal stützen und nicht ein weiteres Signalmodul dazu erfinden.
Wie erhält man die Abstimmungswerte des Alarmmoduls im Geld- und Risikomanagementmodul? Sie müssen die Volumina gemäß den bereits berechneten Handelssignalen öffnen und nicht ein weiteres Signalmodul für die Volumenberechnung zusammenstellen.
Theoretisch können wir den EA natürlich auch mit dem Assistenten erstellen und dann all diese Funktionen manuell zum Code hinzufügen. Es ist jedoch wünschenswert, dass all dies in Form von Standardmethoden implementiert wurde, d. h. für Dummies, die den Assistenten verwenden möchten, damit sie nicht in den Code einsteigen und ihn bearbeiten müssen, wenn sie z. B. ein Signalmodul durch ein anderes ersetzen möchten.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Hallo.
Ich habe mich entschlossen, mein eigenes Signalmodul zu schreiben, rein aus kognitiven Gründen. Ich bin mit einem Problem konfrontiert worden. Ich habe verstanden, dass dies über CExpertSignal::OpenLongParams(...) erfolgen kann. Aber ich habe ein Problem - mein Tester warnt vor einem ungültigen Ablaufdatum. Nachdem ich mich in den Quellcode vertieft habe, habe ich festgestellt, dass wir außerORDER_TIME_SPECIFIED keinen anderen Zeittyp erhalten können und wir ORDER_TIME_GTC wünschen.
Ich habe bisher einen klugen Zug gemacht, aber er ist nicht ganz richtig. Ich habe die Funktion in der Bibliothek korrigiert:
Was können Sie mir raten?
Hallo.
Sie haben völlig Recht. Ich habe die Nullverfallzeiten nicht berücksichtigt.
Ihre Lösung ist gut. Ich werde entsprechende Änderungen an der Standardbibliothek vornehmen.
Ich danke Ihnen.
Hallo.
Sie haben völlig Recht. Ich habe den Null-Ablauf nicht berücksichtigt.
Ihre Lösung ist gut. Ich werde entsprechende Änderungen an der Standardbibliothek vornehmen.
Ich danke Ihnen.
Das wird schon werden, aber in der Zwischenzeit habe ich in dieser Situation einen anderen Ausweg gefunden, den richtigen :) Indem ich eine von CExpert geerbte Klasse erstellt habe, in der ich die Funktionen CheckOpenLong() und CheckOpenShort() überschrieben habe, und ich habe dort Korrekturen dieser Art vorgenommen:
Aber in der Zwischenzeit habe ich einen anderen Ausweg aus dieser Situation gefunden - den richtigen :) Indem ich eine von CExpert geerbte Klasse erstellt habe, in der ich die Funktionen CheckOpenLong() und CheckOpenShort() überschrieben habe, und dort Korrekturen dieser Art vorgenommen habe:
Bitte erklären Sie die Logik des Parameters Expert_EveryTick
Wenn Expert_EveryTick=true, verarbeitet der Expert Advisor jeden Tick? D.h. es prüft die Ein- und Ausstiegsbedingungen und die Positionsverfolgung (Trawl) bei jedem neuen Tick, richtig?
Und wenn Expert_EveryTick=fasle - nur beim ersten Tick eines neuen Balkens? Und der Trail wird auch nur beim ersten Tick ausgelöst?
Bitte erklären Sie die Logik des Parameters Expert_EveryTick
Wenn Expert_EveryTick=true, verarbeitet der Expert Advisor jeden Tick? D.h. es prüft die Ein- und Ausstiegsbedingungen und die Positionsverfolgung (Trawl) bei jedem neuen Tick, richtig?
Und wenn Expert_EveryTick=fasle - nur beim ersten Tick eines neuen Balkens? Und das Schleppnetz wird auch nur beim ersten Tick ausgelöst?
Weitere Fragen zur Logik des Expert Advisors:
es gibt eine offene Position, z.B. Kauf, und ein festes Los, z.B. 1.
Es gibt ein Signal an die andere Seite, zu verkaufen.
Was wird der EA tun? werden zwei Geschäfte von 1 Lot jeder (die erste wird um 1 Lot schließen) oder ein Geschäft von 2 Lots? gibt es einen Unterschied zwischen gewinnen und verlieren den aktuellen Kauf?
Wenn es eine Kaufposition und wieder ein Kaufsignal gibt, welche Methoden sollte ich neu definieren, um sie zu schließen?
Weitere Fragen zur Logik des Expert Advisors:
1. Es gibt eine offene Position, z.B. Kauf, und ein festes Los, z.B. 1.
gibt es ein Signal an die andere Seite, zu verkaufen.
Was sollte der Expert Advisor tun? wird er zwei Geschäfte von je 1 Lot eröffnen (das erste wird um 1 Lot geschlossen) oder ein Geschäft von 2 Lots? gibt es einen Unterschied, wenn der aktuelle Kauf im roten Bereich oder im Überschuss ist?
2. der EA wird nicht selbst lang gehen, d.h. wenn es eine Kaufposition und wieder ein Signal zu kaufen? welche Methoden sollte ich neu definieren, damit es lang gehen, CheckOpenLong()?
1. zwei Schwellenwerte für die Auslösung (Einstellungen des Expert Advisors) Wenn der Schwellenwert für Close überschritten wird, wird die Position einfach geschlossen, wenn zwei Schwellenwerte überschritten werden (Close und Open), wird die Position umgekehrt. -/+ Es gibt keinen Unterschied.
2. die Verarbeitungsmethode
1. zwei Triggerschwellen (EA-Einstellungen). Wird die Close-Schwelle überschritten, wird die Position einfach geschlossen. Werden zwei Schwellenwerte überschritten (Close und Open), wird die Position umgekehrt. -/+ Es gibt keinen Unterschied.
2. die Verarbeitungsmethode
Die Schwellenwerte für "Close" und "Open" sind das Ergebnis einer "Abstimmung". Was liefern ShortCondition() oder LongCondition() im Signalmodul?
Sind die Schwellenwerte für "Close" und "Open" das Ergebnis der "Abstimmung" darüber, was ShortCondition() oder LongCondition() im Signalmodul zurückgibt?
Drei Fragen:
Theoretisch können wir den EA natürlich auch mit dem Assistenten erstellen und dann all diese Funktionen manuell zum Code hinzufügen. Es ist jedoch wünschenswert, dass all dies in Form von Standardmethoden implementiert wurde, d. h. für Dummies, die den Assistenten verwenden möchten, damit sie nicht in den Code einsteigen und ihn bearbeiten müssen, wenn sie z. B. ein Signalmodul durch ein anderes ersetzen möchten.