SomaForex
- 专家
- 版本: 1.0
- 激活: 10
SomaForex 是一款用于 MetaTrader 5 的多策略突破型智能交易系统,面向 EURUSD、GBPUSD 和 USDJPY。一张图表、一个 EA,34 套独立策略并行运行,构成单一、分散化的组合。
为在上线时让更多人能够入手,我采用透明的阶梯定价:
- 首发价:100 USD
- 每售出 10 份,价格上涨 100 USD,每天最多涨价一次
早期购买者在产品生命周期内锁定最低价格。
理念
与其运行单一、容易过度拟合某一狭窄市况的设置,SomaForex 自带一套精选的 34 套预调策略。其中 8 套交易 EURUSD,11 套交易 GBPUSD,15 套交易 USDJPY。它们全部在同一张图表上的单个 EA 中并行运行。
每套策略拥有各自的 magic number、注释、时间周期、摆动识别参数、出场、新闻距离与手数步长。它们共享同一执行引擎但独立交易,因此您可在货币对、时间周期与突破宽度上获得真正的分散化,而无需管理大量图表。
组合构建
我在两个互补的样本内区间上做了优化,参数网格相同:
- 时间周期分为 5 组:D1、H12、H8、H4、H1
- 突破宽度有三种:
- V1 Broad:摆动更宽,信号更少但更强;
- V2 Medium:信号频率均衡;
- V3 Narrow:摆动更紧,信号更频繁。
- 全部按 return / drawdown 优化:
- 先按 Return / Balance DD
- 再按 Return / Equity DD
两个优化区间及其样本外窗口为:
- Res1 - In Sample: 2016-2026 | OOS: 2007-2015
- Res2 - In Sample: 2007-2015 | OOS: 2016-2026
Res1 与 Res2 是同一段历史的互补两半,因此每个区间在样本外验证另一个。
货币对 x 时间周期 x 宽度 x 优化区间的这一组合正是分散化的来源。不同策略在不同波动环境下触发,因此权益曲线不会依赖单一市场行为。
没有挣到位置的策略被排除。所有优化都开启了周五收盘,因此选择不依赖持仓跨过周末缺口。该周五收盘默认保持开启。
经过筛选,最终只保留 34 套策略:Res1 中 20 套,Res2 中 14 套。
最终组合按货币对与摆动周期:
- EURUSD (8)、GBPUSD (11)、USDJPY (15)
- 周期:14 个 D1、9 个 H12、7 个 H8、2 个 H4、2 个 H1
风险与手数
提供两种手数模式:
- 手动手数:每笔固定手数。每套策略使用内置起始手数 0.01。没有单独的 StartLots 输入。
- Lot per balance step(默认):按账户资金自动计算,并按该策略的手数步长缩放
额外控制项用于精细调节风险:
- 在计算手数之上的全局风险乘数
- 通过 MaxLots 设置可选 EA 手数上限(默认 0 = EA 不限制,仅受经纪商规格约束);设为 > 0 即为硬性上限
- 选择以余额或净值为计算基准
- OnlyUp 模式:手数随峰值资金上调,交易回撤期间不下调。出金降低计算峰值,入金提高峰值(两者都会立即同步峰值并重算挂单手数)。启动时 EA 从近期已平仓历史初始化历史峰值(可配置回溯天数),使 OnlyUp 基准从第一笔报价起就有意义,而不是每次重启都重置
- 基础货币选择(USD、EUR、GBP、JPY、AUD、CHF、CAD、NZD、HKD、SGD、CNH 或自定义品种),以便在非美元账户上正确计算手数
- 爆仓保护(默认开启):下单前 EA 检查可用保证金,包括已经工作的同向挂单,并可以用一个共同系数缩小整个组合,使相对手数步长保持不变。仪表盘会显示该系数何时低于 1。仅在您完全掌握杠杆与保证金余量时关闭。
- MCP Risk Multiplier:缩放爆仓保护预算(1.0 = MCP 默认)。低于 1.0 更保守。高于 1.0 把上限放宽到未封顶手数,但不能凭空增加可用保证金。
新闻过滤
SomaForex 内置美国新闻日历,覆盖三类高影响事件。过滤器默认开启:
- NFP - Non-Farm Payrolls
- CPI - Consumer Price Index
- IR / FOMC - 央行利率决议
围绕每次事件,EA 可独立阻止新开仓、撤销挂单并平掉持仓。每套策略拥有各自的事件前、事件后分钟窗口,因此新闻防护按策略分别调校,而不是全局一刀切。
经纪商 GMT 可手动设置或自动检测,使新闻窗口始终与经纪商时间对齐,包括夏令时切换。分类器已收紧,以排除常见误报,例如 ADP Nonfarm Employment 以及 FOMC 讲话或会议纪要。
交易时段
周一开盘 / 周五收盘窗口默认开启。交易于经纪商时间周一 01:10 开始,周五 22:50 停止。窗口之外会撤销挂单并平掉持仓。您可以关闭该窗口,或选择是否在窗口外撤销挂单、平掉持仓。
默认值假定冬季 GMT+2、夏季 GMT+3。若经纪商时钟不同,请移动 FridayCloseHour 和 MondayOpenHour,以保持同一个 UTC 时刻,并设置 GMT 偏移(或保持 AutoGMT 开启),使新闻窗口仍然对齐。
优化时开启了周五收盘,这也是默认设置,因此没有在有风险的周末缺口上过度优化。
点差过滤
当某一货币对的点差持续过宽时,SomaForex 可以撤销该挂单。过滤器只作用于挂单。持仓打开之后,正常出场逻辑(止损、止盈、追踪、保本)不变。
- MaxSpreadPips_EURUSD(默认 2.0)、MaxSpreadPips_GBPUSD(默认 2.8)、MaxSpreadPips_USDJPY(默认 1.7):最大点差,单位为点。将该上限设为 0 可关闭该货币对。
- RemovePendingSpreadSeconds(默认 60):点差持续过宽多少秒后撤销挂单。设为 0 可关闭该计时。
魔术号
每套策略使用唯一的 9 位 magic number,以便 MetaTrader 将其交易与其他 EA 或手工单区分开。每笔订单和持仓上都能看到该号码,策略注释里也有(例如 SomaForex #8 621082108)。
这些数字不是随机的。它们编码了策略本身:
- 第 1 位:EA 系列(6 = SomaForex)
- 第 2 位:货币对(1 = EURUSD,2 = GBPUSD,3 = USDJPY)
- 第 3 位:优化区间(1 = Res1,2 = Res2)
- 第 4-5 位:摆动周期的小时数(01 H1,04 H4,08 H8,12 H12,24 D1)
- 第 6 位:突破宽度(1 Broad,2 Medium,3 Narrow)
- 第 7 位:优化目标(1 Balance DD,2 Equity DD)
- 第 8-9 位:该组合中的策略编号
例如:magic 621082108 读作 SomaForex、GBPUSD、Res1、H8、Medium、Balance DD、策略 #8。
这样无需打开 EA 设置,就能在终端或账户历史中辨认是哪套策略开的仓。
Prop Firm Compliance
可通过 MaxRandomizationPips_EURUSD、MaxRandomizationPips_GBPUSD 和 MaxRandomizationPips_USDJPY,为每个货币对的进出场单独施加可选的随机点数偏移。这使您的价位与其他运行同一 EA 的交易者略有不同。设为 0 可关闭该货币对。随机化不依赖合规总开关。
SomaForex 还包含一层可选合规(默认关闭):单日回撤锁定、禁止对冲,以及挂单数量上限。见下方 EnablePropFirmCompliance 及相关输入。未启用时,它不改变回测或实盘交易。
图表仪表盘
SomaForex 在图表上显示实时仪表盘:
- 授权状态与自动交易状态
- 手数计算基准、有效资金与风险乘数
- 当手数系数低于 1 时的保证金保护比例
- 挂单与持仓,包括按品种分行
- 浮动盈亏、当日已平仓盈亏与全部已平仓盈亏
- 余额与净值回撤,绝对值与百分比
- Trading Cost 表:滑点、库存费和佣金(1天 / 7天 / 30天 / 90天 / 全部)
- 每个货币对的当前点差及其上限
- 下一次与上一次 NFP、CPI 和 IR/FOMC 事件
可在策略测试器中关闭仪表盘(DisableDashboardInTesting,默认开),或在实盘 / 模拟图表上关闭(DisableDashboardInLive,默认关)。
参数
组合设置
- StrategyRunMode -> 运行全部已启用策略,或只运行 SingleStrategyNumber
- SingleStrategyNumber -> 当 StrategyRunMode 为 RUN_ONE_STRATEGY 时使用的策略编号
- StrategiesToRun -> 以逗号分隔、从 1 开始的策略编号(默认 1-34)。编号与交易注释中的 #N 一致(例如 SomaForex #8 621082108 是策略 8)。被禁用的策略停止下单和管理;更改此输入前请先平掉它们的持仓。
品种代码
- TickerEURUSD -> 经纪商的 EURUSD 名称(默认 EURUSD)。留空则关闭全部 EURUSD 策略。
- TickerGBPUSD -> 经纪商的 GBPUSD 名称(默认 GBPUSD)
- TickerUSDJPY -> 经纪商的 USDJPY 名称(默认 USDJPY)
把 EA 附加到一张图表上,通常是 EURUSD。若经纪商使用后缀,请填入实际名称(例如 EURUSD+ 或 EURUSD.s)。
覆盖
- EnableMagicOverride -> 开启时,magic 为 OverrideMagicBase + 策略索引;关闭时(默认)每套策略使用内置 magic
- OverrideMagicBase -> 启用 magic 覆盖时的起始号码
- EnableCommentOverride -> 开启时所有交易共用同一注释;关闭时(默认)每套策略保留各自注释
- OverrideComment -> 启用注释覆盖时使用的文本
交易方向
- AllowBuyTrades -> 允许做多及买单挂单
- AllowSellTrades -> 允许做空及卖单挂单
GMT
- Broker_GMT_OFFSET_Summer -> 夏季手动经纪商 GMT 偏移(小时)
- Broker_GMT_OFFSET_Winter -> 冬季手动经纪商 GMT 偏移(小时)
- AutoGMT -> 自动检测经纪商 GMT(忽略手动偏移)
交易执行
- UseInternalTrailingExitLevels -> 开启时,保本、追踪止损和追踪止盈留在 EA 内部,并在价格到达时市价平仓。原始硬止损和止盈仍留在经纪商。默认关闭,因此这些出场仍会修改经纪商止损。
推荐设置
- 品种:附加到 EURUSD,或任意图表,并把 TickerEURUSD、TickerGBPUSD、TickerUSDJPY 设为经纪商名称。EURUSD+ 或 EURUSD.s 这类后缀可以使用。留空则关闭该货币对。
- 时间周期:任意(EA 在内部读取自身所需周期)
- 账户类型:建议使用 ECN / RAW-spread,以获得更低点差
- 参考余额:固定入金测试覆盖 1,000 至 10,000 USD。更小的账户应降低风险乘数。
- VPS:建议用于稳定的 24/5 执行
- 要使 AutoGMT 工作,请在 MT5 允许的 URL 中加入 "https : // www . worldtimeserver.com/"(工具 - 选项 - 智能交易系统)
摘要
- 一张图表上的 34 套预调突破策略,覆盖 EURUSD、GBPUSD 和 USDJPY
- 两个优化区间,样本外交叉验证,2007-2015 与 2016-2026
- 周期:D1、H12、H8、H4 和 H1
- 分层出场:止损、止盈、保本与追踪
- 内置美国新闻保护,并过滤常见误报
- 按货币对限制挂单点差
- 周五收盘默认开启
- 可选的按货币对进出场随机化(MaxRandomizationPips)
- 可选的自营合规模式(单日回撤、禁止对冲、挂单上限),默认关闭
- 完整的图表实时仪表盘
- 透明阶梯定价:100 USD 起,每 10 份 +100 USD,每天最多一次
