MetaTrader5
Boom指数尖峰模式 - MetaTrader 5 指标解析
看涨尖峰模式检测三条蜡烛模式:第一根蜡烛:绿蜡烛,体量大(看涨尖峰)。第二根蜡烛:红蜡烛(回调)。第三根蜡烛:绿蜡烛,体量大(再次看涨尖峰)。当这个模式出现时,就会形成一个区域。区域的创建从这三根蜡烛的高点和低点绘制一个蓝色矩形。在第二根蜡烛的开盘价画一条青绿色水平入场线。这条线会延伸到未来,直到价格回到这里。输入参数解析mq5
input color BoxColor = clrBlue; // 三蜡烛模式框的颜色
input color EntryLineColor = clrLime; // 入场线的颜色
input ENUM_LINE_STYLE EntryLineStyle = STYLE_SOLID; // 入场线的样式
input int BoxWidth = 2; // 矩形边框的宽度
input int EntryLineWidth = 2; // 入场线的宽度
input int EntryLineLength = 200; // 入场线延伸的长度
这些输入参数让你可以完全控制矩形和入场线的样式。核心思想我们寻找一个三蜡烛的看涨模式1. 第一根蜡烛 – 强烈看涨(尖峰)2. 第二根蜡烛 – 看跌回撤3. 第三根蜡烛 – 再次强烈看涨尖峰当这个模式出现时,我们绘制:- 一个包围模式的矩形- 在第二根蜡烛的开盘价处画一条水平线(入场点)一旦价格回到这条线(“缓和”),我们就停止绘制它。数据结构struct PatternInfo {
datetime time; // 模式的时间
double entry; // 入场价格(第二根蜡烛的开盘价)
double high; // 三根蜡烛的最高点
double low; // 三根蜡烛的最低点
bool mitigated; // 价格是否回到了入场水平?
};
CArrayObj activePatterns;我们使用结构体 PatternInfo 来跟踪每一个有效模式,并存储在数组中。这有助于避免重复处理。初始化函数int OnInit() {
IndicatorSetInteger(INDICATOR_DIGITS, _Digits);
ArrayInitialize(activePatterns, 0);
return INIT_SUCCEEDED;
}我们设置指标精度并准备我们的数组。模式检测(每个价格波动时)for (int i = limit - 3; i >= 0; i--) {
// 循环检查三根蜡烛if (isBullish(i + 2) && isBearish(i + 1) && isBullish(i))
// 检查最后三根蜡烛是否符合尖峰模式:绿-红-绿
double high = MathMax(MathMax(High[i], High[i + 1]), High[i + 2]);
double low = MathMin(MathMin(Low[i], Low[i + 1]), Low[i + 2]);
double entry = Open[i + 1];
// 提取矩形的高低点和第二根蜡烛的开盘价PatternInfo *pattern = new PatternInfo;
pattern.time = Time[i];
pattern.entry = entry;
pattern.high = high;
pattern.low = low;
pattern.mitigated = false;
// 创建并添加这个模式到我们的列表中绘制矩形和线条string boxName = "Box_" + IntegerToString(Time[i]);
ObjectCreate(0, boxName, OBJ_RECTANGLE, 0, Time[i + 2], high, Time[i], low);
// 从三根蜡烛模式绘制矩形string lineName = "EntryLine_" + IntegerToString(Time[i]);
ObjectCreate(0, lineName, OBJ_TREND, 0, Time[i], entry, Time[i] + PeriodSeconds() * EntryLineLength, entry);
// 从第二根蜡烛的开盘价向前绘制入场线缓和检查(每个价格波动时)// 循环检查所有模式
for (int p = 0; p < activePatterns.Total(); p++) {
PatternInfo *pt = (PatternInfo*)activePatterns.At(p);
}
// 如果尚未缓和,检查:
if (!pt.mitigated && Low[0] Open[i];
}
bool isBearish(int i) {
return Close[i] < Open[i];
}这个指标简单却强大:检测Boom中的真实尖峰行为可视化聪明资金的入场自动检测缓和你现在可以在Boom 500或Boom 1000上实时测试它。如有问题或想分享,欢迎留言!
2025.07.21