Autore dell'idea — John Smith, autore del codice MQL5 — barabashkakvn.
L'Expert Advisor è configurato per operare su USDJPY nel timeframe H1.
Questo EA utilizza due Medie Mobili, un MACD e un CCI. La funzione OnTradeTransaction è impiegata per ricevere il tempo di apertura delle posizioni.
Tutti i valori degli indicatori sono presi dalla barra con indice 1.
//--- Impostazione degli Indicatori CAMELHIGHP1=iMAGet(handle_iMA_PRICE_HIGH,1); CAMELLOWP1=iMAGet(handle_iMA_PRICE_LOW,1); // MACDSP1=iMACDGet(SIGNAL_LINE,1); MACDSP2=iMACDGet(SIGNAL_LINE,2); // MACDHP1=iMACDGet(MAIN_LINE,1); MACDHP2=iMACDGet(MAIN_LINE,2); // CCIP1=iCCIGet(1);
Viene effettuato un controllo per verificare se una posizione è già stata aperta sulla barra attuale, evitando così di controllare tutte le posizioni (dato che possono essere in esecuzione altri EA sullo stesso conto di trading).
Il tempo di apertura della posizione viene controllato nella funzione OnTradeTransaction. Se viene registrata la chiusura di una posizione, il tempo di apertura verrà resettato:
//+------------------------------------------------------------------+ //| Funzione TradeTransaction | //+------------------------------------------------------------------+ void OnTradeTransaction(const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result) { //--- ottieni il tipo di transazione come valore enumerato ENUM_TRADE_TRANSACTION_TYPE type=trans.type; //--- se la transazione è il risultato dell'aggiunta della transazione nella storia if(type==TRADE_TRANSACTION_DEAL_ADD) { long deal_entry =0; long deal_time =0; string deal_symbol =""; long deal_magic =0; if(HistoryDealSelect(trans.deal)) { deal_entry=HistoryDealGetInteger(trans.deal,DEAL_ENTRY); deal_time=HistoryDealGetInteger(trans.deal,DEAL_TIME); deal_symbol=HistoryDealGetString(trans.deal,DEAL_SYMBOL); deal_magic=HistoryDealGetInteger(trans.deal,DEAL_MAGIC); } else return; if(deal_symbol==m_symbol.Name() && deal_magic==m_magic) { if(deal_entry==DEAL_ENTRY_OUT) { m_last_close_time=(datetime)deal_time; } else if(deal_entry!=DEAL_ENTRY_OUT) { m_last_close_time=0; } } } }
Post correlati
- RRS Impulse: Il Tuo Esperto per MetaTrader 4
- 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
- Introduzione all'EA MACD per MetaTrader 5: Un Eccellente Strumento di Trading
- Utilità Market Watch Panel: il tuo alleato in MetaTrader 4