Autor da ideia — John Smith, autor do código MQL5 — barabashkakvn.
Este EA (Expert Advisor) está configurado para operar o par USDJPY no timeframe H1.
O sistema utiliza duas Médias Móveis, um MACD e um CCI. Para receber o tempo de abertura das posições, é utilizado o evento OnTradeTransaction.
Todos os valores dos indicadores são obtidos a partir da barra com índice 1.
//--- Configuração dos Indicadores 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);
O controle adequado é realizado para verificar se uma posição já foi aberta na barra atual, evitando assim a necessidade de checar todas as posições (pois outros EAs podem estar rodando na mesma conta de trading).
O tempo de abertura das posições é controlado na função OnTradeTransaction. Caso a posição tenha sido fechada, o tempo de abertura será redefinido:
//+------------------------------------------------------------------+ //| Função TradeTransaction | //+------------------------------------------------------------------+ void OnTradeTransaction(const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result) { //--- obter o tipo de transação como valor de enumeração ENUM_TRADE_TRANSACTION_TYPE type=trans.type; //--- se a transação for resultado da adição da transação na história 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; } } } }
Publicações relacionadas
- MACD Sample: Um Guia Prático para o Expert Advisor no MetaTrader 5
- Como Criar Sinais de Negociação com MQL5 Wizard Usando Estrelas da Manhã e da Noite + Estocástico
- Trader Automático: RSI e MFI com Otimização Automática para MetaTrader 4
- MQL5 Wizard: Sinais de Negociação com Padrões Candlestick e RSI no MetaTrader 5
- Como Criar um Expert Advisor Usando MQL5 Wizard para Sinais de Negociação com Padrões de Candlestick 'Hammer' e 'Hanging Man'