Bibliotecas: CPrice

 

CPrice:

A instância da classe retorna dados como Bid, Ask, High, Low, preços de abertura/fechamento da vela atual ou qualquer preço especificado nos parâmetros, bem como a abertura das velas.

Autor: Dmitry Melnichenko

 

Dê uma olhada nesta opção

#define  DEFINE_TIMESERIE(NAME,FUNC,T)                                                                         \
  class CLASS##NAME                                                                                           \
  {                                                                                                           \
  public:                                                                                                     \
    static T Get(const string Symb,const int TimeFrame,const int iShift)                                      \
    {                                                                                                         \
      T tValue[];                                                                                             \
                                                                                                              \
      return((Copy##FUNC((Symb == NULL) ? _Symbol : Symb, _Period, iShift, 1, tValue) > 0) ? tValue[0] : -1); \
    }                                                                                                         \
                                                                                                              \
    T operator[](const int iPos) const                                                                        \
    {                                                                                                         \
      return(CLASS##NAME::Get(_Symbol, _Period, iPos));                                                       \
    }                                                                                                         \
  };                                                                                                          \
                                                                                                              \
  CLASS##NAME  NAME;                                                                                           \
                                                                                                              \
  T i##NAME(const string Symb,const int TimeFrame,const int iShift)                                           \
  {                                                                                                           \
    return(CLASS##NAME::Get(Symb,  TimeFrame, iShift));                                                        \
  }

DEFINE_TIMESERIE(Volume,TickVolume,long)
DEFINE_TIMESERIE(Time,Time,datetime)
DEFINE_TIMESERIE(Open,Open,double)
DEFINE_TIMESERIE(High,High,double)
DEFINE_TIMESERIE(Low,Low,double)
DEFINE_TIMESERIE(Close,Close,double)

Você pode, como no MT4, chamar Open[bar], High[bar], Time[bar], Volume[bar], etc. E também iHigh(...), iClose(...) e outros.

 
fxsaber:

Dê uma olhada nesta opção

Você pode, como no MT4, chamar Open[bar], High[bar], Time[bar], Volume[bar], etc. Assim como iHigh(...), iClose(...) e outros.

Diferentemente do MT4, em que o acesso a Open[], High[], Low[], Close[] tem garantia de retorno de valores, no MT5 funções como CopyClose() podem retornar -1, ou seja, o valor retornado deve ser verificado. Ou seja, não há uma maneira direta de traduzir o código do MT4 para o MT5.
 
Dmitry Fedoseev:
Diferentemente do MT4, em que o acesso a Open[], High[], Low[], Close[] tem a garantia de retornar valores, no MT5 funções como CopyClose() podem retornar -1, ou seja, o valor retornado deve ser verificado. Ou seja, não há uma maneira direta de traduzir o código do MT4 para o MT5.
Como posso reproduzir uma situação em que o MT5 não será capaz de repetir o comportamento do MT4?