OnCaculate的用法 [MT4]
作者:
MT4 来源:
cxh99.com 发布时间:2012年05月18日 点击数:
【
收藏到本网的会员中心】
- OnCaculate事件因Tick的到来而触发,他有两种调用方式:
复制代码- int OnCalculate(const int rates_total,//指标数组的全部元素个数
- const int prev_calculated,//前一次计算完的指标数组的个数
- const int begin,//指标数组最早的其实元素序号
- const double &price[])//本指标计算需要用到的K线的单个数组
这里比较难理解的是price数组。其实price数组是有指标其实阶段的一个参数#property indicator_applied_price进行定义的。
一般定义方式是:
复制代码- #property indicator_applied_price PRICE_OPEN
这里表示OnCaculate事件里使用的price数组是OPEN开盘价随对应的数组。
如果不使用上面的语句进行指定,则默认price数组使用CLOSE收盘价对应的数组。
总结:可以看出上面这种OnCaculate事件的调用仅适合于使用K线单个数组的技术指标的调用。
==============================
方式2:
复制代码-
- int OnCalculate (const int rates_total, // размер входных таймсерий
- const int prev_calculated, // обработано баров на предыдущем вызове
- const datetime& time[], // Time
- const double& open[], // Open
- const double& high[], // High
- const double& low[], // Low
- const double& close[], // Close
- const long& tick_volume[], // Tick Volume
- const long& volume[], // Real Volume
- const int& spread[] // Spread
- );
这种方式相对于第一种调用的不通在于:引入了K线所有对应的数值数组,可以全面使用K线对应的各种数据。