Bibliotecas: CPrice

 

CPrice:

El ejemplar de clase retorna valores tales como Bid, Ask, High, Low, los precios de apertura y cierre de la vela actual o de cualquiera indicada en los parámetros, así como la hora de apertura de la vela.

Autor: Dmitry Melnichenko

 

Eche un vistazo a esta opción

#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)

Puede, como en MT4, llamar a Open[bar], High[bar], Time[bar], Volume[bar], etc. Y también iHigh(...), iClose(...) y otros.

 
fxsaber:

Eche un vistazo a esta opción

Puede, como en MT4, llamar a Open[bar], High[bar], Time[bar], Volume[bar], etc. Así como iHigh(...), iClose(...) y otros.

A diferencia de MT4, donde se garantiza que los accesos a Open[], High[], Low[], Close[] devuelven valores, en MT5 funciones como CopyClose() pueden devolver -1, es decir, hay que comprobar el valor devuelto. Es decir, no hay forma directa de traducir el código de MT4 a MT5.
 
Dmitry Fedoseev:
A diferencia de MT4, donde el acceso a Open[], High[], Low[], Close[] tiene garantizado el retorno de valores, en MT5 funciones como CopyClose() pueden devolver -1, es decir, el valor devuelto debe ser comprobado. Es decir, no hay forma directa de traducir el código de MT4 a MT5.
¿Cómo puedo reproducir una situación en la que MT5 no sea capaz de repetir el comportamiento de MT4?