SomaOil
- 专家
- 版本: 3.0
- 更新: 3 九月 2026
- 激活: 10
SomaOil 是 MetaTrader 5 的多策略突破 EA 交易,专为 WTI 原油 (XTIUSD) 打造。一张图表、一张 EA、20 个独立策略一起作为一个多元化投资组合运行。
Live Signal v2.0 - Conservative
为了使其在发布时就可以使用,我使用了透明的、逐步调整的定价模型:
- 发布价:100 USD(48 小时)
- 从周一起,每售出 10 份价格上调 100 USD
- 即使同一天售出超过 10 份,价格每天最多上调一次
早期买家锁定产品生命周期内最优惠的价格。
概念
SomaOil 没有运行往往会过度适应狭窄市场体系的单一设置,而是附带了一组精心策划的 20 个预先调整的策略,这些策略全部在单个 WTI 图表上的单个 EA 下并行运行。
每个策略都有自己的神奇数字、评论、时间范围、波动检测参数、退出、新闻距离和批次步骤。它们共享相同的执行引擎,但独立交易,因此您无需管理数十个图表即可跨时间范围和突破广度获得真正的多元化。
作品集创建
我对两个互补的样本内范围进行了优化,每个范围都具有相同的参数网格:
- 5组时间范围:D1、H12、H8、H4、H1
- 三种突破宽度变体:
- V1 广泛:更宽的波动,更少但更强的设置;
- V2 中:平衡设置频率;
- V3 窄:更窄的波动,更频繁的设置。
- 所有这些都通过回报/回撤进行了优化:
- 首先按退货/余额 DD
- 然后按回报/净值 DD
两个优化范围及其样本外窗口为:
- Res1 — 示例中:2018.10.10–2024.10.10 | OOS: 2024.10.10–2026.06.26
- Res2 — 示例中:2020.06.26–2026.06.26 | OOS: 2018.10.10–2020.06.26
Res1 和 Res2 是同一历史的互补部分,因此每个范围都验证样本外的另一个范围。 W2 OOS (2018–2020) 位于 W1 IS 内部,W1 OOS (2024–2026) 位于 W2 IS 内部 — 与用于 SomaBTC 的交叉验证 Res1/Res2 模式相同,锚定到可用XTIUSD 历史记录自2018年10月10日起。
这种时间范围 x 广度 x 优化范围的组合产生了多样化。不同的策略会在不同的波动情况下触发,因此股票曲线并不取决于单一的市场行为。
然后过滤每个候选策略:
- 如果策略与另一个剩余策略的相关性太强,它们就会被删除。
- 如果策略与真实报价不匹配或未通过样本外窗口,则该策略将被删除。
- 所有优化都是在启用周五交易关闭的情况下进行的,这消除了基于风险周末缺口的优化。
因此,在那之后,只有 20 个策略幸存下来——7 个来自 Res1,13 个来自 Res2。
按优化范围和波动时间范围划分的最终投资组合:
- Res1 (7):1 D1、1 H12、2 H4、3 H1
- Res2 (13):2 D1、4 H12、2 H8、4 H4、1 H1
- 总计 (20):3 D1、5 H12、2 H8、6 H4、4 H1
作为最后一步,每个策略手数大小均由专有的 Python 投资组合优化器设置,该优化器找到了回报/净值 DD 的最佳组合(具有可选的每个策略 DD 上限)。在 DD 中相关性更强的策略会收到较小的分配,带来更多价值的策略会收到较大的手数分配。 EA 附带四个内置批次分配预设 - 请参阅下面的投资组合风险等级。
投资组合风险等级
这SomaOilPortfolio输入选择四个内置预设之一。所有四个人都运行同样的20个策略;仅针对每个策略LotPerBalance_step价值观发生变化。通过以下方式使用固定尺寸天平 ManualBalanceForLotSizing 当您希望跨账户的结果具有可比性时;使用通常的手数大小输入来衡量风险与账户规模的大小。
- V2.1 - 保守 - 按权益平衡(默认)— 最低权益 - DD 风险等级。
- V2.2 - 中等 - 按权益平衡— 中等权益-DD 风险等级。
- V2.3 - 高风险 - 按权益平衡— 最高权益-DD 风险等级。
- V1.0 - 由余额平衡— 旧余额-DD 手数分配(嵌入每个策略步骤)。保留用于比较/奇偶测试;不是权益-DD 重新平衡。
V2.1 / V2.2 / V2.3是股票-DD 平衡投资组合。V1.0保留旧的天平 - DD 批次步骤并保留用于比较/奇偶校验测试。
神奇数字
每个策略都使用唯一的 8 位幻数,因此 MetaTrader 可以将其交易与其他 EAs 或手动订单区分开来。您将在每个订单和头寸以及策略注释中看到神奇之处(例如 SomaOil #1 81241201)。
这些数字不是随机的——它们编码了策略:
- 第一个数字 — EA 系列(8 = SomaOil)
- 第 2 位 — 优化范围(1 = Res1,2 = Res2)
- 第 3-4 位数字 — 以小时为单位的波动时间范围(01 H1、04 H4、08 H8、12 H12、24 D1)
- 第 5 位数字 — 突破宽度(1 宽、2 中、3 窄)
- 第 6 位 — 优化目标(1 余额 DD,2 权益 DD)
- 第 7–8 位数字 — 研究批次中的原始设置文件 ID
示例:magic 81241201 读作 SomaOil · Res1 · D1 · Broad · Equity DD · set #01。
这样可以轻松识别在终端或账户历史记录中打开交易的策略,而无需打开 EA 设置。
风险和批量大小
有两种尺寸调整模式可供选择:
- 手动手数——每笔交易固定手数
- 每个平衡步骤的手数 — 根据账户资本自动调整规模,按策略缩放
附加控制措施可让您微调风险状况:
- 计算手数之上的全局风险乘数
- 可选 EA 批量上限通过MaxLots( 0 默认 = EA 无限制;仅经纪商规范);设置 > 0 为硬最大值
- 选择余额或净值作为规模基础
- OnlyUp 模式——手数随着资本峰值而增加,但在交易回撤期间不会减少;提款会降低规模峰值,存款会提高规模峰值(两者都会触发立即峰值同步和待处理手数重新平衡)。启动时,EA 从最近的平仓交易历史中播种历史峰值(可配置回溯),因此 OnlyUp 基线从第一个价格变动开始就有意义,而不是在每次重新启动时重置
- 基础货币选择器(USD、EUR、GBP、HKD、SGD 或自定义对),用于在非 USD 账户上正确调整规模
- 与经纪商无关的手数大小——通过 OrderCalcProfit(基线参考 1000)进行基于资金的标准化,以实现经纪商和美分/非 USD 账户之间的可比敞口;仪表板显示合同规范
- 追加保证金保护(默认开启)——在下订单之前,EA 将现有的同侧挂单止损/限价视为已经需要市价订单保证金,因此当经纪商保留很少的挂单时,可用保证金不会过度承诺;它还可以削减计算出的手数,以便最坏情况下的并发同方订单保持在与您的规模基础相关的保证金预算内。仅当您完全控制杠杆和净空时才关闭。
新闻过滤器
SomaOil 包括一个内置的 US 新闻日历,涵盖三种高影响力事件类型:
- NFP — 非农就业人口
- CPI — 消费者价格指数
- IR / FOMC — 央行利率决策
在每个事件期间,EA 都可以独立阻止新条目、取消现有挂单并关闭未平仓头寸。每个策略都有自己的窗口前分钟和窗口后分钟,因此新闻保护是根据策略进行调整的,而不是全局应用的。
经纪商 GMT 可以手动设置或自动检测,因此新闻窗口始终与经纪商时间保持一致,包括夏令时变化。分类器已收紧,以排除常见的误报,例如 ADP 非农就业和 FOMC 演讲/会议记录。
交易窗口
可选的周一开盘/周五收盘窗口可让您避免周末空档。您可以选择是否同时取消挂单或在交易窗口外开仓。
一些策略还使用内置的每日会话窗口(每个策略的开始/结束时间)来避免低流动性时期。这些是投资组合预设的一部分,而不是单独的用户输入。
优化是在周五收盘时执行的,这是默认设置,因此在有风险的周末缺口条件下不会出现过度优化。
扩散过滤器
当经纪商点差过大时,SomaOil 可以避免下突破挂单——这对于原油来说很重要,因为隔夜、新闻和低流动性导致点差扩大。
该过滤器适用于仅挂单。一旦交易开始,正常退出逻辑(SL、TP、追踪、盈亏平衡)将保持不变。
两个全局输入控制行为:
- MaxSpreadPips(默认 80)— 以 MT5 点为单位的最大点差,如 3 位 WTI 报价所示(例如 Market Watch 中的 50 ≈ 0.050 价格)。设为 0 可完全禁用该过滤器。
- RemovePendingSpreadSeconds(默认60) — 在价差保持在限制以上这么多秒之后不间断,该策略的挂单被取消。放0保留放置门,但绝不自动删除待处理的扩散。
放置门— 在每个策略的入场时间条上,如果点差太高,EA 不会放置新的挂单,也不会刷新水平。在短暂的高峰期间,现有的待处理事项将保留在原处。
持续高去除率— 如果点差在整个宽限期内保持高于限制(计时器在低于限制的任何跌幅时重置),则该策略的挂单将被删除。当价差正常化时,它们可以再次放置在稍后的入场柱上。
相同的输入值适用于 2 位和 3 位石油符号(跨经纪商标准化)。有效点限制也通过内置的策略进行缩放DefaultValue和当前的石油参考价格,就像其他投资组合距离一样。
道具公司合规
可选的每笔交易随机点偏移可以通过以下方式应用于进入和退出MaxRandomizationPips。这使您的账户与运行相同 EA 的其他交易者略有不同——对于可能标记相同复制交易模式的自营公司和资金账户很有用。将值设置为零以禁用。
SomaOil 还包括一个可选的合规层(默认情况下关闭):每日最大 DD 锁定、无对冲规则和挂单上限。看EnablePropFirmCompliance以及下面的相关输入。
图表仪表板
SomaOil 在图表上呈现实时仪表板,显示:
- 许可证状态和活跃的产品组合
- 手数基础、有效资本和合同标准化系数
- 风险乘数(当保证金保护减少规模时具有有效乘数)
- 保证金保护 ON/OFF 具有实时每订单手数上限和保证金预算
- 当保护减小尺寸时每侧盖警告
- 挂单和未平仓头寸按买入/卖出划分
- 浮动盈亏和今日平仓盈亏
- 余额和股本减少,绝对值和百分比
- 滑点统计:全天、7天、24小时
- 当前点差和活跃策略计数
- 下一个和最后一个 NFP、CPI 和 IR/FOMC 事件
可以在策略测试器中禁用仪表板(DisableDashboardInTesting,默认打开)或实时/演示图表(DisableDashboardInLive,默认关闭)。
参数
投资组合设置
- SomaOilPortfolio-> 选择四个内置批次分配预设之一(相同的 20 个策略;仅 LotPerBalance_step 发生变化)。默认值:V2.1 保守(按权益)。请参阅上面的投资组合风险等级。
- StrategiesToRun-> 要启用的以逗号分隔的基于 1 的策略编号(默认 1–20);对于隔离子集很有用
覆盖
- EnableMagicOverride-> 启用时,交易 ID 编号分配为 OverrideMagicBase + 策略索引;关闭时(默认)每个策略都使用其内置 ID
- OverrideMagicBase-> 启用魔法覆盖时开始交易 ID 编号
- EnableCommentOverride-> 启用后,所有交易共享一条评论;关闭时(默认)每个策略保持其自己的
- OverrideComment-> 启用注释覆盖时使用的注释文本
贸易方向
- AllowBuyTrades-> 允许多头交易和买方挂单
- AllowSellTrades-> 允许空头交易和卖方挂单
批量大小
- LotsAdjustMinChangePercent-> 更新活跃手数之前的最小变化百分比
- 风险-> ManualLotSize(固定 StartLots)或 LotSizeStep(大写自动)
- AdjustLotsizeToVariableValues-> 当余额或净值变化时重新计算手数
- StartLots-> 手动模式下的固定批次,或步进模式下的楼层参考
- MaxLots-> 可选 EA 批量上限; 0 = 仅经纪商规格
- UseEquity-> 规模来自权益而不是余额
- OnlyUp-> 手数随着资本峰值而增加,并且在交易回撤期间不会减少;提款降低峰值,存款提高峰值
- RestorePeakFromHistory-> 种子 OnlyUp 近期收盘交易历史开始时的峰值
- RestorePeakLookbackDays-> 峰值恢复回顾天数(0 = 所有历史记录)
- ManualBalanceForLotSizing-> > 0 时用于调整规模的固定资本
- RiskMultiplier-> 计算手数的全局乘数
- MarginCallProtection-> 为同方待处理保留保证金,并根据保证金预算限制手数大小
- BaseCurrency-> USD、EUR、GBP、HKD、SGD 或针对非 USD 帐户自定义
- CustomBaseCurrencyPair-> 当 BaseCurrency 为自定义时用于转换的经纪商符号
GMT
- Broker_GMT_OFFSET_Summer-> 夏季手动经纪商 GMT 偏移量(小时)
- Broker_GMT_OFFSET_Winter-> 冬季手动经纪商 GMT 偏移量(小时)
- AutoGMT-> 自动检测代理 GMT(忽略手动偏移)
新闻过滤器
- EnableNFP_Filter-> 启用NFP保护窗口
- NFP_CloseOpenTrades-> NFP 之前平仓
- NFP_ClosePendingOrders->取消NFP之前的挂单
- EnableIR_Filter-> 启用 IR / FOMC 保护窗口
- IR_CloseOpenTrades-> IR 之前平仓
- IR_ClosePendingOrders->取消IR之前的挂单
- EnableCPI_Filter-> 启用CPI保护窗口
- CPI_CloseOpenTrades-> CPI 之前平仓
- CPI_ClosePendingOrders->取消CPI之前的挂单
每个事件之前/之后的每策略分钟数都内置到投资组合中,而不是单独的参数。
交易时间
- UseTradingTimeZones-> 强制执行每周周一至周五窗口
- KillPending-> 取消窗口外的挂单
- KillOpen-> 平仓窗口外的未平仓头寸
- MondayOpenHour / MondayOpenMinute-> 窗口在周一该经纪商时间打开
- FridayCloseHour / FridayCloseMinute-> 窗口周五在此经纪时间关闭
一些策略还使用内置的每日会话窗口(每个策略的开始/结束时间)作为投资组合预设的一部分。这些不是单独的用户输入。
仪表板
- DisableDashboardInTesting-> 在策略测试器中隐藏图表仪表板(默认打开)
- DisableDashboardInLive-> 在实时/演示图表上隐藏图表仪表板(默认关闭)
- DashboardUpdateSeconds-> 仪表板刷新间隔(以秒为单位)
扩散过滤器
- MaxSpreadPips-> 以 MT5 点为单位的最大点差(3 位约定);按策略 DefaultValue 缩放; 0 = 关闭
- RemovePendingSpreadSeconds-> 在点差保持高于限制这么长时间(秒)后删除待处理的订单; 0 = 永不删除
道具公司合规
所有输入默认为关闭/零 — 禁用时性能影响为零。
- MaxRandomizationPips-> 道具公司进入/退出偏移量;与其他 EA 用户相比是唯一的(0 = 关闭)
- EnablePropFirmCompliance-> 主开关;必须为真以下任何规则才能生效
- PF_MaxDailyDrawdownPercent-> 每日最大净值损失占每日基线的百分比(0 = 关闭)
- PF_MaxDailyDrawdownMoney-> 以账户货币计的每日最大净值损失(0 = 关闭)
- PF_DailyResetHour-> 每日窗口重置时的经纪商/服务器时间 (0–23)
- PF_DailyLossBufferPercent-> 硬限制前的安全缓冲(默认10%)
- PF_DisallowHedging-> 阻止相反方向的条目;扫除对面的待决
- PF_MaxTotalPendingOrders-> EA 挂单总数上限(0 = 关闭)
推荐设置
- 代码:WTI 原油 — 将 EA 附加到您经纪商的 US 原油 / WTI 图表。相同的工具通常会在不同的代码下列出;在我们的测试终端中,我们看到:XTIUSD、USOUSD、USOUSD.s、WTI、SpotCrude。 SomaOil 接受以 XTIUSD、USOUSD、USOIL、WTI、SpotCrude 或 CRUDE 开头的符号(经纪商后缀如 .s 或 m 都可以);如果您的经纪商使用其他名称,请打开市场观察并搜索 WTI、原油、石油或 USO 以查找匹配的图表。
- 时间范围:任意(EA 在内部读取自己的时间范围)
- 账户类型:ECN / RAW-点差较小时建议使用点差账户
- 使用适合违约风险的账户资本。每笔交易的计算手数不能低于 0.01,因此较小的账户可能无法进一步降低风险。
- VPS:推荐用于稳定的24/5执行
- 添加 ”https://ea-license-server .索马贸易。组织“ 和 ”https://www.世界时间服务器。 com/" 允许 MT5 中的 URLs(工具 - 选项 - Expert Advisor)
概括
- 单个 WTI (XTIUSD) 图表上有 20 个预先调整的突破策略
- 四个内置投资组合风险预设(V2.1 保守 / V2.2 中 / V2.3 高 权益风险 DD,加上余额 V1.0 DD)
- 两个经过交叉验证的 OOS 优化范围,跨越 2018 年至 2026 年
- 时间范围:D1、H12、H8、H4 和 H1
- 具有盈亏平衡和追踪止损的分层退出
- 集成 US 新闻保护和误报过滤
- 可选挂单价差过滤器(MaxSpreadPips + 持续高去除)
- 可选的进入/退出随机化以实现道具公司的独特性(MaxRandomizationPips)
- 可选的自营公司合规模式(每日最高 DD、无对冲、待定上限)——默认关闭
- 完整的实时图表仪表板
- 透明阶梯定价发布:起始 100 USD,每 10 份 +100 USD,每天最多一次


Very strong product as always :D . I’ve followed Andrew for some time, and he’s remarkably transparent about his methodology for developing this EA - you can clearly see it right from the description. He tests across multiple brokers, which makes it much easier to decide where to run it. Having 20 breakout strategies (mostly on higher timeframes) in a single EA provides solid diversification and stability. Of course, past results don't guarantee future performance, and there might be a month here or there without positive gains. But given the ongoing market demand driving oil prices, the EA is well-positioned to capture those opportunities. I highly recommend Somaoil!