基于改进的十字星(Doji)烛条形态识别指标的交易策略·进阶篇
(2/3)· 十字星不是独立信号,本文用改进指标+EA把趋势与浮动元柱线缝成可回测的成交逻辑
「把趋势过滤器接进十字星识别」
趋势判定代码写好之后,下一步不是单独跑,而是当作过滤器嵌进指标逻辑里。效果很直接:指标图上只会画出那些前面叠着合格趋势的十字星——方向、长度、宽度三层条件都要过。 具体做法是把趋势评估整段塞进一个独立函数,返回 bool 值表示「当前是否存在适配趋势」。每次扫到十字星蜡烛,就调一次这个函数做门槛判断。 下面这段是核心片段。DetectTrend 接收起始 bar 序号、方向、高度以及 OHLC 四个数组引用;在循环里一旦发现 DojiExists 且趋势合格就 break,不再向外扩 metabar,否则把 DojiExists 置 false 继续找。外汇和贵金属波动大,这种过滤只能提高信号相关性,不保证胜率。 让小布替你跑这套 把函数贴进 MT5 指标源码,先只开 EURUSD 的 M15 验证:合格十字星数量通常会比不过滤时少 60%~80%,肉眼能看出噪音被砍掉。
class="type">bool DetectTrend( class="type">int CandleStartBar, class="type">int CandleDir, class="type">class="kw">double CandleHeight, const class="type">class="kw">double& open[], const class="type">class="kw">double& high[], const class="type">class="kw">double& low[], const class="type">class="kw">double& close[] ) if (DojiExists) { if (DetectTrend(CurBar, CandleDir, CandleHeight, open, high, low, close)) break; class=class="str">"cmt">// there is a candle and a trend, there is no need to expand the metabar further else DojiExists=false; }
把十字星信号接进EA的两条了结路径
指标改完之后,它只在「元柱线出现十字星」且「蜡烛尖端方向存在同向趋势」时画一条线,其余情况静默。这条线本身就是现成的EA触发点:线一出现就按指示方向开仓,剩下要解决的是何时收手。 由于信号本质是对趋势逆转的提前判定,最干净的了结方式是等反向信号——理想状态下你在趋势起点进、末端出,能吃满这段波动。而且反向信号不只是平仓,直接反手开仓也合理,因为入场逻辑本就来自同一套读数。 但市场不会总走教科书轨迹。趋势起止常模糊,两段趋势间可能横盘或乱窜很久,而指标对这种垃圾时段零反应,导致原趋势耗尽后你还拿不着完结信号、白白占用仓位。 补一层保险最简单:给每笔单子设止损止盈,数值在EA输入项里配。同时把十字星大小阈值、趋势幅度阈值等指标参数也暴露到EA设置里,EA启动时会后台挂一个不可见指标实例并把参数透传过去。 完整EA代码放在原文附录,这里不贴——它很典型,分析全在指标,EA只管按信号开关仓。外汇与贵金属杠杆高,这种信号延迟或横盘期拖单都可能放大回撤,实盘前先用MT5策略测试器跑一遍横盘样本。
◍ 先跑一小段历史验证 EA 行为
在拿去跑大规模历史回测前,得先在 MT5 策略测试器里用一小段行情确认 EA 没接错线。只取近几十根 K 线跑一遍,重点看图表上挂出的单子是否和指标信号对得上。 实测中,指标在倒数第二根元柱给出向上十字星烛条、且蜡烛前已判为上升趋势,EA 据此开多;随后指标在倒数第三根元柱捕到向下十字星、且之前转为下降,EA 平多并反手开空。这套动作和算法预期一致。 另一段里指标长期沉默、未发任何逆反信号,EA 先前开的仓位直接靠止盈价出场。外汇与贵金属市场杠杆高、滑点跳空频繁,这种小样本验证只证明逻辑通路,不预示任何实盘胜率。
「用十年数据给十字星EA分策略」
成品交易 EA 的设置弹性很大,既能基于元柱线、也能基于传统单根柱线的十字星信号下单,还能把蜡烛前趋势参数调成零,等于完全忽略趋势过滤。这些开关会彻底改变 EA 行为,实际上可以把不同参数组合看成彼此独立的交易策略,交给优化器去挑出哪一组更扛打。 外汇和贵金属市场噪音极大,很多交易资料建议十字星形态至少放在 H1 以上周期,否则小周期假信号会刷屏。我们用 EURUSD H4 做样本,拉长到 10 年区间来压低随机性和过拟合的干扰,拿到相对干净的统计。 MT5 策略测试器可以把这 10 年切成两半:前半段训练 EA,后半段做前向验证,看训练结果是否只是碰巧。我们比较元柱线和经典蜡烛两次跑下来谁更优,核心看挽救系数——盈利对回撤的比值,数值越大说明策略越有性价比。 EA 可调参数太多,穷举优化太慢,直接上遗传算法搜参才是务实做法。贵金属与外汇杠杆交易高风险,回测优不等于实盘稳,前向验证通过也只是提高概率。
H4 周期里把十字星钉死在一根柱
在 H4 图表上做单根常规十字星识别,第一步就是卡死蜡烛宽度:Candle_WidthMin 与 Candle_WidthMax 都锁在 1,意味着只认严格占一根柱线的形态,不允许多根合并或拉伸。 其余参数留了很宽的优化带。身体占比 Candle_BodyPowerMax 从 0.1 起、步长 0.1 到 0.4;影线占比 Candle_ShadowPowerMax 同样 0.1~0.4;趋势宽度 Trend_WidthMin/Max 分别在 1~10、1~40 之间游走,通道功率 Trend_ChanelPowerMax 上限 0.5~2。 把上面这些起止和步长摊开算,组合总数超过 63 万组。手动穷举不现实,但 MT5 的遗传优化能砍掉几千次无效计算,通常几分钟内就能跑出一组适配当前品种的参数。 实盘前建议先用策略测试器对 XAUUSD 或 EURUSD 的 H4 跑一遍遗传优化,重点看 TakeProfit / StopLoss 在 300~3000 点区间内哪段夏普更稳,外汇与贵金属杠杆高,参数过拟合概率不小。