在MetaTrader 4平台上,iHighest()与iLowest()是两个非常实用的内置函数,它们可以帮助交易者在编写交易策略时快速查找特定周期内的最高价和最低价。本文将详细介绍这两个函数的具体用法,以便您能更好地利用它们优化您的交易策略。
一、iHighest()函数
iHighest()函数用于在指定时间周期和范围内查找最高价的位置。其语法如下:
int iHighest(string symbol, int timeframe, int type, int count, int start);
参数说明:
- symbol:交易品种,如”EURUSD”。使用NULL表示当前品种。
- timeframe:时间周期,如PERIOD_H1表示1小时周期。可使用内置常量(如PERIOD_M1、PERIOD_M5等)。
- type:价格类型。可选值为MODE_HIGH(最高价)或MODE_LOW(最低价)。
- count:要检查的柱子数量。如果为0,则检查所有柱子。
- start:要开始检查的第一个柱子的位置,从0开始计数。
返回值: iHighest()函数返回最高价所在的柱子的位置(K线序号)。如果查找失败,返回-1。
二、iLowest()函数
iLowest()函数用于在指定时间周期和范围内查找最低价的位置。其语法如下:
int iLowest(string symbol, int timeframe, int type, int count, int start);
参数说明:
- symbol:交易品种,如”EURUSD”。使用NULL表示当前品种。
- timeframe:时间周期,如PERIOD_H1表示1小时周期。可使用内置常量(如PERIOD_M1、PERIOD_M5等)。
- type:价格类型。可选值为MODE_HIGH(最高价)或MODE_LOW(最低价)。
- count:要检查的柱子数量。如果为0,则检查所有柱子。
- start:要开始检查的第一个柱子的位置,从0开始计数。
返回值: iLowest()函数返回最低价所在的柱子的位置(K线序号)。如果查找失败,返回-1。
三、应用示例
以下代码示例展示了如何使用iHighest()和iLowest()函数查找过去10根柱子中的最高价和最低价:
void OnTick(void)
{
int highest_pos = iHighest(NULL, PERIOD_H1, MODE_HIGH, 10, 0);
int lowest_pos = iLowest(NULL, PERIOD_H1, MODE_LOW, 10, 0);
double highest_price = iHigh(NULL, PERIOD_H1, highest_pos);
double lowest_price = iLow(NULL, PERIOD_H1, lowest_pos);
Print("在过去10根柱子中:");
Print("最高价为:", highest_price, ",位置:", highest_pos);
Print("最低价为:", lowest_price, ",位置:", lowest_pos);
}
在此示例中,我们首先使用iHighest()和iLowest()函数分别查找过去10根柱子中最高价和最低价的位置,然后使用iHigh()和iLow()函数获取相应位置的最高价和最低价。最后,将结果打印到Experts日志中。
综上所述,iHighest()和iLowest()函数在MetaTrader 4平台中为交易者提供了便捷的工具,以在编写交易策略时快速确定特定周期内的最高价和最低价。了解这两个函数的具体用法并将其应用于交易策略中,将有助于您更有效地进行市场分析,从而提高交易决策的准确性。