一、入场机制:突破挂单替代主观猜方向
EA 在无持仓时,同时在`Ask + 首单距离(50点)` 挂 BuyStop、在`Bid − 首单距离(50点)` 挂 SellStop。
这带来三个好处:
1. 不预测、只跟随 :价格向上突破才进多、向下突破才进空,自动把方向选择交给市场,过滤掉横盘噪音,避免在震荡中凭主观频繁进场。
2. 挂单零持仓成本 :未触发前不占用保证金、不承担隔夜利息,方向错误时挂单可随时删除。
3. 首单 50 点距离 :把入场点设置在点差和短线噪音之外,降低被正常波动"误触发"的概率。
同时它还有 挂单追踪机制 (`StepTrallOrders=6` 点):挂单会随现价向有利方向不断修正、紧贴行情,既避免挂单位置过远错失行情,又保持最小触发距离。
二、加仓体系:相对温和,且"越危险越谨慎"
这是它与市面上"粗暴马丁"拉开差距的核心部分。
1. 倍率温和(1.25 而非 2.0)
手数公式为`lot × K_Lot^n + n × PlusLot` 。1.25 倍的指数增长远比经典的 2 倍马丁平缓,同等层数下保证金占用和浮亏扩张速度小得多,账户存活空间更大。
再叠加`Maxlot=6` 手硬上限,从数学上封死了手数指数膨胀失控的可能。
2. 双套间距参数,浮亏越大、补仓越稀疏,这是很关键的自适应设计:
- 浮亏未超过`Money` 阈值时,用第一套参数(补单间距 100 点、最小距离 66 点);
- 浮亏一旦超过阈值,自动切换到第二套参数(间距拉大到 150 点、最小距离 99 点)。
含义是: 行情越不利,加仓距离越远、频率越低 。普通马丁在单边行情里会密集补仓、加速爆仓;而这个机制主动在深水区"踩刹车",给行情反转留出更大空间,也延缓了保证金消耗。
3. 下单前先验证资金,避免仓位结构断裂
每次加仓都做双重校验:手数受`Maxlot` 约束,且要求可用保证金至少能覆盖该手数所需保证金的 2 倍。
资金不够就不下单,从机制上杜绝了"加仓单因保证金不足失败、导致整个马丁回本结构残缺"这一常见致命问题。配合`Totals=50` 最大单量上限,敞口被双向约束。
三、风控:多层、可开关、可定制
EA 在入口处集中了一组交易前置条件,任何一条不满足即停止工作:
- 点差过滤 (`MaxSpread=36` ):新闻公布、流动性枯竭时点差异常扩大,EA 自动停手,避免在恶劣价格成交;
- 杠杆校验 :账户实际杠杆低于设定值即停,防止在低杠杆账户上开出超出承受力的仓位;
- 交易环境检测 :自动判断是否允许交易、EA 是否被禁用、账户是否被止损关闭;
- 双时间窗口 :`EA_StartTime/StopTime` 控制 EA 整体运行时段,`Limit_StartTime/StopTime` 单独控制挂单时段,可主动规避隔夜、重大数据或特定高风险时段;
- 价格边界线 :四个`On_top/under...price` 参数可规定"某价位之上不再开多/补多",相当于给策略划定价格围栏;
- 金额型止损链 :`StopLoss` (总止损)、`MaxLoss` (单边停止加仓)、`MaxLossCloseAll` (单边平仓线)三道金额阈值,风险口径直接以货币金额表达,比按点数止损更贴近账户真实承受力。
这些阈值几乎全部`extern` 化,交易者可以按品种波动、账户规模自由裁剪,策略不与某一固定行情绑定。
四、对锁平仓:工程化降低退出成本
当多空持仓并存时,EA 大量使用`OrderCloseBy(多单, 空单)` 让双向订单 互相平仓 ,而不是多、空分别市价平仓。优势在于:
1. 省成本 :对锁互平通常只承担一次价差甚至减免部分手续费,长期高频交易下,这是一笔可观的成本节约;
2. 执行健壮 :外层用`do…while` 循环确保所有对锁单全部平完,平仓函数内部对错误码 129(价格无效→刷新报价)、146(交易上下文忙→等待重试)做了专门处理,
并设置最多 10 次重试上限,在快速波动行情中也能可靠完成退出;
3. 薄利即走 :总盈利达到`CloseAll=2` 美元即整体落袋,并在`NextTime` 秒内不开新局,靠"小盈利、高兑现率"累积,避免纸面利润长期悬于市场。
此外还有专门的 盈利保护(逆势保护)逻辑 :当一侧总手数已超过最大盈利单 3 倍、且单数大于 3 时,先平掉盈利单。这针对的是马丁类策略"平时小赚、一次单边全部回吐"的死穴——在手数结构严重失衡前先把利润锁进口袋。
五、拆单平仓:本版本最有价值的增量
马丁/网格最大的心理与技术难点是: 浮亏单砍了就是实打实的大亏,不砍又可能越拖越深 。`SplitClose()` 给出了一条"有序撤退"的中间路线,设计上有多处巧思:
1. 用盈利对冲亏损,不产生净失血 :把同方向的盈利单与亏损单配对,只有当盈利额 ≥ 亏损额 ×(1 +`SplitProfitThreshold%` ) 时才执行,保证每次拆出的一对在现金上至少打平、甚至小幅净流入,而不是单纯割肉。
2. 大手数亏损分批消化 :超过`SplitLargeLotThreshold=0.2` 手的亏损单,每次最多只平`SplitMaxLossLot=0.08` 手。分批平仓既减少一次性大单的滑点与市场冲击,也为行情反弹保留时间窗口,避免砍在最差价位。
3. 配对顺序有讲究 :亏损单按手数 升序 ——先处理小手数、容易覆盖的"轻伤员",先易后难;盈利单按手数 降序 ——优先动用"大块盈利"去覆盖,提高单次拆单成功率。
4. 门槛 + 节流 :`SplitStartLoss` 规定总浮亏达到一定程度才启动,轻微浮亏时不动作;每`SplitCloseInterval=10` 秒才检查一次、每次只处理一对,节奏可控,不会在剧烈行情中连续误操作。
5. 战略效果 :它把马丁的"硬扛等回归"变成"逐步去库存"——每拆一对,就释放一笔被占用的保证金、降低一份净敞口,账户抗风险能力随拆单进行而持续改善,即使最终行情未完全反转,账户也已处于更安全的状态。
六、工程实现与易用性
- 跨平台自适应 :自动识别 5 位/3 位报价并调整滑点;启动时自动把`Step/FirstStep/MinDistance` 与平台最小止损/冻结距离(STOPLEVEL、FREEZELEVEL)比较并修正,换到不同经纪商也不易因距离违规而下单失败。
- 信息透明 :图表实时显示余额、净值、可用保证金、多空各侧单数/手数/盈亏、总盈亏、实时点差与杠杆,持仓状态一目了然。
- 人工可随时接管 :图表上 C buy / C sel / Close 三个按钮可一键平多、平空、全平,且均有二次确认对话框防误操作,极端行情中人可以立即介入。
- 订单隔离 :独立`Magic` 号,不会误操作手工单或其他 EA 的订单;配合声音提示和完善日志,便于排查。
客观风险提示(优势之外,必须知晓)
作为同方向的专业提醒,这套设计虽精巧,但 本质仍属于网格马丁,盈利根基是"均值回归" :
- 默认`MaxLoss` 、`StopLoss` 均为 50000,实际等同于 不设硬止损 ,安全垫完全依赖资金厚度与参数设置;
- 在 持续单边大行情 中,加仓间距再大、倍率再温和,多层补仓 + 对锁仍会累积庞大敞口,尾部风险(小概率大亏)并未被消除,只是被延后和缓释;
- 拆单平仓是"止血与撤退"工具, 不能让亏损凭空消失 ——若行情始终不回头,剩余亏损单依旧存在;
- 盈利目标小(2 美元)而潜在亏损大, 盈亏比天然不对称 ,长期结果高度依赖胜率与资金管理;实盘还需考虑隔夜费、滑点、回测失真等因素;
- 代码内置账号授权与到期机制(2029-04-30),后续运行依赖作者升级。
一句话总结 :它的优势不在"稳赚",而在于用 温和倍率、自适应间距、资金前置校验、对锁低成本退出和拆单有序消化 ,把传统马丁"一把梭哈等回归"的粗放打法,改造成了一套风控层次清晰、可手工干预、退出路径工程化的体系——显著提高了策略在常规行情中的存活率和操作容错率,但单边极端行情下的尾部风险仍需靠你自己设定的硬止损和资金管理来兜底。
|
-
-
-
-
彩麒麟.ex4
138.07 KB, 下载次数: 1, 下载积分: 活跃度 -5
售价: 3 H币 [记录]
[下载]
无限制
-
-
彩麒麟.mq4
141.04 KB, 下载次数: 0, 下载积分: 活跃度 -5
售价: 20 H币 [记录]
[购买]
源码
|