分享一个胜率50%盈亏比1.9的ea

avatar
· Views 141

# 智能切换策略EA(SmartSwitchEA)介绍文档

## 一、EA核心定位

SmartSwitchEA 是一款基于 MT5 平台的自动化交易程序,核心优势在于**自动识别市场状态(趋势/震荡)并动态切换交易策略**,通过多指标共振过滤信号,适配不同行情环境,同时内置严格的交易风控规则,实现稳健自动化交易。


## 二、核心交易策略

### 1. 市场状态识别逻辑

EA 通过三大维度综合判断市场类型,避免单一指标误判:

- **均线粘合度**:计算 MA5(快速)、MA10(中期)、MA20(慢速)三条均线的最大价差与当前价格的比例,比例越小说明市场越平稳。

- **布林带宽度**:通过布林带(周期20,标准差2)上下轨间距与中轨的比值,衡量价格波动幅度,比值越小震荡特征越明显。

- **MACD趋势强度**:以 MACD(快线12、慢线26、信号线9)主线与信号线的差值绝对值,判断趋势动能强弱。


**市场状态判定规则**:

| 市场类型 | 判定条件 | 适配策略 |

|----------|----------|----------|

| 震荡市 | 均线粘合度<0.15%(趋势阈值)且布林带宽度<1% | 均值回归策略 |

| 趋势市 | 均线粘合度>0.3%(2倍趋势阈值)且 MACD 强度>0.0005 | 趋势跟踪策略 |

| 未知状态 | 不满足上述两类条件 | 保持当前策略,暂停新信号触发 |


### 2. 分场景交易策略

#### (1)均值回归策略(震荡市专用)

- 核心逻辑:价格在震荡区间内会围绕均值(布林带中轨)波动,偏离均值过远时大概率回归。

- 开仓信号:

  - 做多:价格触及布林带下轨 RSI(周期14)<30(超卖) 价格低于 BBI 指标(3、6、12、24周期均线均值)。

  - 做空:价格触及布林带上轨 RSI>70(超买) 价格高于 BBI 指标。


#### (2)趋势跟踪策略(趋势市专用)

- 核心逻辑:跟随当前趋势方向交易,捕捉趋势延续行情,不逆势操作。

- 开仓信号:

  - 做多:均线多头排列(MA5>MA10>MA20) MACD 金叉(主线>信号线) 价格在 BBI 之上。

  - 做空:均线空头排列(MA5<MA10<MA20) MACD 死叉(主线<信号线) 价格在 BBI 之下。


### 3. 交易风控过滤规则

- 仓位控制:固定手数交易(默认0.1手,可手动调整)。

- 频率控制:两次交易间隔≥1小时,避免频繁开仓;当前有未平仓订单时,暂停新仓触发。

- 环境过滤:仅在点差≤30点、主要交易时段(1-23点)、服务器及品种允许交易的情况下执行操作。



代码这里,mt5 



## 三、关键参数设置

| 参数类别 | 核心参数 | 默认值 | 功能说明 |

|----------------|-------------------------|--------------|------------------------------|

| 趋势判断参数 | MA_Period1/2/3 | 5/10/20 | 三条均线周期,用于趋势识别 |

| 趋势判断参数 | TrendThreshold | 0.0015(0.15%) | 均线粘合度阈值,区分趋势/震荡 |

| 布林带参数 | BB_Period/BB_Deviation | 20/2 | 布林带周期及标准差,衡量波动 |

| MACD 参数 | FastEMA/SlowEMA/SignalSMA | 12/26/9 | MACD 指标标准参数,判断动能 |

| 交易参数 | LotSize | 0.1 | 固定交易手数 |

| 交易参数 | StopLossRatio | 0.02(2%) | 止损比例(基于当前价格) |

| 交易参数 | TakeProfitRatio | 0.04(4%) | 趋势策略止盈比例 |

| 交易参数 | MaxSpread/Slippage | 30/10 | 最大允许点差、滑点容忍度 |


## 四、止盈止损规则

### 1. 止损设置

- 统一规则:按当前价格的固定比例计算,与策略类型无关。

- 计算公式:

  - 做多止损 = 当前价格 × (1 - 止损比例)

  - 做空止损 = 当前价格 × (1 止损比例)

- 示例:当前价格1.2000,止损比例2%,则做多止损=1.2000×0.98=1.1760,做空止损=1.2000×1.02=1.2240。


### 2. 止盈设置

- 趋势跟踪策略:按当前价格的固定比例计算(默认4%),计算公式:

  - 做多止盈 = 当前价格 × (1 止盈比例)

  - 做空止盈 = 当前价格 × (1 - 止盈比例)

- 均值回归策略:固定以布林带中轨为止盈目标(价格回归均值时平仓)。


## 五、核心代码逻辑概览

### 1. 核心流程

```mql5

// 1. 初始化:创建均线、布林带、MACD、RSI 等指标句柄

int OnInit() { ... }


// 2. 每Tick触发:检查交易条件→更新市场状态→执行对应策略

void OnTick() {

    if(!IsTradingAllowed()) return; // 过滤无效交易环境

    UpdateMarketState(); // 识别市场状态(趋势/震荡)

    ExecuteTradingLogic(); // 执行对应策略

}


// 3. 市场状态识别:综合均线、布林带、MACD 指标判断

void UpdateMarketState() { ... }


// 4. 策略执行:根据市场状态切换均值回归/趋势跟踪策略

void ExecuteTradingLogic() {

    if(当前策略为均值回归) ExecuteMeanReversion();

    if(当前策略为趋势跟踪) ExecuteTrendFollowing();

}

```


### 2. 关键函数说明

- `UpdateMarketState()`:核心市场识别函数,输出均线粘合度、布林带宽度、MACD强度等关键数据。

- `ExecuteMeanReversion()`:均值回归策略执行函数,包含多空信号判断、止盈止损计算、开仓逻辑。

- `ExecuteTrendFollowing()`:趋势跟踪策略执行函数,逻辑与上述函数一致,仅信号条件和止盈规则不同。

- `IsTradingAllowed()`:交易环境检查函数,过滤点差过大、非交易时段等无效场景。

Tuyên bố miễn trừ trách nhiệm: Quan điểm được trình bày hoàn toàn là của tác giả và không đại diện cho quan điểm chính thức của Followme. Followme không chịu trách nhiệm về tính chính xác, đầy đủ hoặc độ tin cậy của thông tin được cung cấp và không chịu trách nhiệm cho bất kỳ hành động nào được thực hiện dựa trên nội dung, trừ khi được nêu rõ bằng văn bản.

Bạn thích bài viết này? Hãy thể hiện sự cảm kích của bạn bằng cách gửi tiền boa cho tác giả.
avatar
Trả lời 0

Tải thất bại ()

  • tradingContest