Especialistas: Martin for small deposits

 

Martin for small deposits:

Expert Advisor baseado em Martingale especialmente projetado para pequenos depósitos.


Autor: Vladimir Karputov

 

Olá, Vladimir!

Testei um pouco esse Expert Advisor, executando-o na demonstração por um dia e no testador. Tanto no primeiro quanto no segundo tipo de teste, houve dúvidas sobre a exatidão do código. Por exemplo, quando o Expert Advisor estava na demonstração, em algum período ele abria novas posições depois de fechar todas as posições não com o lote mínimo, mas com o próximo passo. Isso certamente aumentou consideravelmente o saldo, mas acho que a lógica falhou. E quando eu estava testando com a visualização, não era incomum que, depois de abrir 2-3 posições e obter o lucro total nelas mais do que o definido na variável InpMinProfit, o Expert Advisor não as fechasse, mas esperasse que todas elas fossem fechadas no take profit.

Infelizmente, não sou bom em programação OOP e C++, portanto, mesmo vendo o código-fonte, não consigo entender por que isso acontece.

 

Não sei se é possível que esse EA saia com X dólares acima da "marca d'água alta" do patrimônio líquido... em vez do genérico "fechar tudo" definido como lucro mínimo. Sempre posso calcular isso manualmente com o atual EA (ótimo EA)... mas introduzir o "pensamento de marca d'água alta" seria revolucionário! Também não seria fantástico automatizar as etapas com o ATR em vez de defini-las manual e estaticamente? Isso permitiria que esse EA se tornasse "autoajustável" durante os períodos de baixa.

mb

 
Boa estratégia. Qual sinal ele usa para abrir compras e abrir vendas ?
 
sergiomt :
Boa estratégia. Qual sinal ele usa para abrir compras e abrir vendas ?

Bloco de decisão:

   if(count_buys==0 || count_sells==0) // check the opening of the position "sell"
     {
      if(count_buys==0 && count_sells>0)
        {
         if(m_symbol.Bid()-price_highest_sell>ExtStep)
            need_to_open_a_sell=true;
        }
      else if(count_sells==0 && count_buys>0)
        {
         if(price_lowest_buy-m_symbol.Ask()>ExtStep)
            need_to_open_a_buy=true;
        }
     }

"need_to_open_a_sell" e "need_to_open_a_sell" - sinais de negociação

 
Não fecha posições abertas de acordo com o valor do parâmetro - Min profit for close all.
 
qazzaq12345:
Não fecha as posições abertas de acordo com o valor do parâmetro - Min profit for close all.

Por favor, mostre as configurações do Expert Advisor e o arquivo de registro. Quais posições não foram fechadas?

 
Onde está o StopLoss?
 
forexprofitid :
Onde está o StopLoss?

A Martingale não tem Stop Loss. Para a Martingale, há apenas um Stop Loss natural - esse é o dreno do depósito.

 

Olá, obrigado pelo EA

seria possível separar o parâmetro de entrada para apenas vender ou apenas comprar? ATT

 

Olá Vladimir, obrigado por seu código. É interessante.

Sou novo na codificação do MT5.

Como posso entender a função do void CloseAllPositions ()?

Parece que a função não fecha todas as posições, mas apenas a posição que atingiu os pips de lucro.

Espero que você não se importe em me explicar passo a passo. E como devo alterá-la para que feche todas as posições quando a maior negociação aberta atingir os pips de lucro?

Obrigado.

Void CloseAllPositions()
  {
   for(int i=PositionsTotal()-1;i>=0;i--) // retorna o número de posições atuais
      if(m_position.SelectByIndex(i))     // seleciona a posição por índice para acesso posterior às suas propriedades
         if(m_position.Symbol()==m_symbol.Name() && m_position.Magic()==m_magic)
            m_trade.PositionClose(m_position.Ticket()); // fechar uma posição com o símbolo especificado
   }