Diskussion zum Artikel "Der MQL5 Assistent: Wie man ein Modul an Handelssignalen erzeugt" - Seite 3

 
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.
Обсуждение статьи "Мастер MQL5: Новая версия"
Обсуждение статьи "Мастер MQL5: Новая версия"
  • www.mql5.com
Изменения в архитектуре сигналов позволяют теперь создавать торговые роботы на основе комбинации различных рыночных моделей.
 
Rosh:
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 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 sind
   virtual int       LongCondition();
   virtual int       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?
 
beginner:

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.
 
Rosh:
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. Das Testgerät wird nicht gehandelt.
Dateien:
1.mq5  7 kb
 
beginner:

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

Open(1)< Open(2)

für Shorts - finden Sie es selbst

Dateien:
 
gdtt:

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 verbrachte den Tag, ich glaube, ich habe alles wie in dem Artikel, was ist mein Fehler?
 
beginner:
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.

 
Ja, der Artikel fehlt, und die CExpertSignal-Dokumentation muss wahrscheinlich aktualisiert werden.