Autore dell'idea: vitaly
Autore del codice MQL5: barabashkakvn
La strategia di trading è semplice. Si apre una posizione di acquisto o vendita, protetta da un ordine di stop in sospeso a una distanza di Delta 1. Successivamente, viene creato un grid composto da ordini pendenti Limit o Stop a una distanza di Delta 2 l'uno dall'altro. Il numero di ordini pendenti in ciascuna direzione è impostato in Max Lines. Gli ordini pendenti (Buy Limit, Sell Limit, Buy Stop e Sell Stop) vengono impostati tramite una funzione unica PendingOrder, alla quale vengono passati un tipo di ordine (order_type), volume (volume), stop loss (sl) e take profit (tp).
//+------------------------------------------------------------------+ //| Ordine pendente | //+------------------------------------------------------------------+ void PendingOrder(ENUM_ORDER_TYPE order_type,double volume,double price,double sl,double tp) { sl=m_symbol.NormalizePrice(sl); tp=m_symbol.NormalizePrice(tp); if(m_trade.OrderOpen(m_symbol.Name(),order_type,volume,0.0, m_symbol.NormalizePrice(price),m_symbol.NormalizePrice(sl),m_symbol.NormalizePrice(tp))) { if(m_trade.ResultOrder()==0) { Print("#1 ",EnumToString(order_type)," -> false. Risultato Retcode: ",m_trade.ResultRetcode(), ", descrizione del risultato: ",m_trade.ResultRetcodeDescription()); PrintResultTrade(m_trade,m_symbol); } else { Print("#2 ",EnumToString(order_type)," -> true. Risultato Retcode: ",m_trade.ResultRetcode(), ", descrizione del risultato: ",m_trade.ResultRetcodeDescription()); PrintResultTrade(m_trade,m_symbol); } } else { Print("#3 ",EnumToString(order_type)," -> false. Risultato Retcode: ",m_trade.ResultRetcode(), ", descrizione del risultato: ",m_trade.ResultRetcodeDescription()); PrintResultTrade(m_trade,m_symbol); } //--- }
Quando si raggiunge il target di profitto Profit Close, chiudi tutte le posizioni e rimuovi tutti gli ordini pendenti. Puoi anche chiudere tutte le posizioni e cancellare gli ordini pendenti se perdi più di Loss Close (se imposti Loss Close a 0.0, il parametro è disabilitato).
Il funzionamento dell'EA (apertura delle posizioni e impostazione degli ordini pendenti protettivi) avviene all'interno dell'intervallo di tempo di lavoro da Start hour a End hour (Start hour può essere inferiore a End hour o superarlo).
Idea principale
Analizzando il valore ADX sul timeframe Work TimeFrame. Se l'ADX è inferiore a 40, questo è considerato flat, e vengono posizionati ordini pendenti Limit. Altrimenti, si utilizzano ordini pendenti Stop;
Se DI+ è maggiore di DI-, acquista, altrimenti, vendi.
I migliori risultati di ottimizzazione dei due parametri (Current bar ADX da 0 a 2, passo 1 e Work TimeFrame da M1 a H1)
EURUSD, Current bar ADX 0, Work TimeFrame H1

USDJPY, Current bar ADX 2, Work TimeFrame M1

Nel caso di EURUSD, Current bar ADX 0, Work TimeFrame H1, ma il parametro Loss Close è impostato a "0.0"

e USDJPY, Current bar ADX 2, Work TimeFrame M1, ma il parametro Loss Close è impostato a "0.0"

Post correlati
- Rilevare il Venerdì della Prima Settimana del Mese: La Guida per il Giorno NFP
- EA Efficiente: Come Aggiungere la Chiusura del Venerdì per Migliorare le Performance
- RRS Impulse: Il Tuo Esperto per MetaTrader 4
- Utilità Market Watch Panel: il tuo alleato in MetaTrader 4
- X-liquidex: Il Miglior EA per Trading di Volatilità e Breakout su MetaTrader 4