Gostaria de saber como fazer um contador para meu EA ...

 

Bom dia preciso de ajuda para criar um contador de negociações para meu EA ...

 

Obrigado. 

 
denigol09:

Bom dia preciso de ajuda para criar um contador de negociações para meu EA ...

 

Obrigado. 

Utilizei de exemplo o EA MACD  do MT4, após checar se a ordem foi enviada, ele acrescenta + 1 na variável CountBuy que deve ser inicializada antes da função onTick. E depois utilizar a função Comment, para mostrar a variavel! espero te ajudado, como disse sou iniciante e estou aprendendo também.. abraços.

if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious && 
         MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaPrevious)
        {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
               Print("BUY order opened : ",OrderOpenPrice());
               int CountBuy++; //Essa variável acrescentaria 1 cada vez que uma ordem for emitida
              }
         else
            Print("Error opening BUY order : ",GetLastError());
         return;
        }

Comment("Oderns de compra: ", CountBuy);
 
camilo.bock:

Utilizei de exemplo o EA MACD  do MT4, após checar se a ordem foi enviada, ele acrescenta + 1 na variável CountBuy que deve ser inicializada antes da função onTick. E depois utilizar a função Comment, para mostrar a variavel! espero te ajudado, como disse sou iniciante e estou aprendendo também.. abraços.

Olá camilo.bock e denigol09,

Infelizmente essa abordagem não funciona. Imagine que você, por um motivo qualquer, precisa "reiniciar" seu EA, como por exemplo, uma simples mudança de tempo gráfico... Isso basta para que toda a sua contagem seja resetada para zero.

O mais adequado seria utilizar o histórico de trades e deals para essa contagem.

Para tanto, por favor dê uma olhada nas funções relacionadas a histórico:

1) HistoryOrderSelect (e todas as funções correlatas)

2) HistoryDealSelect (e todas as funções correlatas)

Abraços,
Malacarne

 
Rodrigo Malacarne:

Olá camilo.bock e denigol09,

Infelizmente essa abordagem não funciona. Imagine que você, por um motivo qualquer, precisa "reiniciar" seu EA, como por exemplo, uma simples mudança de tempo gráfico... Isso basta para que toda a sua contagem seja resetada para zero.

O mais adequado seria utilizar o histórico de trades e deals para essa contagem.

Para tanto, por favor dê uma olhada nas funções relacionadas a histórico:

1) HistoryOrderSelect (e todas as funções correlatas)

2) HistoryDealSelect (e todas as funções correlatas)

Abraços,
Malacarne

Obrigado Rodrigo. Essa era minha duvida, procurei no google e vim parar aqui! (:
Razão: