Autor da Ideia: vitaly
Autor do Código MQL5: barabashkakvn
A estratégia de trading do Proffessor v3 é bem simples. Uma posição de COMPRA ou VENDA é aberta e protegida por uma ordem pendente de Stop a uma distância de Delta 1. Em seguida, é criada uma grade de ordens pendentes, sejam Limit ou Stop, a uma distância de Delta 2 umas das outras. O número de ordens pendentes de cada direção é definido em Max Lines. As ordens pendentes (Buy Limit, Sell Limit, Buy Stop e Sell Stop) são configuradas através de uma única função PendenteOrder, onde são passados o tipo de ordem (order_type), volume (volume), stop loss (sl) e take profit (tp).
//+------------------------------------------------------------------+ //| Ordem 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. Retcode do Resultado: ",m_trade.ResultRetcode(), ", descrição do resultado: ",m_trade.ResultRetcodeDescription()); PrintResultTrade(m_trade,m_symbol); } else { Print("#2 ",EnumToString(order_type)," -> true. Retcode do Resultado: ",m_trade.ResultRetcode(), ", descrição do resultado: ",m_trade.ResultRetcodeDescription()); PrintResultTrade(m_trade,m_symbol); } } else { Print("#3 ",EnumToString(order_type)," -> false. Retcode do Resultado: ",m_trade.ResultRetcode(), ", descrição do resultado: ",m_trade.ResultRetcodeDescription()); PrintResultTrade(m_trade,m_symbol); } //--- }
Ao atingir o Alvo de Lucro, feche todas as posições e remova todas as ordens pendentes. Você também pode fechar todas as posições e deletar ordens pendentes se perder mais do que Fechamento de Perda (caso defina Fechamento de Perda como 0.0, esse parâmetro será desativado).
O funcionamento do EA (abertura de posições e configuração de ordens pendentes de proteção) ocorre dentro do intervalo de tempo de trabalho, entre a Hora de Início e a Hora de Término (Hora de Início pode ser menor que a Hora de Término ou ultrapassá-la).
Ideia Principal
A análise do valor do ADX é feita no timeframe Work TimeFrame. Se o ADX estiver abaixo de 40, isso é considerado um mercado lateral, e as ordens pendentes Limit são colocadas. Caso contrário, as ordens pendentes Stop são utilizadas;
Se DI+ for maior que DI-, compra; caso contrário, venda.
Os melhores resultados de otimização para os dois parâmetros (ADX da barra atual de 0 a 2, passo 1 e Work TimeFrame de M1 a H1):
EURUSD, ADX da barra atual 0, Work TimeFrame H1

USDJPY, ADX da barra atual 2, Work TimeFrame M1

No caso do EURUSD, ADX da barra atual 0, Work TimeFrame H1, mas o parâmetro Fechamento de Perda está definido como "0.0"

E USDJPY, ADX da barra atual 2, Work TimeFrame M1, mas o parâmetro Fechamento de Perda está definido como "0.0"

Publicações relacionadas
- MACD Sample: Um Guia Prático para o Expert Advisor no MetaTrader 5
- Baixe Todo o Histórico de Ticks de um Símbolo no MetaTrader 5
- MasterMind 2: O Robô de Trading para MetaTrader 4 que Você Precisa Conhecer
- Trader Automático: RSI e MFI com Otimização Automática para MetaTrader 4
- CoensioTrader1V06: Sistema de Trading Automático para MetaTrader 5