程序化交易 - 轻松交易从此开始!
您的位置:主页 > 程序化交易 >

【MT5】OnCaculate的用法

发布时间:2017-08-08 10:03

OnCaculate事件因Tick的推送过来而触发,他有两种方式进行调用:

  1.                 int OnCalculate(const int rates_total,//指标数组的全部元素个数
  2.                 const int prev_calculated,//前一次计算完的指标数组的个数
  3.                 const int begin,//指标数组最早的其实元素序号
  4.                 const double &price[])//本指标计算需要用到的K线的单个数组

 

这里比较难理解的是这个price数组。其实这个price数组是由指标初始阶段的一个参数#property indicator_applied_price来定义的。

定义的一般方式是:

  1.                 #property indicator_applied_price PRICE_OPEN

 

上面的语句表示OnCaculate事件里使用的price数组是OPEN开盘价对应的数组。

如果不使用上面的语句对进行price数组进行指定,则默认price数组使用CLOSE收盘价的数组。

总结:可以看到上面这种OnCaculate事件的调用仅适合用于K线单个数组的技术指标的调用。

==============================

方式2:

  1. int OnCalculate (const int rates_total,      // размер входных таймсерий
  2.                  const int prev_calculated,  // обработано баров на предыдущем вызове
  3.                  const datetime& time[],     // Time
  4.                  const double& open[],       // Open
  5.                  const double& high[],       // High
  6.                  const double& low[],        // Low
  7.                  const double& close[],      // Close
  8.                  const long& tick_volume[],  // Tick Volume
  9.                  const long& volume[],       // Real Volume
  10.                  const int& spread[]         // Spread
  11.    );

方式二相对于第一种调用方式的不同在于:引入了K线所有对应的数值数组,这样可以全面使用K线对应的各种数据进行我们所需要的处理和操作。

网站首页 | 关于我们 | 程序化交易 | 交易知识 | 投资经典 | 模型鉴赏 | 代写指标 | 联系我们

全国统一客户服务热线:13022759527
程序化交易交流群:8641958
新浪博客:程序化交易网-官方博客
京ICP备10004064号-4
COPYRIGHT 2008-2018 WWW.ZCXH.COM All RIGHTS RESERVED