# 匯鹰·对冲 EA v1.00 策略介绍
## 一、产品定位
**匯鹰·对冲 EA v1.00** 是一套基于:
> **双向突破挂单 + 同方向递增加仓 + 反方向对冲 + 分方向均价退出**
构建的 MT4 自动交易系统。
它不是依靠均线、MACD、RSI 等指标预测行情方向的信号型EA,而是通过价格突破、挂单跟随、仓位递增和多空篮子管理,应对震荡、突破、回撤及趋势延续等不同市场状态。
图表中的辅助均线仅供人工观察,不参与自动开仓和加仓判断。EA的交易方向、挂单距离、手数递增、移动止损、反向开仓、时间过滤和面板显示均可独立配置。
---
## 二、策略核心思想
该策略不提前判断市场一定上涨或下跌,而是在当前价格上下预设突破挂单:
* 价格向上突破,触发多单;
* 价格向下突破,触发空单;
* 行情继续沿原方向运行时,可以顺势增加仓位;
* 行情向持仓不利方向回撤时,也可能按固定间距继续建立同方向仓位;
* 单侧持仓达到一定数量后,可以建立反方向仓位,形成双向持仓;
* 多单和空单分别计算加权平均价,分别管理和退出。
因此,它本质上不是单纯趋势EA,也不是单纯逆势网格,而是一套:
> **突破入场、顺逆双向扩仓、分方向管理的混合型对冲系统。**
---
# 三、完整交易流程
## 1. 初始双向挂单
当当前品种、当前魔术号下没有多单和空单时,EA分别计算:
* 多方向:在当前 `Ask` 上方放置 `BUYSTOP`;
* 空方向:在当前 `Bid` 下方放置 `SELLSTOP`。
挂单与当前价格之间的距离由 `FirstStep` 控制。
默认设置:
```text
FirstStep = 60
```
该距离会按照品种报价位数自动转换,并受到经纪商最小挂单距离 `STOPLEVEL` 的限制。
由于多空两个挂单模块都会在空仓状态下运行,因此正常情况下,EA会在价格上下同时布置突破挂单。
---
## 2. 挂单跟随机制
初始挂单建立后,如果价格没有触发挂单,而是向相反方向移动,EA会调整挂单位置,使挂单继续保持在当前市场价格附近。
具体表现为:
* 当价格下跌时,未成交的多方向 `BUYSTOP` 可以向下移动;
* 当价格上涨时,未成交的空方向 `SELLSTOP` 可以向上移动;
* 每次调整必须至少达到 `StepTrallOrders` 设置的移动距离。
默认值:
```text
StepTrallOrders = 15
```
该机制的目的不是追逐已经快速远离的价格,而是让突破触发位置随市场重新定位,减少挂单长期停留在过远位置的问题。
---
## 3. 同方向加仓逻辑
一侧已经产生持仓后,EA会根据该方向订单的:
* 最高开仓价;
* 最低开仓价;
* 当前市场价格;
* 最小挂单距离;
* 核心订单间距;
判断是否继续布置同方向突破挂单。
### 顺势增加仓位
以多单为例:
当新的多方向挂单价格高于现有最高多单价格,并至少满足 `Step` 间距时,可以继续向上追加多方向挂单。
该功能由:
```text
OpenTrend = true
```
控制。
关闭 `OpenTrend` 后,会禁止部分顺势方向的追加条件,但不会关闭逆势间距加仓。
### 逆势增加仓位
当价格向持仓不利方向运行,并且新的挂单位置与现有最低价或最高价达到 `Step` 要求时,EA也可以建立新的同方向挂单。
因此,这套策略同时具备:
* 顺势递增;
* 逆势摊平;
两种扩仓方式。
这也是策略能够提高篮子回本能力的原因,同时也是其主要风险来源。
---
## 4. 手数递增方式
首单使用固定基础手数:
```text
lot
```
后续订单使用以下结构计算:
```text
下一单手数 =
当前已有订单数 × PlusLot
+ lot × K_Lot ^ 当前已有订单数
```
其中:
| 参数 | 作用 |
| ----------- | -------------- |
| `lot` | 首单基础手数 |
| `K_Lot` | 指数递增倍数 |
| `PlusLot` | 每增加一层额外增加的固定手数 |
| `DigitsLot` | 手数保留的小数位数 |
| `MaxLot` | 单笔订单最大手数 |
默认设置:
```text
lot = 0.01
K_Lot = 1.3
PlusLot = 0
DigitsLot = 2
MaxLot = 10
```
当计算出的订单手数超过 `MaxLot` 时,单笔订单手数会被限制在 `MaxLot`。
需要明确:
> `MaxLot`限制的是单笔订单手数,并不限制总持仓手数,也不限制最大订单数量。
手数倍数越高,回本速度可能越快,但保证金消耗和极端行情风险也会呈指数上升。
---
## 5. 反向开仓与对冲机制
当某一方向持仓数量达到:
```text
OppositeOrderThreshold
```
EA可以允许建立反方向挂单。
默认值:
```text
AllowOppositeOrders = true
OppositeOrderThreshold = 4
```
例如:
* 当前已有4笔或更多多单;
* 没有空方向挂单;
* 空方向没有触发浮亏暂停条件;
EA可以重新建立空方向 `SELLSTOP`。
反方向订单成交后,账户可能同时持有多单和空单,进入对冲或锁仓状态。
### 必须说明的实际行为
初始空仓时,EA本身就可能同时建立多空两个挂单。第一侧成交以后,另一侧挂单并不会因为第一侧成交而必然删除。
因此,从当前代码执行流程看:
> 反方向仓位有可能在达到设定门槛之前,由初始保留的另一侧挂单触发。
`OppositeOrderThreshold`主要控制的是:当反方向挂单不存在时,达到多少笔持仓后允许重新补充反方向挂单,而不是绝对禁止门槛之前出现反向持仓。
---
# 四、止盈机制
## 1. 多空分方向管理
EA不会把全部多单和空单合并成一个总篮子退出,而是分别管理:
* 多单篮子;
* 空单篮子。
每个方向分别计算:
```text
加权平均价 =
所有订单开仓价 × 对应手数之和
÷ 该方向总手数
```
多单达到多单目标后,只平多方向订单;
空单达到空单目标后,只平空方向订单。
对应方向平仓时,还会删除该方向尚未成交的挂单。
---
## 2. 均价目标退出
多单目标价:
```text
多单加权均价 + 目标价格距离
```
空单目标价:
```text
空单加权均价 - 目标价格距离
```
目标距离使用:
```text
AvgProfit / TickValue
```
计算。
当市场价格到达相应目标后,EA关闭该方向全部市价单,并删除该方向挂单。
### 重要参数解释
`AvgProfit = 1.0`不能简单理解为:
> “整个篮子盈利1美元就平仓。”
它实际是通过经纪商提供的 `TickValue` 折算成价格距离,没有结合该方向总手数和 `TickSize`进行完整的固定金额反算。
因此,不同品种、不同合约、不同经纪商下,相同的 `AvgProfit`可能产生不同的实际账户盈利结果。
更准确的叫法应当是:
> **均价目标距离参数。**
---
# 五、移动止损机制
EA支持三种移动止损模式:
| `TrailingStop` | 模式 |
| -------------: | --------- |
| `0` | 关闭移动止损 |
| `1` | 根据K线高低点移动 |
| `2` | 根据分形位置移动 |
| `>2` | 使用固定平台点距离 |
移动止损还受到以下条件限制:
* 止损位置必须越过该方向的篮子平均价;
* 至少达到 `MinProfit` 设置的盈利距离;
* 新止损必须比旧止损推进 `TrailingStep`;
* 必须符合经纪商的最小止损距离;
* `delta`可以在K线或分形位置基础上增加偏移。
移动止损最终写入每一笔市价订单的服务器止损位置,而不是只在图表上虚拟显示。
当:
```text
TF_Tralling = 0
```
移动止损使用当前图表周期。
因此,虽然开仓逻辑基本不依赖挂载周期,但使用K线或分形移动止损时,改变图表周期会改变止损行为。实盘运行期间不应随意切换周期。
---
# 六、浮亏限制机制
`MaxLoss`用于限制单侧继续加仓。
例如:
```text
MaxLoss = 1000
```
当多方向浮动盈亏,包括手续费和库存费,达到 `-1000`或更低时:
* 暂停多方向继续增加仓位;
* 图表显示多方向亏损达到限制;
* 已有多单不会因此自动平仓;
* 已有亏损不会被锁定;
* 不会触发账户级强制止损。
空方向采用相同逻辑。
这意味着:
> `MaxLoss`是“停止继续加仓线”,不是“最大亏损止损线”。
---
## 固定止损参数说明
当前版本虽然显示:
```text
StopLoss
```
但该参数属于预留参数,尚未接入实际固定止损或篮子强平逻辑。源码参数注释也明确标注其当前未接入执行链。
因此,不能把它当成真正有效的最大风险保护。
---
# 七、时间过滤与冷却机制
## 时间过滤
启用:
```text
sj = true
```
后,EA只允许在服务器时间满足以下条件时建立新挂单:
```text
Hour() > star
并且
Hour() < end
```
默认:
```text
star = 1
end = 20
```
由于使用严格的大于和小于判断,实际允许的整数服务器小时为:
```text
02:00至19:59
```
不是完整的01:00至20:59。
---
## 全平冷却
当EA检测到市价持仓从有单变为空仓时,会启动:
```text
PauseMinutes
```
设置的冷却时间。
冷却期间EA暂停新的交易管理循环,冷却结束后重新允许开仓。相关状态会显示在面板中。
需要注意:冷却逻辑本身不会主动删除之前遗留的服务器挂单。已有服务器挂单仍有可能被市场触发。
---
# 八、报价和执行适配
EA可以根据品种报价位数自动转换:
* `FirstStep`
* `MinDistance`
* `Step`
* 第二档距离参数
同时会读取经纪商:
```text
MODE_STOPLEVEL
```
避免挂单距离低于平台允许的最小值。
滑点参数:
```text
SlippagePoints = -1
```
表示自动设置:
* 三位或五位报价:30个平台点;
* 二位或四位报价:0个平台点。
也可以手动输入固定允许滑点。
当前版本没有独立的最大点差过滤参数,面板虽然显示实时点差,但不会因为点差过高自动禁止开仓。
---
# 九、控制面板功能
面板实时显示:
* 账户余额;
* 当前净值;
* 可用保证金;
* 实时点差;
* 多单数量和总手数;
* 空单数量和总手数;
* 多空加权平均价;
* 多方向浮动盈亏;
* 空方向浮动盈亏;
* 当前总盈亏;
* 当前运行状态;
* 首单手数、首单距离和递增倍数。
面板提供以下人工控制按钮:
| 按钮 | 功能 |
| --- | ------------------ |
| 做多 | 按首单手数直接建立市价多单 |
| 做空 | 按首单手数直接建立市价空单 |
| 平盈利 | 平掉当前所有盈利市价单 |
| 平亏损 | 平掉当前所有亏损市价单 |
| 平多 | 平掉全部多单 |
| 平空 | 平掉全部空单 |
| 全平 | 平掉全部多空市价单,并删除本EA挂单 |
面板支持拖动、展开和最小化。最小化后只保留“匯鹰.对冲 +”短条。
“平盈利”“平亏损”“平多”和“平空”主要处理市价持仓;需要连同挂单一起清除时,应使用“全平”。
---
# 十、挂载与使用要求
## 运行平台
```text
MetaTrader 4
```
## 适用品种
代码具备报价位数自适应能力,技术上可以加载到:
* 黄金;
* 白银;
* 外汇;
* 原油;
* 股指;
* 其他MT4差价合约品种。
但参数不能跨品种直接照搬。
黄金的1点、外汇的1点以及股指的1点,对应的价格距离、波动率、点值和保证金完全不同。
## 挂载周期
开仓逻辑主要基于实时价格、挂单位置和已有订单,不依赖图表指标信号,因此没有唯一固定开仓周期。
但是:
* `TrailingStop=1`或`2`;
* `TF_Tralling=0`;
时,当前图表周期会直接影响移动止损。
实盘应固定一个周期运行,不要运行中随意切换。
## 魔术号
同一品种运行多套EA或多组参数时,必须使用不同的:
```text
Magic
```
否则不同图表上的订单可能被合并管理、平仓或修改。
---
# 十一、策略优势
1. **无需预测方向**
通过价格上下突破挂单等待市场选择方向。
2. **多空独立管理**
多方向和空方向分别计算均价、盈亏和退出目标。
3. **兼顾趋势与回撤**
同方向仓位既可以顺势增加,也可以在回撤中按间距增加。
4. **挂单自动跟随**
未成交挂单能够随市场重新定位,避免长期远离现价。
5. **支持对冲状态**
可以同时持有多空仓位,在反复行情中分别寻找退出机会。
6. **人工接管方便**
面板可以快速平盈利单、亏损单、单侧仓位或全部仓位。
7. **报价位数适配**
能够适配不同报价精度及经纪商最小挂单距离。
---
# 十二、主要风险
## 1. 递增仓位风险
该策略采用指数递增手数。
当行情持续单边运行,或多次反复触发挂单时,订单数量、总手数和保证金需求可能迅速增加。
---
## 2. 没有有效的固定总止损
当前版本:
* 新订单初始止损为0;
* `StopLoss`没有接入执行;
* `MaxLoss`只停止加仓;
* 没有账户净值止损;
* 没有总浮亏强平;
* 没有最大总订单数量;
* 没有最大总持仓手数。
因此,该策略不能定义为低风险系统。
---
## 3. 对冲不等于风险消失
同时持有多空仓位只能暂时降低净方向敞口。
它不能消除:
* 已经产生的浮亏;
* 双边点差;
* 双边手续费;
* 库存费;
* 保证金占用;
* 后续解锁难度。
错误的对冲可能把浮亏固定下来,并持续消耗账户资金。
---
## 4. 依赖终端持续在线
均价止盈和浮亏暂停属于EA本地逻辑,不是所有订单都提前设置服务器止盈。
当出现以下情况时,EA可能无法及时执行:
* MT4关闭;
* VPS断线;
* 网络延迟;
* 经纪商服务器无响应;
* 自动交易被关闭;
* EA被移除。
实盘必须使用稳定VPS,并持续检查EA运行状态。
---
## 5. 点差和滑点风险
当前版本没有最大点差拦截。
在以下时间段,成交成本和滑点可能明显扩大:
* 重大数据公布;
* 市场开盘和收盘;
* 流动性不足时段;
* 周末前后;
* 经纪商报价异常时。
---
# 十三、实际使用原则
* 首单手数必须根据账户资金和品种保证金设定;
* 不要因为历史回测盈利就提高 `K_Lot`;
* `MaxLot`应设置为账户真实能够承受的单笔上限;
* 小资金账户不应使用过高倍数;
* 使用前必须进行长周期回测、模拟盘和小资金实盘测试;
* 回测必须加入真实点差、手续费、库存费和滑点;
* 同一品种多开时必须使用不同魔术号;
* 实盘期间保持MT4、VPS和自动交易持续开启;
* 重大数据和流动性异常时段应谨慎运行;
* 必须持续监控总手数、保证金比例和单侧订单数量。
---
# 十四、策略总结
**匯鹰·对冲 EA v1.00** 的核心不是精准预测行情,而是通过双向突破挂单捕捉波动,通过递增仓位调整持仓均价,通过反向仓位应对行情反复,再以多空分方向均价目标完成退出。
它的优势是交易逻辑直接、自动化程度高、适应多种价格运动方式;它的弱点也非常明确:**递增仓位、缺少固定总止损、对资金规模和行情极端程度高度敏感。**
因此,这套EA更准确的定位应当是:
> **一套具有高资金利用率和高风险特征的双向突破递增对冲系统,而不是低风险、保本或保证盈利的交易工具。** |
|