Exp_CenterOfGravityOSMA
该EA基于CenterOfGravityOSMA指标进行交易,该指标是结合重心计算与双重平滑移动平均的振荡器信号。当OSMA直方图从下降转为上升时开多仓,从上升转为下降时开空仓,具有可配置的止损止盈水平。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
| 品种 | 盈亏 | 年化 | 最大回撤 | 交易数 | 胜率 | 夏普 | 恢复因子 | 最长连亏 | 每笔期望 | 状态 |
|---|---|---|---|---|---|---|---|---|---|---|
| EURUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | 暂不支持转换 |
| GBPUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | 暂不支持转换 |
| USDJPY | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | 暂不支持转换 |
| XAUUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | 暂不支持转换 |
这个 EA 从未交易的原因:转换后没有留下任何开仓规则。
由 MQL5 自动转换为 Python,所有 EA 使用同一套规则回测:按 MT5 手数计仓(外汇每手 10 万单位、黄金每手 100 盎司),1:100 杠杆,同一时间只有一张挂单,净值跌破初始资金 10% 时强平。夏普比率按权益曲线计算。标为不可靠的结果仅供参考。
爆仓风险: 未发现爆仓模式
代码里没有发现常见的爆仓模式,回测中账户也没有爆仓。但这不是保证,任何 EA 都可能亏钱。
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
策略概念基于CenterOfGravityOSMA指标的动量反转信号,该指标通过对价格的重心计算产生振荡值,再经过两轮平滑处理得到类似MACD的直方图。入场条件:当macd[1]<macd[2](前期下降)且macd[0]>macd[1](当前回升)时产生买入信号;当macd[1]>macd[2](前期上升)且macd[0]<macd[1](当前回落)时产生卖出信号。出场条件通过BuyPosClose和SellPosClose参数控制是否在反向信号时平仓,同时使用固定的StopLoss和TakeProfit进行止损止盈。仓位管理通过MM参数控制手数比例,MMMode参数选择手数计算模式(固定手数或基于保证金的百分比)。资金管理依赖TradeAlgorithms.mqh库提供的标准化下单函数,支持滑点控制(Deviation参数)和信号时间戳避免重复下单。该策略本质上是一个动量反转系统,捕捉短期振荡器方向的拐点。
优势
- 策略逻辑清晰,基于振荡器拐点的动量反转交易具有明确的方向性
- 支持独立的买入/卖出开仓和平仓控制,灵活性高,可根据市场条件单独启用或禁用
- 使用NewBar检查避免同一K线内重复交易,减少过度交易和信号噪音
- 具有固定止损止盈设置,提供基本的风险控制框架
劣势
- 止损止盈使用固定点数而非ATR动态计算,在不同波动率环境下适应性差
- 缺少加仓和仓位追踪机制(如移动止损),盈利交易可能因回撤而损失利润
- 指标参数较多且缺乏自适应机制,在市场状态变化时容易失效
- 没有考虑点差和手续费对交易成本的影响,在小周期交易中可能侵蚀利润
- 双重平滑可能导致信号滞后严重,错过最佳入场时机
改进建议
- 将固定止损止盈改为基于ATR的动态计算,以适应不同市场波动率环境
- 增加移动止损(Trailing Stop)功能,保护已盈利仓位并让利润充分奔跑
- 增加点差过滤和交易时段过滤,避免在高点差时段和不利时段开仓
- 考虑增加指标参数的自适应优化机制,根据近期市场状态动态调整平滑周期
风险评估
总体风险: 中等
- 固定止损1000点/止盈2000点数值较大,在某些品种上可能超出合理范围导致实际无保护
- 振荡器反转信号在趋势行情中容易产生频繁的虚假信号导致连续亏损
- 缺少最大回撤控制和单日最大亏损限制,极端行情下可能遭受重大损失
- 依赖自定义指标CenterOfGravityOSMA,若指标文件缺失则EA初始化失败
评估得分
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
MM | 0.1 | 资金管理比例,控制开仓手数大小 |
MMMode | LOT | 手数计算模式:固定手数或基于保证金的百分比 |
StopLoss_ | 1000 | 止损点数 |
TakeProfit_ | 2000 | 止盈点数 |
Deviation_ | 10 | 最大允许滑点点数 |
BuyPosOpen | true | 是否允许买入开仓 |
SellPosOpen | true | 是否允许卖出开仓 |
BuyPosClose | true | 是否在卖出信号时平多头仓位 |
SellPosClose | true | 是否在买入信号时平空头仓位 |
InpInd_Timeframe | PERIOD_H4 | 指标计算的时间周期 |
SignalBar | 1 | 用于获取交易信号的K线索引 |
Period_ | 10 | 重心振荡器的计算周期 |
SmoothPeriod1 | 3 | 第一轮平滑移动平均周期 |
MA_Method_1 | MODE_SMA | 第一轮平滑移动平均方法 |
SmoothPeriod2 | 3 | 第二轮平滑移动平均周期 |
MA_Method_2 | MODE_SMA | 第二轮平滑移动平均方法 |
AppliedPrice | PRICE_CLOSE_ | 指标计算所用的价格类型 |
同类 EA:动量
回测是历史模拟,不代表未来收益,不构成投资建议。