TradingSession Canvas
- 指标
- 版本: 1.0
- 激活: 10
一、这是什么
----------------------------------------------------------------
TradingSession Canvas 是一个纯显示类图表指标,用于在图表上
以"半透明色块"的方式直观标出每一天的三大交易时段:
1. 亚洲时段(Asia) 默认 01:00 开始
2. 欧洲时段(Europe) 默认 10:00 开始
3. 美洲时段(America) 默认 16:00 开始
每个时段用一个独立画布(CCanvas)绘制:
- 半透明色块铺满该时段的时间范围与价格范围;
- 时段内最高价(High)画红色横线;
- 时段内开盘价(Open)画白色横线;
- 时段内最低价(Low)画青色横线;
- 每条横线旁附 H:/O:/L: 白色价格标签;
- 色块左上角显示"时段名: High-Low"幅度标签。
注意:本指标仅做可视化展示,不包含任何交易功能,也不会自动
开仓、平仓或修改订单,因此不需要开启 Algo Trading。
----------------------------------------------------------------
二、安装与加载
----------------------------------------------------------------
1. 将 TradingSession Canvas.mq5 文件放入:
MQL5\Indicators\AI\ 目录
2. 在 MetaEditor 中打开并编译(或直接使用已编译的 ex5)。
3. 回到 MetaTrader 5,在"导航器 -> 自定义指标 -> AI"下找到
"TradingSession Canvas",拖放到任意图表即可。
4. 也可以双击该指标,在弹出对话框中调整参数后点击"确定"。
该指标适用于任意品种、任意时间周期(建议在日线以下的周期
观察效果更佳,色块会随图表缩放自动适配)。
----------------------------------------------------------------
三、界面说明
----------------------------------------------------------------
指标加载后,图表上会出现以下元素:
1. 时段色块(半透明)
- 亚洲时段色块(默认 MediumSeaGreen 墨绿色)
- 欧洲时段色块(默认 Goldenrod 金黄色)
- 美洲时段色块(默认 Crimson 深红色)
色块上边界=时段最高价,下边界=时段最低价,
左边界=时段开始时间,右边界=时段结束时间。
2. 三条水平横线(颜色固定)
- 红色横线 = 时段 High(最高价)
- 白色横线 = 时段 Open(开盘价,取自时段第一根K线)
- 青色横线 = 时段 Low(最低价)
3. 价格标签(白色,Consolas 等宽字体)
- H: xxx 贴右上角,位于 High 线下方
- O: xxx 贴中间,位于 Open 线间隙较大的一侧
- L: xxx 贴右下角,位于 Low 线上方
4. 幅度标签(左上角,随时段颜色)
- 格式:Asia: 12.34 / Europe: 8.90 / America: 15.67
- 内容为时段 High 与 Low 的差值(涨跌幅度)
- 字号随图表缩放级别自动调整
----------------------------------------------------------------
四、操作指南
----------------------------------------------------------------
本指标无需任何操作,加载后自动运行:
1. 加载后立即绘制最近 N 天(默认 3 天)的时段色块,
当天在前、历史日在后。
2. 缩放 / 平移图表时,色块自动跟随图表比例重新对齐。
3. 跨越到新的一天时,自动重建全部色块。
4. 当天盘中 High/Low 变化时,自动刷新当天色块与标签。
如需调整显示内容,右键图表 -> "指标列表" -> 双击该指标,
修改参数后确定即可(详见第五节)。
----------------------------------------------------------------
五、参数说明
----------------------------------------------------------------
参数共 8 个,分组如下:
【显示天数】
InpShowDays = 3
显示的天数。从当天向前追溯,绘制最近 N 天的时段色块。
数值越大,图表上色块越多。
【时段设置】
InpAsiaStartHour = 1 (亚洲时段开始小时)
亚洲时段开始的小时数(服务器时间)。取值范围须满足
Asia < Europe < America。
InpAsiaSession = clrMediumSeaGreen(亚洲时段颜色)
亚洲时段色块与幅度标签的颜色。
InpEuropeStartHour = 10 (欧洲时段开始小时)
欧洲时段开始的小时数。
InpEuropeSession = clrGoldenrod(欧洲时段颜色)
欧洲时段色块与幅度标签的颜色。
InpAmericaStartHour = 16 (美洲时段开始小时)
美洲时段开始的小时数,不得超过 24。
InpAmericaSession = clrCrimson(美洲时段颜色)
美洲时段色块与幅度标签的颜色。
【透明度】
InpTransparency = 10 (色块透明度 0~255)
色块填充的透明度。0=完全不透明,255=完全透明。
数值越小色块越浓、越醒目;越大越淡、越不遮挡K线。
参数校验规则:必须满足 Asia < Europe < America 且
America <= 24,否则指标拒绝加载并提示参数错误。
----------------------------------------------------------------
六、交互细节与运行规则
----------------------------------------------------------------
1. 独立画布机制
每个时段块使用独立的 OBJ_BITMAP 画布对象,锚定在
(时段开始时间, 时段最高价)。色块对象名前缀带程序名,
因此可与其它 Canvas 类指标(如 SLTP_Zones_Canvas)
同图共存,互不干扰。
2. 图层顺序
色块画布 ZORDER = -100,置于K线之上、所有 GUI 窗口之下,
OBJPROP_BACK = true,不遮挡行情数据。
3. 自动重绘时机
- 首次加载 / 跨日:全量重建所有色块;
- 当天新时段刚开始(数据尚未产生时):按小时重试补建;
- 盘中 High/Low 变化:刷新当天数据并重绘;
- 图表缩放 / 滚动(CHARTEVENT_CHART_CHANGE):全部重绘。
4. 无数据时的处理
某一天或某个时段没有行情数据(例如休市日、未开盘),
该色块自动跳过,不绘制、不报错。
5. 动态字号
价格标签字号 = -80 - chart_scale * 10(随缩放级别变化),
幅度标签字号 = 8 + chart_scale,均随图表缩放自动适配。
----------------------------------------------------------------
七、注意事项与常见问题
----------------------------------------------------------------
1. 本指标是纯显示工具,没有交易功能,也不会修改任何订单。
若需要可视化拖拽修改持仓 SL/TP 的功能,请使用
SLTP_Zones_Canvas 的 EA 版本(Experts\AI 目录)。
2. 时段小时数以服务器时间为准,请根据经纪商服务器时区
调整 Asia/Europe/America 的开始小时,使其与真实交易时段
对齐(例如服务器为 UTC+2 时,可适当调整)。
3. 参数不合法时(Asia >= Europe 或 Europe >= America 或
America > 24),指标加载失败并在"专家"日志中输出:
Error: session hours must be Asia < Europe < America
4. 色块宽度随图表缩放变化:缩得越小色块越窄,放大后
恢复正常;这是画布跟随图表坐标的正常行为。
5. 如果图表上色块不显示,请检查:
- 指标是否已编译并成功加载;
- 当前品种/周期是否有对应日期的行情数据;
- 图表是否处于"显示时段外数据"等特殊状态。
6. 删除指标后,所有色块对象会随指标自动清理,不留残留。
----------------------------------------------------------------
八、功能清单速览
----------------------------------------------------------------
[x] 半透明时段色块:亚洲 / 欧洲 / 美洲,颜色可自定义
[x] 时段 High 红色横线 + H: 价格标签
[x] 时段 Open 白色横线 + O: 价格标签
[x] 时段 Low 青色横线 + L: 价格标签
[x] 左上角"时段名: High-Low"幅度标签(随缩放变字号)
[x] 支持最近 N 天显示(默认 3 天,当天优先)
[x] 随图表缩放 / 滚动自动重绘
[x] 跨日自动重建、盘中 High/Low 变化自动刷新
[x] 参数校验(Asia < Europe < America 且 America <= 24)
[x] 独立画布对象,可与其它指标同图共存
[x] 纯显示、无交易操作,不需要 Algo Trading
