程序库: CPrice

 

CPrice:

这个类的实例返回买家报价,卖家报价,最高价,最低价以及当前烛形的开盘价,或者任何其他在参数中指定的数值,以及烛形开启的时间。

作者: Dmitry Melnichenko

 

看看这个选项

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

与 MT4 一样,您可以调用 Open[bar]、High[bar]、Time[bar]、Volume[bar] 等。还可以调用 iHigh(...)、iClose(...) 等。

 
fxsaber:

看看这个选项

与 MT4 一样,您可以调用 Open[bar]、High[bar]、Time[bar]、Volume[bar] 等。以及 iHigh(...)、iClose(...) 等。

与 MT4 不同,在 MT4 中,访问 Open[]、High[]、Low[]、Close[] 保证返回值,而在 MT5 中,CopyClose() 等函数可能返回-1,即必须检查返回值。也就是说,无法直接将代码从 MT4 转换到 MT5。
 
Dmitry Fedoseev:
与 MT4 不同,在 MT4 中,访问 Open[]、High[]、Low[]、Close[] 保证返回值,而在 MT5 中,CopyClose() 等函数可能返回-1,即必须检查返回值。也就是说,无法将代码从 MT4 直接转换到 MT5。
如何重现 MT5 无法重复 MT4 行为的情况?