Discussione sull’articolo "Il Wizard MQL5: Come creare un modulo di segnali di trading" - pagina 3

 
Nella nuova versione di MQL5 Wizard, il formato dei moduli di segnale è cambiato. Per informazioni, consultare il sito https://www.mql5.com/ru/forum/3724/66962#comment_66962.
Обсуждение статьи "Мастер MQL5: Новая версия"
Обсуждение статьи "Мастер MQL5: Новая версия"
  • www.mql5.com
Изменения в архитектуре сигналов позволяют теперь создавать торговые роботы на основе комбинации различных рыночных моделей.
 
Rosh:
Nella nuova versione di MQL5 Wizard, il formato dei moduli di segnale è cambiato. Per informazioni, consultare il sito https://www.mql5.com/ru/forum/3724/66962#comment_66962.

Ho apportato queste modifiche, la procedura guidata vede il nuovo modulo di segnale, ma l'Expert Advisor risultante non opera per qualche motivo. Posso utilizzare il debug per raggiungere le funzioni CheckOpenShort/CheckOpenLong?
 
Ho esaminato il codice di diversi segnali pronti della cartella Signal, ma non c'è alcuna implementazione delle funzioni CheckOpenShort/CheckOpenLong. Al loro posto vengono utilizzate
//--- metodi per verificare se i modelli di mercato sono formati
   virtual int       LongCondition();
   virtual int       ShortCondition();
Ho capito bene? Quando scrivo il mio modulo, devo implementare anche queste funzioni? Quando apparirà la descrizione della classe CExpert?
 
beginner:

Ho esaminato il codice di diversi segnali pronti della cartella Signal, ma non c'è alcuna implementazione delle funzioni CheckOpenShort/CheckOpenLong. Invece sono utilizzate correttamente, mi sembra di capire.
Sì, è corretto.
 
Rosh:
Sì, è così.

Ad essere sincero, sono un po' confuso. Ci sono funzioni CheckOpenShort/CheckOpenLong nella classe CExpertSignal. Voi utilizzate altre funzioni nei vostri segnali e non capisco dove siano chiamate in CExpert. Il problema è che ho preso un segnale già pronto dall'articolo sulla scrittura del mio modulo di segnali, ho fatto in modo che la procedura guidata lo vedesse (probabilmente si possono apportare modifiche all'articolo sul nuovo formato) e ho ottenuto un Expert Advisor con questo segnale, ma non fa trading, non una sola operazione nel tester per un anno.

Le funzioni vengono chiamate nel costruttore - è chiaro, ma perché non vengono utilizzate funzioni standard?

 
Si prega di vedere cosa c'è di sbagliato. Non si tratta di un tester.
File:
1.mq5  7 kb
 
beginner:

Si prega di vedere cosa c'è di sbagliato. Nel tester non c'è trading.

Questo modulo fa trading.

Nel vostro caso, sostituite i long

if(  High(1) > High(2) && Low(2)>Low(3) && High(2)<High(3) && Close(3)>Open(3) ){
     return(100);
   }
//--- условие не выполнено
   return(0);  
  }

con

Open(1)< Open(2)

per gli short - trovatelo voi stessi

File:
 
gdtt:

questo modulo commercia

per il vostro caso, sostituite i longs

con

per gli short, lo troverete da soli.

Sì, grazie! Ho passato la giornata, credo di aver fatto tutto come nell'articolo, qual è il mio errore?
 
beginner:
Sì, grazie! Ho passato la giornata, credo di aver fatto tutto come nell'articolo, qual è il mio errore?

Nella nuova procedura guidata, rispetto alla precedente, ci sono cambiamenti molto importanti,

virtual bool CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration);

virtual bool CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration);

Ho capito come segue: tra i vari oggetti utilizzati nell'Expert Advisor dovrebbe esserci un oggetto della classe CExpertSignal con l'attributo main, che può utilizzare queste funzioni. altri oggetti partecipano all'apertura di posizioni attraverso le funzioni

virtual int ShortCondition(); //verifica la condizione di apertura Sell

virtual int LongCondition(); //verifica la condizione per l'apertura di una posizione Buy

Per mettere i puntini sulle i, abbiamo bisogno di un articolo su come scrivere il proprio modulo di segnali nella nuova procedura guidata, quindi lo aspettiamo.

 
Sì, l'articolo è mancante e la documentazione di CExpertSignal deve essere aggiornata.