标题:EA策略原理第4篇:非马丁格尔逻辑与波动率自适应EA
多数零售EA之所以失败,是因为依赖马丁格尔或无止损网格。一个稳健的EA建立在三个原则之上:非马丁格尔仓位计算、自适应参数和硬性风险限制。本指南拆解三种可实战的EA逻辑结构。
1. 原则一 – 绝不倍增亏损(反马丁格尔)
马丁格尔在亏损后加倍手数。它产生小额盈利和灾难性的回撤。使用以下替代方案:
```python
# 反马丁格尔逻辑(正确)
if 上一笔盈利 and 权益增长超过5%:
下一笔风险 = 上次风险 * 1.1 # 成功后逐步增加
else:
下一笔风险 = 基础风险 # 亏损后绝不增加
```
2. 原则二 – 波动率自适应入场
静态距离的EA在波动率变化时失效。使用基于ATR的自适应:
```python
# 波动率自适应EA逻辑骨架
atr值 = iATR(交易品种(), PERIOD_H1, 14, 1)
def 获取动态距离():
if atr值 < 15 * Point:
return 15 * Point
elif atr值 < 30 * Point:
return atr值 * 0.8
else:
return 25 * Point # 高波动时封顶
做多入场 = 前一根K线高点 + 获取动态距离()
止损 = 做多入场 - (atr值 * 1.5)
止盈 = 做多入场 + (atr值 * 2.0)
```
3. 原则三 – 三种EA逻辑类型对比
| EA类型 | 逻辑 | 优点 | 缺点 |
|--------|------|------|------|
| 趋势跟踪型 | 价格高于均线+过滤时买入 | 捕捉大行情 | 盘整期频繁假突破 |
| 均值回归型 | 价格超卖时买入(RSI<30) | 胜率高 | 单边趋势中灾难性表现 |
| 混合型 | 根据ADX切换逻辑(ADX>25用趋势,ADX<20用回归) | 适应市场状态 | 需要精细校准 |
4. 完整EA结构 – 稳健模板
每一个实战EA必须包含以下五个模块:
```python
def start():
if not 是否在交易时段(): return
if 是否重大新闻事件(): return
if 获取当前回撤() > 最大回撤百分比(): return
风险百分比 = 基于回撤计算风险()
手数 = 计算手数(风险百分比)
if 趋势跟踪条件():
执行交易(OP_BUY, 手数, 基于ATR的止损(), 基于ATR的止盈())
elif 均值回归条件():
执行交易(OP_BUY, 手数 * 0.7, 紧凑止损(), 回归止盈())
```
5. 马丁格尔陷阱 – 精确数字
假设一个马丁格尔EA:起始0.01手,6层,间距20点。
成熟的网格(固定手数、固定间距、熔断开关)在数学上与马丁格尔有本质区别。
6. EA的复盘要求
不要轻信简单的回测报告。必须满足:
7. 新闻过滤器实现
```python
新闻事件列表 = ["非农", "FOMC", "欧央行", "CPI", "GDP"]
def 是否安全交易():
for 事件 in 新闻事件列表:
if 距离事件发生时间小于30分钟():
return False
return True
```
重大新闻前后30分钟内绝不运行EA。
8. 下一步
第5篇将讲解复盘方法 – Tick数据、行进式分析法和蒙特卡洛模拟。
参考来源:
```