Ich habe diese Änderungen vorgenommen, der Assistent sieht das neue Signalmodul, aber der resultierende Expert Advisor handelt aus irgendeinem Grund nicht. Kann ich Debugging verwenden, um an die Funktionen CheckOpenShort/CheckOpenLong zu gelangen?
Ich habe mir den Code mehrerer fertiger Signale aus dem Signal-Ordner angesehen, es gibt keine Implementierung der Funktionen CheckOpenShort/CheckOpenLong. Stattdessen werden sie verwendet
//--- Methoden zur Überprüfung, ob die Marktmodelle gebildet sindvirtualint LongCondition();
virtualint ShortCondition();
Verstehe ich das richtig? Wenn ich mein eigenes Modul schreibe, muss ich sie dann auch implementieren? Wann wird die Beschreibung der CExpert-Klasse erscheinen?
Ich habe mir den Code von mehreren fertigen Signalen aus dem Signal-Ordner angesehen, es gibt keine Implementierung der CheckOpenShort/CheckOpenLong-Funktionen. Stattdessen werden sie korrekt verwendet, verstehe ich?
Um ehrlich zu sein, bin ich ein wenig verwirrt. Es gibt die Funktionen CheckOpenShort/CheckOpenLong in der Klasse CExpertSignal. Du verwendest andere Funktionen in deinen Signalen, und ich verstehe auch nicht, wo sie in CExpert aufgerufen werden. Das Problem ist, dass ich ein vorgefertigtes Signal aus dem Artikel über das Schreiben meines eigenen Signalmoduls genommen habe, den Assistenten dazu gebracht habe, es zu sehen (Sie können wahrscheinlich Änderungen an dem Artikel über das neue Format vornehmen) und einen Expert Advisor mit diesem Signal bekommen habe, aber er handelt nicht, nicht ein einziges Geschäft im Tester seit einem Jahr.
Funktionen werden im Konstruktor aufgerufen - das ist klar, aber warum werden keine Standardfunktionen verwendet?
Ich habe es so verstanden: es soll ein Objekt der Klasse CExpertSignal unter mehreren im Expert Advisor verwendeten Objekten mit dem Hauptattribut geben, das diese Funktionen nutzen kann. andere Objekte nehmen an der Positionseröffnung durch die Funktionen teil
virtual int ShortCondition(); //Überprüfung der Eröffnungsbedingung Sell
virtual int LongCondition(); //Überprüfung der Bedingung für die Eröffnung einer Kaufposition
Um das i-Tüpfelchen zu setzen, benötigen wir einen Artikel darüber, wie Sie Ihr eigenes Signalmodul im neuen Assistenten schreiben können, also warten wir darauf.
In der neuen Version von MQL5 Wizard hat sich das Format der Signalmodule geändert. Schauen Sie hier für Informationen - https://www.mql5.com/ru/forum/3724/66962#comment_66962.
Ich habe mir den Code von mehreren fertigen Signalen aus dem Signal-Ordner angesehen, es gibt keine Implementierung der CheckOpenShort/CheckOpenLong-Funktionen. Stattdessen werden sie korrekt verwendet, verstehe ich?
Ja, das ist richtig.
Um ehrlich zu sein, bin ich ein wenig verwirrt. Es gibt die Funktionen CheckOpenShort/CheckOpenLong in der Klasse CExpertSignal. Du verwendest andere Funktionen in deinen Signalen, und ich verstehe auch nicht, wo sie in CExpert aufgerufen werden. Das Problem ist, dass ich ein vorgefertigtes Signal aus dem Artikel über das Schreiben meines eigenen Signalmoduls genommen habe, den Assistenten dazu gebracht habe, es zu sehen (Sie können wahrscheinlich Änderungen an dem Artikel über das neue Format vornehmen) und einen Expert Advisor mit diesem Signal bekommen habe, aber er handelt nicht, nicht ein einziges Geschäft im Tester seit einem Jahr.
Funktionen werden im Konstruktor aufgerufen - das ist klar, aber warum werden keine Standardfunktionen verwendet?Bitte sehen Sie nach, was los ist. In der Testversion wird nicht gehandelt.
Dieses Modul wird gehandelt.
Für Ihren Fall, ersetzen Sie für Longs
if( High(1) > High(2) && Low(2)>Low(3) && High(2)<High(3) && Close(3)>Open(3) ){ return(100); } //--- условие не выполнено return(0); }durch
für Shorts - finden Sie es selbst
dieses Modul handelt
für Ihren Fall ersetzen Sie die Longs
durch
für Shorts, Sie werden es selbst finden.
Ja, das tut es, danke! Ich habe den Tag damit verbracht, ich glaube, ich habe alles wie im Artikel gemacht, was ist mein Fehler?
Im neuen Assistenten gibt es im Vergleich zum vorherigen sehr große Änderungen,
virtual bool CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration);
virtual bool CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration);
Ich habe es so verstanden: es soll ein Objekt der Klasse CExpertSignal unter mehreren im Expert Advisor verwendeten Objekten mit dem Hauptattribut geben, das diese Funktionen nutzen kann. andere Objekte nehmen an der Positionseröffnung durch die Funktionen teil
virtual int ShortCondition(); //Überprüfung der Eröffnungsbedingung Sell
virtual int LongCondition(); //Überprüfung der Bedingung für die Eröffnung einer Kaufposition
Um das i-Tüpfelchen zu setzen, benötigen wir einen Artikel darüber, wie Sie Ihr eigenes Signalmodul im neuen Assistenten schreiben können, also warten wir darauf.