您现在的位置:程序化交易>> 外汇现货>> MT5>> MT5知识>>正文内容

OnCaculate的用法 [MT4]

  • 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数组使用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线对应的各种数据。

【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容