我看有参考它魔改的版本,比如:https://www.eahub.cn/thread-228829-2-1.html
魔改完我用高精度数据回测,效果如下:
用的默认参数,没有改太多东西,只是改了一个马丁倍率 1.45,用的 10 万初始资金,回测基本上爆仓的。
我看了下除了UI 面板优化成非常好用的版本之外,魔改的版本还做了一些好玩的调优,这个https://www.eahub.cn/thread-228829-2-1.html 魔改的作者很有意思,思路挺好的,顺着这个思路优化。
我只增加了一些限制,包括防止跨日跳空的问题,净值曲线好多了,也不爆仓了,最少能跑完最近 11 个月。
然后我把LakeNode 原版升级的一部分内容的间距模式还有 ATR 都给它优化进去,同时做了性能优化,原版比较关键的功能我没有移植(原版老外其实做了很多升级的,我看它这都没有,我是花钱买了原版的,原版是 3000u 的),回测速度变快了,并且修复它的止损逻辑。把一些 BUG 修复了,花了点时间,感兴趣自己拿去跑参数用。这个策略不能用在 Ex ,会被封禁,EX 的风控有限制,其它经纪商应该还好,具体你们自己看,去做经纪商适配。同时我把里面的什么授权啥的都移除了,我估摸这个版本应该是反编译了,和原版有点出入,原版最新的还用了 ER,这里没有,但是我觉得用来玩应该是够的。
它的具体逻辑:
模块 怎么理解
间距M1 ATR×GridAtrMult,夹在 min/max 点之间;层数超 SpacingSwitchOrderCount 再乘 GridStage2Factor(更密)
固定止损本 EA 多空合计浮盈 ≤ -FixedStopLossMoney → 全平(0=关)
周五美盘GMT 周五美盘窗内,整本空仓禁首单;有仓仍可加仓/平仓单笔订单本身没有价位 SL/TP,全靠账户浮盈金额出场。 模式 A:ST 开把它想成账上最多两堆仓: - 顺势组(跟当前 g_stDir):可以开新周期、可以加仓
- 逆势组(方向 = -g_stDir):只许在已有旧仓上恢复加仓,绝不从 0 新开
开仓信号(首单)- 图表周期自算 Supertrend;收盘后候选方向连续确认 STConfirmBars 根 → g_stDir
- 顺势侧若无仓:在现价外约 1 个间距挂 BuyStop/SellStop(注释 MJ_TREND_FIRST_*)
- 同方向顺势刚全平:本根 K 线禁重开,等下一根
- 周五空仓 / RunEA=false 等也会挡首单
顺势加仓(回调再启动)不是价格每跌一格就加,而是三段: - 跟踪顺势极值(多看最高 bid / 空看最低 ask)
- 从极值回撤 ≥ 回调距离 → 武装
- 从回撤低点再反弹确认 ≥ 恢复距离 → 市价加仓(MJ_TREND_ADD_*)
另有:层数上限、加仓间隔秒数、同向最小价距。 逆势恢复(不砍旧仓)- ST 确认翻转时:删旧方向挂单,把旧方向全部手数打成一个「虚拟首仓」快照
- 之后只在逆势方向有仓时,按经典逆势规则挂更远的 Stop 加仓(手数按快照×InverseAddLotMult幂次)
- 逆势侧仓位归零 → 清恢复态,禁止再开逆势首仓
ST 止盈(非对称)优先级 条件 动作
1多空合计 ≥ STBasketTP×LotMultiplier全平
2逆势组单独转盈(默认利润>0 即可)且允许只平逆势
3逆势还在顺势不能单独止盈
4逆势已走完剩余顺势仍走同一 Basket 目标全平逻辑 模式 B:ST 关(经典逆势网格)- 多空各自独立:Ask+间距挂 BuyStop,Bid−间距挂 SellStop
- 空仓时挂的是首单;有仓后在更不利价位继续挂加仓(马丁倍数 InverseAddLotMult)
- AllowPendingExpand=false 时,主要沿「更亏」方向加,不太往有利方向扩网格
经典止盈- 两边都已有一定浮盈(过 BaseTPAmount)时:单边 ≥ SingleSideTP×LotMultiplier → 只平该边
- 否则:两边合计 ≥ BothSideTP×LotMultiplier → 全平
逻辑倒是不复杂,就是这个代码里没有对经纪商风控有封装,收费版里是有的,所以可能要做经纪商适配,不然容易被限制,其它没什么,下面这个是优化完的回测效果。完整的代码 1700+行,并且有完整的英文注释,我给移植过来了,还有一些付费的功能没有移植,只是稍微还原了下正常的版本,同时把配置 Set 融合到默认参数中,并且把编译错误的都按照原版来修复了,同时还补充了全部注释,英文注释都补全了,我看了下逻辑没问题。
回测报告:
最大开仓手数:
参数:
报告分析:
报告还有好多细节,太长了,我就不发了,大概就是这个情况,诸位自行研究吧。记得用的时候自己注意下经纪商适配,就好了。 |