Discussione sull’articolo "Creare Expert Advisor multipli sulla base dei modelli di trading" - pagina 5
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
MetaTrader 5 Client Terminal build 381
...
MQL5: La libreria standard è stata aggiornata: i metodi Type() delle classi CDealInfo, CHistoryOrderInfo, COrderInfo e CPositionInfo sono stati rinominati rispettivamente in DealType(), OrderType() e PositionType().
...
Poiché il modello si basa sulle classi commerciali di base, qualsiasi modifica, anche minima, delle loro interfacce è critica. In questo caso, l'errore può essere facilmente risolto semplicemente cambiando il metodo Type() con il corrispondente OrderType() nel file TableOrders.mqh.
Nel prossimo futuro, i codici allegati all'articolo saranno aggiornati per funzionare correttamente sulle ultime versioni del compilatore e del terminale.
chr1sch4n: Non c'è nessun errore... il codice che hai riscritto è identico.
Nel linguaggio C, le dichiarazioni di caso cadono, ed è per questo che si deve inserire l'istruzione break, quindi il Buy dovrebbe cadere nella dichiarazione successiva ed eseguire comunque l'ordine.
riferimento: http: //en.wikipedia.org/wiki/Switch_statement ; sezione C, C++, Java, PHP, ActionScript, JavaScript; "questo è un classico esempio di omissione della linea di interruzione per consentire l'attraversamento".
saluti
Una richiesta: i commenti nei file in inglese possono essere tradotti?
Non riesco a ottenere l'impressionante backtest mostrato nell'articolo. quali sono le impostazioni che devo fare?
"Vale la pena di descrivere separatamente la variabilem_timing. Nel corso del lavoro dell'Expert Advisor è necessario richiamare determinati eventi a determinati intervalli di tempo.La funzioneOnTimer()non è adatta a questo scopo, perché modelli diversi possono avere intervalli di tempo diversi.
Ad esempio, alcuni eventi devono essere richiamati ogni nuova barra. Per un modello di trading su un grafico orario, tali eventi dovrebbero essere chiamati ogni ora, per un modello di trading su un grafico giornaliero - ogni nuova barra giornaliera. È chiaro che questi modelli hanno impostazioni temporali diverse e ciascuno deve essere memorizzato nel proprio modello di conseguenza. La struttura t_period inclusa nella classe CModel consente di memorizzare queste impostazioni separatamente, ciascuna nel proprio modello.
Ecco come si presenta questa struttura:
struct t_period { большая структура };Come si può notare, include la solita enumerazione di timeframe. Per sapere se si è verificata una nuova barra, occorre confrontare il tempo dell'ultima barra con quello registrato nella struttura t_period. Se l'orario non corrisponde, allora si è verificata una nuova barra, l'orario della struttura deve essere aggiornato all'orario della barra corrente e restituire un risultato positivo (true). Se l'ora dell'ultima barra e la struttura coincidono, significa che non si è ancora verificata una nuova barra ed è sufficiente restituire un risultato negativo (falso).
Ecco una funzione che funziona secondo l'algoritmo descritto:
"
Naturalmente sono solo un programmatore alle prime armi, ma forse è possibile determinare l'inizio di una nuova barra (rendendo la variabile m_timing solo datetime):
Se mi sbaglio nelle conclusioni, mi scuso in anticipo e vi chiedo di correggermi. Se non sbaglio - ringrazio questo sito e in particolare tutti coloro che ci lavorano - articoli, documentazione scrive - ho iniziato a capire qualcosa.
P.S.:A proposito, grazie per l'ottimo articolo.
Ciao,
come posso migliorare il modello o la funzione Processing() per supportare il pair trading (un altro simbolo)? Ora tutto funziona con l'indicatore e il trading successivo solo sullo stesso simbolo. Come posso aggiungere Symbol1 e Symbol2 per poter acquistare Symbol1 e vendere Symbol2 contemporaneamente?
Grazie per l'aiuto
P.S.: Oppure comprare/vendere il Simbolo1 in base al comportamento dell'indicatore sul Simbolo2...
Ciao,
come posso migliorare il modello o la funzione Processing() per supportare il pair trading (un altro simbolo)? Ora tutto funziona con l'indicatore e il trading successivo solo sullo stesso simbolo. Come posso aggiungere Symbol1 e Symbol2 per poter acquistare Symbol1 e vendere Symbol2 contemporaneamente?
Grazie per l'aiuto
P.S.: Oppure comprare/vendere il Simbolo1 in base al comportamento dell'indicatore sul Simbolo2...
Riparato. Grazie.
Ciao,
Grazie per questo ottimo articolo...
Nella funzione ReplacedDelayedOrders c'è la riga di codice: for(int b=0;i<history_orders;b++)
Penso che questo causerà un ciclo infinito, o mi sbaglio?
Penso che la riga di codice debba essere: for(int b=0;b<ordini_storia;b++)
Ciao, T.