DeMarker(DeM)指标,又称为汤马士·德马克指标,是由汤马士·德马克(Thomas DeMark)发明的一种震荡指标。DeMarker指标主要用于评估市场的过度买入或过度卖出状态,以预测价格反转的可能性。其数值范围通常在0到1之间,常用的阈值为0.3和0.7。当DeMarker指标值超过0.7时,市场被认为处于过度买入状态,交易者可以考虑卖出。当DeMarker指标值低于0.3时,市场被认为处于过度卖出状态,交易者可以考虑买入。当DeMarker指标值从高于0.7跌至0.7以下时,表示可能出现顶部反转,交易者可以考虑卖出。当DeMarker指标值从低于0.3上升至0.3以上时,表示可能出现底部反转,交易者可以考虑买入。顶背离:当价格创新高点,而DeMarker指标未能创新高点时,存在顶部背离,交易者可以考虑卖出。 底背离:当价格创新低点,而DeMarker指标未能创新低点时,存在底部背离,交易者可以考虑买入。
一、DeMarker指标的算法
DeMarker指标的计算方法如下:
- 计算当前周期(N)内最高价与前一周期最高价之差:DeMax = Max(High – High[1], 0)
- 计算当前周期(N)内最低价与前一周期最低价之差:DeMin = Max(Low[1] – Low, 0)
- 计算DeMax的N周期移动平均值:SMA_DeMax = SMA(DeMax, N)
- 计算DeMin的N周期移动平均值:SMA_DeMin = SMA(DeMin, N)
- 计算DeMarker值:DeM = SMA_DeMax / (SMA_DeMax + SMA_DeMin)
二、iDeMarker()函数介绍
在MT4平台中,可以使用内置的iDeMarker()函数来计算DeMarker指标。该函数的原型如下:
double iDeMarker
(
string symbol, // 交易品种
int timeframe, // 时间周期
int period, // 计算周期
int shift // 偏移值
);
参数说明:
- symbol:交易品种,如”EURUSD”,”GBPUSD”等。若使用当前品种,则输入NULL。
- timeframe:时间周期,如PERIOD_M1、PERIOD_M5、PERIOD_H1等。
- period:计算周期,即N值,通常设置为14。
- shift:偏移值,用于获取历史数据。如shift=0表示当前周期,shift=1表示前一周期。
iDeMarker()函数的返回值是计算得到的DeMarker指标值。
三、iDeMarker()函数用法示例
以下是一个简单的MQL4脚本,用于计算EURUSD货币对在H1周期上的DeMarker指标值:
// 需要在策略中包含以下头文件
#include <TechnicalIndicators.mqh>
void OnStart()
{
string symbol = "EURUSD";
int timeframe = PERIOD_H1;
int period = 14;
int shift = 0;
double dem_value = iDeMarker(symbol, timeframe, period, shift);
Print("DeMarker值: ", dem_value);
}
通过此示例,您可以了解如何在MT4中使用iDeMarker()函数计算DeMarker指标值,并根据需求进行相应的交易策略设计。
综上所述,DeMarker指标是一种有用的技术分析工具,可以帮助交易者判断市场的过度买入或过度卖出状态。通过使用MT4平台上的iDeMarker()函数,交易者可以方便地计算DeMarker指标值,并结合其他技术分析指标来设计自己的交易策略。然而,需要注意的是,任何技术指标都无法100%预测市场行为,因此在实际操作中应结合多种技术指标和风险管理方法。