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 formativirtualint LongCondition();
virtualint ShortCondition();
Ho capito bene? Quando scrivo il mio modulo, devo implementare anche queste funzioni? Quando apparirà la descrizione della classe CExpert?
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.
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?
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.
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 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ì, è 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. 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
per gli short - trovatelo voi stessi
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?
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.