SLTP Zones Canvas
- 实用工具
- 版本: 1.10
- 更新: 20 八月 2026
- 激活: 10
一、这是什么?
--------------------------------------------------------
这是一个 TradingView 风格的开仓/止盈/止损可视化面板 EA。
它会把当前图表品种【所有持仓】的开仓价(Open)、止盈(TP)、
止损(SL)以半透明色块的形式直接画在 K 线图上,并支持:
* 鼠标拖拽直接修改止盈止损
* 一键平仓
* 清除 / 设置 SL、TP
* 无需打开下单对话框
【重要】为什么是 EA 而不是指标?
MetaTrader 5 不允许指标执行交易操作(交易请求会被客户端
拦截,返回 retcode 0 / [unknown retcode 0])。因此这个能
修改持仓、平仓的版本必须做成 EA 才能正常工作。
--------------------------------------------------------
二、安装与加载
--------------------------------------------------------
1. 将 SLTP_Zones_Canvas.mq5 放到 MQL5\Experts\AI\ 目录
(已就位),在 MetaEditor 中按 F7 编译生成 .ex5。
2. 打开终端 -> 导航器(Navigator)-> Expert Advisors ->
AI -> SLTP_Zones_Canvas。
3. 将它拖到你想监控持仓的图表上(例如 XAUUSD 任意周期)。
4. 确认工具栏上的"算法交易"(Algo Trading)按钮为绿色
开启状态,否则 EA 的一切交易请求都会被拦截。
5. 挂载后立即显示色块;持仓变化、图表缩放/滚动会自动跟随。
提示:EA 只显示【当前图表品种】的持仓。想同时监控多个
品种,可以在每个品种的图表上各挂一个。
--------------------------------------------------------
三、界面说明
--------------------------------------------------------
每笔持仓会绘制以下内容:
TP 色块(绿色半透明) : 开仓价到止盈价之间的区域,左右带竖线
SL 色块(红色半透明) : 开仓价到止损价之间的区域
TP 标签方块 : TP: 价格 | +点数 | +金额 货币 (线上方)
SL 标签方块 : SL: 价格 | -点数 | -金额 货币 (线下方)
Open 标签方块 : ▲BUY/▼SELL 手数 开仓价 | Ratio: 盈亏比 | ±浮动盈亏
关闭按钮(×) : Open 方块左侧,点击 = 平仓
(平时白底黑×,悬停变红底白×)
取消 SL 按钮(×) : SL 方块右侧,点击 = 清除止损(SL置0,TP保留)
取消 TP 按钮(×) : TP 方块右侧,点击 = 清除止盈(TP置0,SL保留)
SL▼ / TP▲ 设置按钮 : 新开单没有 SL/TP 时出现,按住上下拖动即可设置
多笔持仓时每单独立成组、互不干扰;拖住某单的 Open 方块可让它置顶显示。
--------------------------------------------------------
四、操作指南
--------------------------------------------------------
1. 修改止盈/止损(核心功能)
- 在 TP 或 SL 标签方块上按住鼠标左键上下拖动。
- 拖动时出现贯穿全图的预览线(TP=深绿,SL=深红),
右侧实时显示目标价位的预计盈亏。
- 松手即提交修改(成功播放 ok 音;价位不合法则拒绝并播放 timeout 音)。
2. 移动色块位置(仅视觉,不影响持仓)
- 在 Open 方块上按住鼠标左键水平拖动,整组色块左右移动,
方便让出色块遮挡的 K 线区域。
3. 一键平仓
- 点击 Open 方块左侧的 × 按钮,直接按市价平掉该笔持仓。
4. 清除止损 / 止盈
- 点击 SL 方块右侧的 × = 清除止损。
- 点击 TP 方块右侧的 × = 清除止盈。
- 按钮靠近图表右边缘放不下时,会自动翻转到方块左侧,
提示框也跟随换边,始终可点击。
5. 为新持仓设置 SL / TP
- 持仓没有止损/止盈时,Open 方块右侧会出现 SL▼(红)和
TP▲(绿)小按钮。
- 按住对应按钮上下拖动到目标价位,松手即设置完成。
--------------------------------------------------------
五、参数说明(EA 属性 -> 输入参数)
--------------------------------------------------------
参数 默认值 说明
--------------------------------------------------------
InpTPColor Lime TP 色块颜色
InpSLColor Red SL 色块颜色
InpZoneAlpha 20 色块填充透明度(0-255,越小越透明)
InpLabelAlpha 120 标签方块背景透明度(0-255)
InpShowLabels true 是否显示价格标签方块
InpShowOpenLine true 是否显示开仓标签(Open 方块)
InpLabelFontSize 15 标签文字字号(像素)
InpExtendBars 280 色块向右延伸的像素宽度
(0 = 一直延伸到图表右边缘)
InpRedrawMS 300 自动刷新间隔(毫秒;0 = 仅持仓变化时刷新)
内部固定值:SLTP_MIN_RIGHT_VISIBLE = 50
(色块左边缘距图表右边缘的最小可见像素,保证始终可点击,不可调)
--------------------------------------------------------
六、交互细节与规则
--------------------------------------------------------
* 悬停高亮:鼠标移到方块上会提亮背景并显示类型色边框;
移到 × 按钮上变红底白×,并弹出 "Close" / "Cancel" 提示。
* 拖拽锁定:拖动期间图表自动锁定平移,松手后恢复,防止误滚动。
* 防误触:只有"按下起点在方块内"才会触发拖拽/点击,
拖动其他窗口经过不会误操作。
* 合法性校验(松手时):
买单: SL 必须 < 市价(Bid);TP 必须 > Bid 且 >= 开仓价
卖单: SL 必须 > 市价(Ask);TP 必须 < Ask 且 <= 开仓价
违反规则 -> 播放 timeout.wav 并拒绝提交;成功 -> 播放 ok.wav
* 音效:ok.wav / timeout.wav 已内嵌,无需额外文件。
* 刷新机制:50ms 定时器检测持仓快照变化(开仓价/SL/TP 变化
即重绘),并按 InpRedrawMS 限频跟随价格与图表缩放。
--------------------------------------------------------
七、注意事项与常见问题
--------------------------------------------------------
1. 必须作为 EA 加载。Indicators\AI 下的同名指标版无法交易,
仅可显示。
2. 不要把指标版与本 EA 同时挂在同一图表(两者共用画布对象名
AI_SLTP_Zones_Canvas,会互相覆盖)。
3. 交易前确保"算法交易"已开启;拖拽修改、平仓是真实交易
操作,请谨慎使用。
4. 部分经纪商对挂单距离、最小止损距离有限制,以经纪商规则为准。
5. 图表品种与持仓品种一致时才会显示;同一品种多笔持仓都会显示。
6. 感觉拖拽卡顿可适当调大 InpRedrawMS;想改变色块长度请调整
InpExtendBars。
--------------------------------------------------------
八、功能清单速览
--------------------------------------------------------
[x] TP/SL 半透明色块可视化(TradingView 风格)
[x] 拖拽修改止盈止损(带实时预览线与盈亏提示)
[x] 拖 Open 方块平移色块、多单置顶
[x] 一键平仓 × 按钮
[x] 清除 SL / 清除 TP × 按钮(右缘自动翻转 + 提示框跟随)
[x] 新单无止损时的 SL▼ / TP▲ 快速设置按钮
[x] 悬停高亮、Close/Cancel 提示、成功/拒绝音效
[x] 持仓变化与图表缩放自动跟随刷新
========================================================
