Tornando o aumento de lote mais devagar

Para adicionar comentários, por favor Faça o login ou registrar
sergiomt
332
sergiomt  

Prezados,

Estou estudando um EA cujo trecho em questão segue abaixo. A compra ou a venda ocorrem conforme um sinal específico (signal=1 compra, = -1 vende). E toda vez que compra ou vende soma 1 ao lote (InpLots+=1.0;). O que eu gostaria de fazer é somar 1 ao lote a cada dois ou mais ciclos, ou seja, só somar + 1 na segunda, terceira, quarta, ou N vez que comprar (ou vender). Pelo que eu entendi o count buys só serve para ver se tem mais de uma ordem de compra aberta ao mesmo tempo (count_sells para ordens de venda).


Alguém sabe ? ... grato



if(count_buys==0 && signal==1)

     {
      ClosePositions(POSITION_TYPE_SELL);      
      if(!RefreshRates())
         return;
      double sl=(InpStopLoss==0)?0.0:m_symbol.Ask()-ExtStopLoss;
      if(sl>=m_symbol.Bid()) // incident: the position isn't opened yet, and has to be already closed
         return;
      double tp=(InpTakeProfit==0)?0.0:m_symbol.Ask()+ExtTakeProfit;      
      OpenBuy(sl,tp);
      InpLots+=1.0;
      return;
     }

   if(count_sells==0 && signal==-1)
     {
      ClosePositions(POSITION_TYPE_BUY);      
      if(!RefreshRates())
         return;
      double sl=(InpStopLoss==0)?0.0:m_symbol.Bid()+ExtStopLoss;
      double tp=(InpTakeProfit==0)?0.0:m_symbol.Bid()-ExtTakeProfit;
      OpenSell(sl,tp);
      InpLots+=1.0;
      return;

     }     


...



sergiomt
332
sergiomt  

Pensei que um jeito menos difícil fosse ter uma fórmula que dividisse o lote, digamos, talvez por 4. Por exemplo:

InpLots+=0.25  (ah, esqueci de dizer que mudei o InpLots deixando-o apenas como double e não input double, desta forma é possível modificar seu valor)

Assim somente na quarta compra ou venda o lote seria 1 (0.25 x 4) e aí sim modificaria o lote negociado

Porém eu coloquei InpLots+=0.25 e não mudou nada (caso do mini índice ou mini dólar cujo lote mínimo é 1)

Tivesse um meio de ir somando, daria certo

Tipo, faz uma compra, armazena 0.25, faz outra, soma 0.25 + 0.25 = 0.50. Faz mais duas soma 0.50 a 0.50 e aí sim resultado = 1, soma 1 ao lote real na próxima ordem


Será que é possível ? como fazer ?


...

Para adicionar comentários, por favor Faça o login ou registrar