威廉%R指标(WPR,也被称为Williams %R或者Williams Percent Range),是由Larry Williams发明的一种动量指标,用于显示当前的收盘价相对于过去N日的高低价格区间的位置。这个指标有助于找出潜在的超买或超卖点。
如何在MT4上安装威廉%R指标
在MT4上安装WPR指标相对简单,具体步骤如下:
- 在MT4的上方菜单栏,依次点击 “插入 – 技术指标 – 震荡指标 – Williams’ Percent Range”;
- 在打开的“Williams’ Percent Range参数”窗口中设置好相关参数;
- 点击“确定”,WPR指标就会被添加到当前图表上。
获取威廉%R指标数据
要在MQL4程序中获取WPR指标数据,可以使用MT4内置的函数iWPR()
。这个函数的声明如下:
double iWPR(
string symbol, // 交易品种名称
int timeframe, // 图表时间周期
int period, // 平均周期值
int shift // 指标索引/序号
);
这个函数的参数说明:
symbol
:交易品种名称。如果要引用当前图表的交易品种,可以使用Symbol()
函数。如果要指定其他交易品种,可以直接写入,比如"XAUUSD"
或"USDJPY"
等。timeframe
:图表周期。这里可以使用MT4的预定义常量,比如PERIOD_H1
(一小时图表)或PERIOD_M30
(30分钟图表)等。period
:计算WPR指标的周期值。默认值通常设为14。shift
:指标的索引。0表示当前最新的K线,然后从右往左分别是1、2、3、4等。
举例来说,如果我们想获取当前图表上最近14个周期内的WPR值,可以这样编写代码:
double wpr = iWPR(Symbol(), 0, 14, 0);
Print("Current WPR: ", wpr);
再比如,如果我们想获取黄金XAUUSD一小时图表上最新的WPR值,可以这样编写代码:
double xauusd_wpr = iWPR("XAUUSD", PERIOD_H1, 14, 0);
Print("XAUUSD H1 WPR: ", xauusd_wpr);
又或者,如果我们想获取美元兑日元USDJPY三十分钟图表上最新的WPR值,可以这样编写代码:
double usdjpy_wpr = iWPR("USDJPY", PERIOD_M30, 14, 0);
Print("USDJPY M30 WPR: ", usdjpy_wpr
用数组和for循环获取多个单位指标值
如果我们想获取过去N个单位的WPR值,可以创建一个数组,并用for
循环来实现。
比如,以下的代码片段就展示了如何获取过去10个单位的WPR值:
int period = 14;
int history = 10;
double wpr_array[history];
for(int i = 0; i < history; i++) {
wpr_array[i] = iWPR(Symbol(), 0, period, i);
Print("WPR at shift ", i, ": ", wpr_array[i]);
}
这段代码将分别计算过去10个单位的WPR值,并将它们存储在wpr_array
数组中。然后,我们可以通过Print
函数将这些值输出到日志中。
总的来说,获取和使用威廉%R指标的数据并不复杂,只需要熟悉iWPR()
函数的用法,就可以在自己的MQL4程序中灵活地使用这个强大的指标了。