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
Si consiglia di evitare questo design
poiché l'elaborazione del tick precedente può richiedere un tempo sufficiente a perdere l'arrivo del primo tick della nuova barra.
In questo caso, è possibile perdere l'apertura.
È meglio legarsi all'ora di apertura della barra, ma per questo è necessario salvare l'ora precedente della barra zero, ad esempio, per confrontarla con l'ora attuale della barra zero.
Se è uguale, non c'è una nuova barra.
Se è diverso, viene aperta almeno una nuova barra (successiva), dopo di che si inizializza l'ora memorizzata della barra zero con l'ora attuale della barra zero.
Questa soluzione è più affidabile.
Affrontate questo aspetto in un prossimo articolo:
Per quanto ne so, MT5 supporta solo *1* (uno) ordine s/l e t/p lato server *per strumento* (non per trade) e nessun ordine OCO (gli ordini OCO possono essere utilizzati per simulare ordini s/l e t/p per trade, ma anche in questo caso c'è una race condition). A meno che non venga affrontato quanto sopra, non mi impegnerei per più di 100 dollari a fare trading tramite MT5 (EA semplicistici a singolo ordine su singolo timeframe e a singola direzione). E non sono nemmeno sicuro dei 100 dollari.
Si consiglia di evitare questo design
poiché l'elaborazione del tick precedente può richiedere un tempo sufficiente a perdere l'arrivo del primo tick della nuova barra.
In questo caso, è possibile perdere l'apertura.
È meglio legarsi all'ora di apertura della barra, ma per questo è necessario salvare l'ora precedente della barra zero, ad esempio, per confrontarla con l'ora attuale della barra zero.
Se è uguale, non c'è una nuova barra.
Se è diverso, viene aperta almeno una nuova barra (successiva), dopo di che si inizializza l'ora memorizzata della barra zero con l'ora attuale della barra zero.
Questa soluzione è più affidabile.
Io l'ho fatto in questo modo:
Compila ma il debugger fallisce.
il caricamento di C:\Program Files\MetaTrader 5\MQL5\Experts\Examples\eMyEA.ex5 non è riuscito.
Pubblicato il nuovo articolo Il prototipo di robot commerciale:
Autore: Алексей Сергеев
Grazie per l'ottimo articolo! Sono un principiante ma ho una domanda sul codice.
Nella funzione void CExpertAdvisor::TrailingPosition(long dir,int TS), c'è una riga:
sl=NormalSL(dir,apr,apr,TS,StopLvl); // calcola lo Stop Loss
Dobbiamo usare apr sia per il secondo che per il terzo argomento quando chiamiamo NormalSL? Pensavo che dovesse essere:
sl=NormalSL(dir,op,apr,TS,StopLvl);
poiché il secondo argomento dovrebbe essere il prezzo bid/ask per la direzione "specificata" (cioè la variabile op) piuttosto che la direzione "inversa" (cioè la variabile apr).
Grazie!
Nella funzione void CExpertAdvisor::TrailingPosition(long dir,int TS), c'è una riga:sl=NormalSL(dir,apr,apr,TS,StopLvl); // calcola lo Stop Loss
Dobbiamo usare apr sia per il secondo che per il terzo argomento quando chiamiamo NormalSL? Pensavo che dovesse essere:
sl=NormalSL(dir,op,apr,TS,StopLvl);
no.
il secondo e il terzo argomento devono essere apr.
perché il calcolo del tral deriva dal prezzo a cui verrà chiusa la posizione. La funzione Bid per l'acquisto e Ask per la vendita è corretta.
poiché il secondo argomento deve essere il prezzo bid/ask per la direzione "specificata" (cioè la variabile op) e non la direzione "inversa" (cioè la variabile apr).
no.
il secondo e il terzo argomento devono essere apr.
perché il calcolo del tral deriva dal prezzo di chiusura della posizione. La funzione Bid per l'acquisto e Ask per la vendita è corretta.
deve essere calcolato dalla direzione "inversa". In questo caso, apr.Grazie per la rapida risposta! Pensavo di essermi sbagliato.
Posso anche chiedere nella funzione
perché abbiamo un "10" tra "dist" e "m_smbinf.TickValue()" nel valore di ritorno? Immagino che "dist" sia lo stop loss (in termini di pip) e "m_smbinf.TickValue()" sia il valore in dollari USA per pip e lotto per la coppia di valute. Non capisco quindi perché moltiplicare un altro "10" tra i due.
Grazie!
Articolo molto utile. Grazie mille!