A ideia é a mesma, mas com um indicador de ziguezague e uma ordem aberta somente após uma lacuna como esta da imagem, teremos um EA mais interessante!
A ideia é a mesma, mas com um indicador de ziguezague e uma ordem aberta somente após um gap como este da imagem, teremos um EA mais interessante!
No ZigZag havia este código: Last ZZ50
Estratégia baseada no indicador ZigZag e em ordens pendentes.
O código nasceu no ramo Strategy based on the indicator "ZigZag" - "Last ZZ50".
Autor da ideia - Vitaly Muzichenko, implementação do código MQL5 - Vladimir Karputov.
O princípio geral da estratégia "Last ZZ50":

No indicador ZigZag, sempre consideramos os dois últimos raios: AB e BC. O raio AB é um raio que ainda não está fixo e pode mudar (o ponto A pode mudar sua posição).
As ordens pendentes são colocadas no meio dos raios AB e BC com um cálculo tal que:
- O acionamento de uma ordem pendente no raio AB é um caso de continuação da tendência demonstrada pelo raio BC;
- o acionamento da ordem pendente no raio BC é um caso de reversão da tendência, que é demonstrada pelo raio BC.
Como o raio AB é um raio que ainda não está fixo e pode mudar (o ponto A pode mudar sua posição), a ordem pendente será modificada o tempo todo para que seu preço esteja sempre no meio do raio AB.
O trailing de posições abertas funciona de acordo com a regra: aguarde até que a posição esteja em lucro (excluindo comissão e swap) por pelo menos (Trailing Stop + Trailing Step) pips e, em seguida, ative o trailing para essa posição.
Havia este código para o ZigZag: Last ZZ50
Estratégia baseada no indicador ZigZag e em ordens pendentes.
O código nasceu no ramo Strategy based on the "ZigZag" indicator - "Last ZZ50".
O autor da ideia é Vitaly Muzichenko, e o responsável pela implementação do código MQL5 é Vladimir Karputov.
O princípio geral da estratégia "Last ZZ50":
No indicador ZigZag, sempre consideramos os dois últimos raios: AB e BC. O raio AB é um raio que ainda não está fixo e pode mudar (o ponto A pode mudar sua posição).
As ordens pendentes são colocadas no meio dos raios AB e BC com um cálculo tal que:
- O acionamento de uma ordem pendente no raio AB é um caso de continuação da tendência mostrada pelo raio BC;
- o acionamento da ordem pendente no raio BC é o caso de reversão da tendência, que é demonstrada pelo raio BC.
Como o raio AB é um raio que ainda não está fixo e pode mudar (o ponto A pode mudar sua posição), a ordem pendente será modificada o tempo todo para que seu preço esteja sempre no meio do raio AB.
O trailing de posições abertas funciona de acordo com a regra: aguarde até que a posição esteja em lucro (excluindo comissão e swap) por pelo menos (Trailing Stop + Trailing Step) pips e, em seguida, ative o trailing para essa posição.
Se houver uma maneira de criar um EA, isso seria interessante! Acho que isso criaria um excelente EA!
O problema com essa estratégia "Last ZZ50" é que ela abre muitas ordens pendentes no meio do ziguezague do indicador, ***
Nunca é tarde demais para colocar um limite no número de posições abertas consecutivas.
Ele tem alguma função que o impeça de fechar a ordem no sinal oposto?
Talvez verdadeiro/falso para ativar e desativar o sinal oposto ou até mesmo me dizer o que posso extrair do código para que eu possa testá-lo sem fechar ordens no sinal oposto! Obrigado por sua cooperação com esse EA!
Ele tem alguma função que o impeça de fechar a ordem no sinal oposto?
Você só precisa comentar essas linhas:
if(InpStarHour<InpEndHour) // comércio em um dia { if(time_current<time_start || time_current>=time_end) { CloseAllPositions(); return; } } else if(InpStarHour>InpEndHour) // negociar com a transição no dia seguinte { if(struct_time_current.hour<InpStarHour && struct_time_current.hour>=InpEndHour) { CloseAllPositions(); return; } } else if(InpStarHour==InpEndHour) { // comércio o dia inteiro!!! }
Você só precisa comentar essas linhas:
Eu fiz isso, mas não funcionou, pois essa parte do código postado aparentemente tem a ver com a abertura e o fechamento do gráfico! Mas o que eu preciso é que ele não feche a posição quando o sinal fractal oposto aparecer, ou seja, eu quero fechar a posição somente no "stop loss" ou "take profit"
Tentei comentar essa parte do código, que se mostrou correta, mas não funciona
//--- if (last_lower!= EMPTY_VALUE && previous_lower!= EMPTY_VALUE ) if (previous_lower<last_lower) { ClosePositions( POSITION_TYPE_SELL ); if (CalculatePositions( POSITION_TYPE_BUY )== 0 ) { double sl=(InpTakeProfit== 0 )? 0.0 :m_symbol. Ask ()-ExtStopLoss; double tp=(InpStopLoss== 0 )? 0.0 :m_symbol. Ask ()+ExtTakeProfit; OpenBuy(sl,tp); } } if (last_upper!= EMPTY_VALUE && previous_upper!= EMPTY_VALUE ) if (previous_upper>last_upper) { ClosePositions( POSITION_TYPE_BUY ); if (CalculatePositions( POSITION_TYPE_SELL )== 0 ) { double sl=(InpTakeProfit== 0 )? 0.0 :m_symbol. Bid ()+ExtStopLoss; double tp=(InpStopLoss== 0 )? 0.0 :m_symbol. Bid ()-ExtTakeProfit; OpenSell(sl,tp); } } //--- Trailing(); }
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
EA Fractals at Close prices:
Um Expert Advisor baseado no indicador "Fractals at Close prices".
Autor: Vladimir Karputov