MT5编程中OnCalculate函数用法详解

2026-05-04 10:31
小编
阅读
市场分析

在MT5编程中,OnCalculate事件会因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

上述语句表示在OnCalculate事件中使用的price数组是开盘价(OPEN)对应的数组。

如果没有通过上述语句指定price数组,那么系统默认会使用收盘价(CLOSE)对应的数组。

总结:可以看到,上述第一种OnCalculate事件的调用方式仅适用于基于K线单个数组的技术指标。

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

第二种调用方式:

int OnCalculate (const int rates_total, // 输入时间序列的大小

const int prev_calculated, // 上一次调用时已处理的柱数

const datetime& time[], // 时间数组

const double& open[], // 开盘价数组

const double& high[], // 最高价数组

const double& low[], // 最低价数组

const double& close[], // 收盘价数组

const long& tick_volume[], // Tick成交量数组

const long& volume[], // 实际成交量数组

const int& spread[] // 点差数组

);

第二种方式与第一种方式的主要区别在于:它引入了K线所有对应的数值数组,从而能够全面利用K线的各类数据进行我们所需的各种处理与操作。

点击咨询交易开户相关问题

免责声明:本文内容仅供参考,不构成投资建议。投资有风险,入市需谨慎。