Camovia Tray™

Blog · 精选推荐

MQL4与MQL5中绘制填充矩形的实用指南:MetaTrader开发者必备

Camovia Tray 团队 · 2026-09-11

每个MetaTrader开发者都曾经历过这样的时刻。你刚刚编写完一个自定义指标或脚本,需要在图表上直观地标出某个特定价格区域——比如支撑位、突破区间或时段划分。你写好了ObjectCreate()函数,定义了OBJ_RECTANGLE,然后编译。但当你把程序挂到图表上时,矩形看起来却不尽如人意。在MT4中,它是实心填充的,遮住了下方的价格走势;而在MT5中,它只是一个空心轮廓,几乎看不清。如何在两个平台上正确设置填充状态,就是这样一个看似微小却足以让完美实现功亏一篑的关键细节。

困惑的根源在于,两个MetaTrader版本对同一视觉属性的处理方式不同。在MQL4中,OBJPROP_BACK属性控制矩形是否填充。将其设为false表示不填充(透明),而设为true或保持默认状态则生成一个不透明的实心色块。如果你有MQL4的开发背景,可能会本能地在MQL5中尝试同样的方法。但在MQL5中,OBJPROP_BACK仅控制对象是绘制在图表K线图后方还是前方——它与填充状态毫无关系。要在MQL5中获得填充矩形,你需要使用OBJPROP_FILL属性并将其设为true

我们来看一个典型场景。假设你正在构建一个区间突破指标,该指标会绘制一个填充矩形来直观标记盘整区域。在MT4中,创建空心方框的代码大致如下:

ObjectCreate("RangeBox", OBJ_RECTANGLE, 0, time1, price1, time2, price2);
ObjectSet("RangeBox", OBJPROP_BACK, false);

如果你将此逻辑直接移植到MT5,则需要调整为:

ObjectCreate(0, "RangeBox", OBJ_RECTANGLE, 0, time1, price1, time2, price2);
ObjectSetInteger(0, "RangeBox", OBJPROP_FILL, true);

正如MQL5文档所述,OBJPROP_FILL正是用于此目的的专用属性,它同样适用于三角形、椭圆等其他形状。

那么,如果需要在实时更新的图表上管理这些对象呢?你可能希望方框能跟随最新价格。一种实用的做法是重绘矩形,使其第二个锚点始终绑定当前时间,从而确保高亮区域随行情移动。但反复创建和删除图形对象会消耗大量计算资源,可能拖慢图表性能——尤其在同时管理多个实例时,这种影响尤为明显。因此,高效的工作流程就显得很重要。如果你频繁地在编码、在MT4中测试指标、再移植到MT5之间切换,那么在不同终端窗口间来回切换就会成为一种额外的干扰。

这时,像Camovia Tray这样的工具就能带来微妙而实用的便利。虽然它不会替你写代码,但可以优化你的开发和测试环境。Camovia Tray允许你直接从系统托盘运行最小化的MetaTrader 4或5实例。它让你能快速查看实时报价,甚至管理持仓,而无需恢复完整的终端窗口。你不再需要在众多打开窗口中用Alt+Tab费力地寻找终端,只需将鼠标悬停在托盘图标上,就能查看新的价格变动是否触发了你的矩形条件。你的图表和脚本可以在后台持续运行,而你只需在任务栏上那一个不显眼的位置,就能完成开发与测试的管理。

无论你是在调试一个遍历图表上所有矩形以切换其填充状态的for循环,还是在MQL5的ObjectSetInteger函数中细致地设置OBJPROP_FILL属性,焦点都应当放在逻辑本身,而不是窗口管理上。通过将MT5或MT4妥善收入后台,Camovia Tray让你能保持这份专注,确保你的开发环境与你的代码一样精简高效。

MT5 / MT4 都能变成托盘工具

悬停看行情,管理持仓,一键隐藏。

下载 Camovia Tray

常见问题

需要安装 MT5/MT4 吗?需要终端一直开着吗?

需要。Camovia Tray 从你本地运行的 MT5/MT4 终端读取行情与持仓数据,所以终端需要安装、运行并处于登录状态。MT5 免 EA 直连;MT4 需挂载一次随附的桥接 EA(设置里一键复制 + 导航器双击即可,见文档)。

我的行情和持仓数据会被上传吗?

不会。行情与持仓数据 100% 从本地 MT5/MT4 终端读取,不离开你的电脑。详见隐私政策。

支持哪些系统和终端?

Windows 10 / 11,终端为 MetaTrader 5 或 MetaTrader 4(需安装并登录;MT4 需挂载一次桥接 EA)。

MT4 挂载桥接 EA 安全吗?需要开启什么?

安全。桥接 EA 是本应用随附的本地桥(CamoviaBridge),只在本机读取行情/持仓并执行平仓指令,无任何 DLL、不上传数据。平仓功能需要点亮 MT4 工具栏的「自动交易」(AutoTrading) 按钮。

热门品种交易时段速查

开盘收盘时间、周末休市与实时开闭市状态: