一、系统概述
黑马双向网格交易系统是一款专为MetaTrader 4平台设计的全自动智能交易EA(Expert Advisor)。系统采用双向网格交易策略,同时管理多空两个方向的订单,通过科学的仓位管理和动态间距调整,在震荡行情中实现稳定盈利。
- 全自动化运行,无需人工盯盘
- 双向交易,震荡行情游刃有余
- ATR动态间距,智能适应市场波动
- 趋势追踪,顺势而为
- 多重风险控制,保障资金安全
二、核心功能
📊 智能网格交易
支持最多40档加仓网格,动态调整加仓间距,智能应对不同规模的头寸。
📈 ATR动态间距
根据市场波动率自动调整加仓间距,低波动时缩小间距,高波动时扩大间距。
🔄 双向持仓管理
同时管理多空两个方向,根据市场方向自动选择顺势或逆势加仓。
📉 追踪止损
整单止盈后启动追踪功能,从最高点回撤指定点数才平仓,不踏空行情。
🔒 每日自动锁仓
周五收盘前自动锁仓,周一开盘后自动解锁,隔夜风险降至最低。
🛡️ 多重风险控制
最大亏损保护、点差过滤、止损等待等多重机制,全方位保护资金安全。
三、参数设置
3.1 授权设置
| 参数 | 默认值 | 说明 |
|---|---|---|
LicenseKey | 空 | 授权密钥,联系客服获取 |
3.2 基础设置
| 参数 | 默认值 | 说明 |
|---|---|---|
StopAfterCloseAll | false | 平仓后是否停止交易 |
ScheduleTrading | true | 启用定时交易(周五停/周一开) |
StartLot | 0.01 | 首单开仓手数 |
FirstTakeProfit | 1000 | 首单止盈点数 |
MagicBuy | 888001 | 买单识别码 |
MagicSell | 888002 | 卖单识别码 |
3.3 加仓序列设置
| 参数 | 默认值 | 说明 |
|---|---|---|
LotSequencePreset | PRESET_11 | 手数序列预设(1=保守/1.1倍,2=均衡/1.2倍,3=激进/1.3倍,99=自定义) |
LotSequence | 40个数值 | 补仓手数序列(自定义模式使用) |
MaxLotLimit | 3.0 | 单笔最大手数限制 |
LotMultiplier | 1.0 | 涡轮增压(所有手数乘以此倍率) |
3.4 动态间距设置
| 参数 | 默认值 | 说明 |
|---|---|---|
BaseStep | 1000 | 基础加仓间距(1-9单使用,单位:点) |
Step10to15 | 1500 | 10-14单加仓间距 |
Step15to20 | 2000 | 15-19单加仓间距 |
Step20to25 | 2500 | 20-24单加仓间距 |
Step25to30 | 3000 | 25-29单加仓间距 |
Step30to35 | 3500 | 30-34单加仓间距 |
Step35to40 | 4000 | 35-39单加仓间距 |
Step40Plus | 5000 | 40单以上加仓间距 |
StepMultiplier | 1.0 | 动态加仓减速器 |
UseATRMode | true | 是否启用ATR动态间距 |
ATRRatio | 1.0 | ATR间距倍率 |
当 UseATRMode=true 时,实际加仓间距 = 基础间距 × ATR倍率
3.5 整单止盈设置
| 参数 | 默认值 | 说明 |
|---|---|---|
MergeOrdersCount | 2 | 触发整单止盈的订单数量 |
MergeTakeProfit | 1000 | 整单止盈点数 |
EnableTrailingStop | true | 是否启用追踪止损 |
TrailingStopStep | 500 | 追踪回撤点数(从最高点回撤多少点平仓) |
3.6 风险控制设置
| 参数 | 默认值 | 说明 |
|---|---|---|
MaxLossProtection | 5000 | 最大亏损保护金额(美元) |
LossPerPoint | 1 | 每点价值(美元) |
EnableSpreadFilter | true | 是否启用点差过滤 |
MaxSpread | 600 | 最大允许点差 |
LossWaitSeconds | 600 | 止损后等待秒数(0=禁用) |
3.7 每日锁仓设置
| 参数 | 默认值 | 说明 |
|---|---|---|
EnableDailyCloseLock | true | 启用每日收盘锁仓 |
DailyCloseTime | "20:50" | 每日锁仓时间(服务器时间) |
DailyUnlockTime | "22:00" | 每日解锁时间(周一至周四) |
MondayUnlockTime | "01:30" | 周一解锁时间 |
周一至周四:DailyCloseTime → DailyUnlockTime 期间锁仓
周五:DailyCloseTime 后持续锁仓,直到周一 MondayUnlockTime
周六、周日:全天锁仓
3.8 趋势追踪设置
| 参数 | 默认值 | 说明 |
|---|---|---|
UseAlphaAITrend | true | 使用黑马趋势指标判断区间 |
UseTrendFollowAdd | true | 启用趋势顺势加仓 |
TrendAddInterval | 500 | 趋势加仓盈利间隔(点) |
TrendAddLotMultiplier | 1.3 | 趋势加仓手数倍率 |
TrendAddMaxLot | 0.3 | 趋势加仓单笔最大手数 |
TotalProfitTakeProfit | 10 | 整体浮盈止盈(0=禁用) |
TrendSingleStopLoss | 200 | 趋势对冲锁仓阈值 |
TrendSingleTakeProfitStart | 50 | 趋势止盈启动阈值 |
TrendSingleTakeProfit | -200 | 趋势回调止盈阈值 |
四、交易逻辑
4.1 开仓逻辑
首单开仓条件:
- 非锁仓状态(非每日锁仓、非手动锁仓)
- 非止损等待期内
- 点差未超过限制
- 未触发最大亏损保护
- 账户未停止交易
网格加仓逻辑:
4.2 平仓逻辑
单订单止盈(订单数 < MergeOrdersCount 时):
- 买单:价格 ≥ 开仓价 + FirstTakeProfit点 且盈利 > 0
- 卖单:价格 ≤ 开仓价 - FirstTakeProfit点 且盈利 > 0
整单止盈(订单数 ≥ MergeOrdersCount 时):
- 买单:价格 ≥ 均价 + MergeTakeProfit点
- 卖单:价格 ≤ 均价 - MergeTakeProfit点
追踪止损流程:
确保在趋势行情中不止盈离场,不踏空大行情,同时锁定已有盈利。
4.3 锁仓机制
每日收盘锁仓:
每日 DailyCloseTime 触发,按手数差开一单锁仓单对冲,清除所有止盈线。
手动一键锁仓:
点击面板按钮,按手数差开一单锁仓单,锁仓后禁止开单,需手动解锁。
趋势对冲锁仓:
当趋势方向浮亏达到 TrendSingleStopLoss 时,自动开对冲单锁仓,趋势切换或浮盈回到正数时自动解锁。
五、面板说明
5.1 面板显示内容
| 标签 | 显示内容 |
|---|---|
| 标题 | 黑马双向网格交易系统 |
| 授权状态 | 已授权/未授权/模拟模式 |
| 锁仓状态 | [锁仓中] 或 [正常] + 定时交易状态 |
| 买单统计 | 订单数、手数、均价、浮盈 |
| 卖单统计 | 订单数、手数、均价、浮盈 |
| 止盈价格 | 买单/卖单的止盈和止损价格 |
| ATR信息 | ATR值、倍率(颜色表示波动率) |
| 趋势状态 | 多头/空头/震荡区间 |
| 浮亏信息 | 最大浮亏、当前浮亏 |
5.2 ATR颜色说明
5.3 按钮功能(右下角两行)
第一行按钮:
| 按钮 | 功能 |
|---|---|
| 盈利平多 | 平掉所有盈利的买单 |
| 盈利平空 | 平掉所有盈利的卖单 |
| 停止做多 | 禁止开买单(已有订单不受影响) |
| 停止做空 | 禁止开卖单(已有订单不受影响) |
| 一键锁仓 | 按手数差开锁仓单锁定头寸 |
| 停止交易 | 停止所有开仓和平仓操作 |
第二行按钮:
| 按钮 | 功能 |
|---|---|
| 趋势加多 | 在趋势多头方向顺势加仓 |
| 趋势加空 | 在趋势空头方向顺势加仓 |
| 多单全平 | 平掉所有买单 |
| 空单全平 | 平掉所有卖单 |
| 全部平仓 | 平掉所有订单 |
| 允许反向 | 允许反向网格加仓 |
六、时间控制
6.1 定时交易控制
| 时间点 | 操作 |
|---|---|
| 周五 16:00 | 自动停止交易(如启用ScheduleTrading) |
| 周一 MondayUnlockTime | 自动开启交易 |
6.2 每日锁仓时间段
| 日期 | 锁仓时段 |
|---|---|
| 周一至周四 | DailyCloseTime ~ DailyUnlockTime |
| 周五 | DailyCloseTime 后持续锁仓至周一 |
| 周六、周日 | 全天锁仓 |
6.3 冷却机制
| 冷却类型 | 时间 | 说明 |
|---|---|---|
| 平仓冷却 | 10秒 | 防止4112错误时疯狂重试 |
| 止盈修改冷却 | 5秒 | 防止高频OrderModify |
| 趋势加仓冷却 | 10毫秒 | 同一tick内避免多次触发 |
| 4112错误冷却 | 10秒 | 检测到断线后停止操作 |
七、风险控制
7.1 最大亏损保护
7.2 点差过滤
当 EnableSpreadFilter=true 且当前点差 > MaxSpread 时,跳过本次交易执行。
7.3 止损等待机制
止损后等待 LossWaitSeconds 秒,等待期内:
- 面板显示倒计时
- 禁止同方向开单
- 允许反方向开单
7.4 趋势单边保护
| 参数 | 说明 |
|---|---|
| TrendSingleStopLoss | 趋势方向浮亏达到此值时,开启对冲锁仓 |
| TrendSingleTakeProfitStart | 盈利达到此值才启动止盈追踪 |
| TrendSingleTakeProfit | 从最高点回调到此值时平仓 |
交易存在风险,请根据自身风险承受能力合理设置 MaxLossProtection 参数。建议初始仓位控制在账户资金的 5%-10% 以内。
八、浮亏计算器
九、快速入门
9.1 首次使用步骤
9.2 推荐参数设置
保守型(适合新手/小资金):
| StartLot | 0.01 |
| LotSequencePreset | PRESET_11(1.1倍) |
| MergeOrdersCount | 3 |
| MaxLossProtection | 账户资金的10% |
均衡型(适合有一定经验的用户):
| StartLot | 0.01 |
| LotSequencePreset | PRESET_12(1.2倍) |
| MergeOrdersCount | 2 |
| MaxLossProtection | 账户资金的15% |
激进型(适合大资金/专业用户):
| StartLot | 0.01 |
| LotSequencePreset | PRESET_13(1.3倍) |
| MergeOrdersCount | 2 |
| MaxLossProtection | 账户资金的20% |
十、常见问题
Q1: EA显示"未授权"怎么办?
请确保已输入有效的授权密钥。如未获取密钥,请联系客服购买。
Q2: 为什么EA没有自动开仓?
请检查:
- 是否勾选了"允许实时自动交易"
- 是否处于锁仓时间段
- 点差是否超过限制
- 账户是否已触发最大亏损保护
Q3: 如何让EA只在特定时间交易?
启用 ScheduleTrading=true,系统会在周五收盘停盘,周一开盘自动开启。
Q4: 锁仓后如何解锁?
在每日锁仓时间段结束后(周一至周四的 DailyUnlockTime),系统会自动解锁。如需手动解锁,点击"一键锁仓"按钮即可(会执行解锁操作)。
Q5: 追踪止损如何工作?
当订单数达到 MergeOrdersCount 且触发整单止盈后,如果 EnableTrailingStop=true,系统会记录最高/最低价,从该价格回撤 TrailingStopStep 点时平仓。
Q3: 可以同时运行多个EA吗?
可以,但需要确保每个EA使用不同的 MagicBuy 和 MagicSell 识别码,避免相互干扰。