Centavos

 

Colegas, este código extraído da biblioteca emite um som quando um candle excede um determinado tamanho em pips, o que eu teria que incluir para que o sinal sonoro fosse emitido considerando ações da B3, ou seja, centavos ?

Agradeço se alguém souber e puder ajudar por completo, ou seja, dar a solução (se der só uma dica, ou mandar ler artigos eu não saberei concluir)


#include <Trade\SymbolInfo.mqh>

enum StartPoint {OpenClose,HighLow};

input ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT;
input int             BarPoint  = 200;
input StartPoint      SP        = HighLow;
input string          WavFile   = "alert.wav";
input bool            ShowAlert = false;

MqlRates rates_array[1];
CSymbolInfo symbolInfo;
//+------------------------------------------------------------------+
//| Detects begin of new bar                                         |
//+------------------------------------------------------------------+
bool NewBar()
  {
   static datetime lastbar=0;
   datetime curbar=rates_array[0].time;
   if(lastbar!=curbar)
     {
      lastbar=curbar;
      return (true);
     }
   return(false);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   double diff=0;
   static bool trigger=true; // for one-shot play sound in bar duration
   symbolInfo.RefreshRates();
   if(!CopyRates(_Symbol,TimeFrame,0,1,rates_array))
     {
      Print("ERROR: Can't copy the new bar data!");
      return;
     }
   if(NewBar())
      trigger=true;

   if(SP==OpenClose)
      diff=MathAbs(symbolInfo.Ask()-rates_array[0].open);
   else
      diff=MathAbs(rates_array[0].high-rates_array[0].low);
   if(trigger && diff>=BarPoint*Point())
     {
      PlaySound(WavFile);
      trigger=false;
      if(ShowAlert)
         Alert("Signal!");
     }
  }
//+------------------------------------------------------------------+
 

Se você não sabe programar contrate alguém...

Jamais pense que programadores vivem apenas de Fotossíntese..

 
Flávio, você é um cara detestável, basta ver suas postagens. Nunca mais escreva nada nas minhas postagens. Vê se aprende isso.
 

Quem estiver testando os EA´s da biblioteca e quiser testar em ações (centavos) e o EA for composto de blocos-padrão veja esta solução no anexo que eu testei aqui e deu certo.

Blocos-padrão = trechos de códigos comuns a vários EA´s. 

Fiz apenas 2 alterações.

Arquivos anexados:
EAcentavos.jpg  246 kb
 

Ainda não estava legal, colocava por exemplo, TP de 0.50 (50 centavos) e ele entendia 5 centavos

Aí eu fiz desta forma e aí sim passou a funcionar:

//--- tuning for 3 or 5 digits

   int digits_adjust=1;

   if(m_symbol.Digits()==3 || m_symbol.Digits()==5)

      digits_adjust=10;

   if(m_symbol.Digits()==2)

      digits_adjust=100;   

   m_adjusted_point=m_symbol.Point()*digits_adjust;
Razão: