EA-14307 · 时段交易
sentiment_ea
该EA基于市场情绪进行交易,通过比较订单簿中买卖订单数量和成交量的比率来决策。当一方在交易者数量和成交量上均显著占优时开仓,当情绪比率反转或减弱时平仓。交易仅限特定工作日和日内时间窗口。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
暂未回测:这个 EA 还没能自动转换。
策略分析
策略概念是基于市场深度数据中的买卖订单不平衡来判断市场情绪方向,属于订单流/情绪分析策略。入场条件要求买卖交易者数量比和成交量比同时超过设定阈值,且买方或卖方任一方的交易者数量和成交量需分别达到最低要求(MinTraders和MinVolume),仅在CheckTradingTime()定义的交易时段内开仓(周一至周五10:15:30至23:35:30)。开仓后会将阈值切换到较低的维持阈值(MinDiffVolumesEx和MinDiffTradersEx),这是一种滞回机制,避免频繁开平仓。出场条件为:当持仓方向对应的情绪比率跌破维持阈值,或者不在交易时段内时,平仓并重置阈值为开仓阈值。仓位管理为固定手数(Lots参数),无加仓减仓逻辑。资金管理方面仅依赖固定点数的止损和止盈(SlPips和TpPips),无动态调整或比例风险控制。
优势
- 基于订单簿深度的真实市场情绪数据,非技术指标滞后信号
- 滞回机制(开仓阈值与维持阈值分离)减少频繁交易,降低交易成本
- 交易时段过滤有效避开低流动性时段和周末
劣势
- OnTick中使用Sleep()阻塞主线程,严重时会导致终端卡顿或错过行情
- 缺乏持仓检查逻辑,pos变量为int但赋值使用true/false,类型不一致易引发逻辑错误
- 止损止盈用gTickSize而非point计算,在非标准品种上可能不准确
- 没有新bar检查机制,可能在同一bar上反复触发信号
- 平仓逻辑使用tradeResult标志而非真实持仓状态,程序重启后状态丢失
改进建议
- 用EventSetTimer/OnTimer替代Sleep(),避免阻塞主线程并保持EA响应性
- 添加真实持仓查询(PositionSelect)替代pos标志变量,确保重启后状态正确恢复
- 增加新bar检查和点差过滤,避免在不利条件下重复开仓
风险评估
总体风险: 中等
- Sleep()阻塞主线程可能导致无法及时止损平仓,存在延迟风险
- EA重启后tradeResult和pos状态丢失,可能导致重复开仓或无法正确平仓
- 固定手数无动态风控,极端行情下可能承受过大损失
- 买卖量比信号可能在市场深度数据异常时产生虚假信号
评估得分
代码质量2.0
策略逻辑3.0
风险管理2.0
稳健性2.0
创新性3.0
文档1.0
综合2.2
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
MinVolume | 20000 | 最低订单量阈值 |
MinTraders | 1000 | 最低交易者数量阈值 |
DiffVolumesEx | 2.0 | 开仓时买卖成交量比率阈值 |
DiffTradersEx | 1.5 | 开仓时买卖交易者比率阈值 |
MinDiffVolumesEx | 1.5 | 持仓期间成交量比率维持阈值 |
MinDiffTradersEx | 1.3 | 持仓期间交易者比率维持阈值 |
Sleep | 5 | 每次tick间休眠时间(分钟) |
Lots | 1 | 交易手数 |
TpPips | 500 | 止盈点数 |
SlPips | 500 | 止损点数 |
Filling | ORDER_FILLING_RETURN | 订单填充类型 |
同类 EA:时段交易
回测是历史模拟,不代表未来收益,不构成投资建议。