Especialistas: EA Fractals at Close prices

 

EA Fractals at Close prices:

Um Expert Advisor baseado no indicador "Fractals at Close prices".


Autor: Vladimir Karputov

 

****

 

Isso é interessante! A ideia é boa, mas o fractal não ajuda! Se você trocar o indicador fractal por um indicador em ziguezague, o resultado pode ser muito melhor! Deixo aqui meu conselho!

 

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!

Arquivos anexados:
zigzag.png  19 kb
 
kwlin_089:

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":

Estratégia baseada no indicador "ZigZag" - "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.

 
Vladimir Karputov :

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.

O problema com essa estratégia "Last ZZ50" é que ela abre muitas ordens pendentes no meio do ziguezague do indicador, e isso causa muita confusão, levando a muitas perdas e rebaixamentos. Da forma como você construiu esse indicador "Fractals at Close Prices EA", é mais interessante adaptar o indicador de ziguezague.

Se houver uma maneira de criar um EA, isso seria interessante! Acho que isso criaria um excelente EA!
 
kwlin_089:
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!

 
kwlin_089:

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!!!
     }
 
Vladimir Karputov :

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();
  }