管理图表元素的可见性
枚举类型 ENUM_CHART_PROPERTY_INTEGER 中的大量特性用于控制图表元素的可见性。几乎所有这些特性均为布尔类型:true对应显示元素,false 对应隐藏元素。例外情况是 CHART_SHOW_VOLUMES,它使用 ENUM_CHART_VOLUME_MODE 枚举(见下文)。
标识符 |
说明 |
值类型 |
|---|---|---|
CHART_SHOW |
常规价格图表显示。如果设置为 false,则将禁用所有价格图表特性的渲染,并移除图表边缘的所有填充内容:时间和价格刻度、快速导航栏、日历事件标记、交易图标、指标和柱线工具提示、指标子窗口、成交量直方图等。 |
bool |
CHART_SHOW_TICKER |
在左上角显示交易品种代码。禁用交易品种代码会自动禁用 OHLC(CHART_SHOW_OHLC) |
bool |
CHART_SHOW_OHLC |
在左上角显示 OHLC 值。启用 OHLC 会自动启用交易品种代码(CHART_SHOW_TICKER) |
bool |
CHART_SHOW_BID_LINE |
将买价显示为一条水平线 |
bool |
CHART_SHOW_ASK_LINE |
将卖价显示为一条水平线 |
bool |
CHART_SHOW_LAST_LINE |
将最新价显示为一条水平线 |
bool |
CHART_SHOW_PERIOD_SEP |
显示相邻周期之间的垂直分隔线 |
bool |
CHART_SHOW_GRID |
在图表上显示网格线 |
bool |
CHART_SHOW_VOLUMES |
在图表上显示成交量 |
ENUM_CHART_VOLUME_MODE |
CHART_SHOW_OBJECT_DESCR |
显示对象的文本描述(并非所有类型的对象都会显示描述) |
bool |
CHART_SHOW_TRADE_LEVELS |
在图表上显示交易价位(开仓价位、止损位、止盈位和挂单价位) |
bool |
CHART_SHOW_DATE_SCALE |
在图表上显示日期刻度 |
bool |
CHART_SHOW_PRICE_SCALE |
在图表上显示价格刻度 |
bool |
CHART_SHOW_ONE_CLICK |
在图表上显示快速交易面板(“一键交易”选项) |
bool |

在设置对话框中部分 ENUM_CHART_PROPERTY_INTEGER 特性的标志
对于其中部分特性,用户可通过图表上下文菜单使用,而一些特性只能通过设置对话框使用。还有一些设置只能在 MQL5 中更改,特别是垂直 (CHART_SHOW_DATE_SCALE) 刻度和水平 (CHART_SHOW_DATE_SCALE) 刻度的显示,以及整个图表的可见性 (CHART_SHOW)。最后一种情况尤其值得注意,因为关闭渲染功能是通过图形对象 图形资源 和 图形对象创建自定义程序界面的理想解决方案,无论 CHART_SHOW 的值如何,这些对象始终会被渲染。
这本书附带脚本 ChartBlackout.mq5,该脚本每次运行时会将 CHART_SHOW 模式从当前状态切换为相反状态。
void OnStart()
|
因此,你可以在常规图表上应用该脚本以完全清空窗口,然后再次应用它以恢复先前的外观。
上述 ENUM_CHART_VOLUME_MODE 枚举包含以下成员:
标识符 |
说明 |
值 |
|---|---|---|
CHART_VOLUME_HIDE |
成交量已隐藏 |
0 |
CHART_VOLUME_TICK |
分时报价成交量 |
1 |
CHART_VOLUME_REAL |
交易成交量(如有) |
2 |
与脚本 ChartMode.mq5类似,我们在脚本ChartElements.mq5 中实现了图表元素的可见性监控功能。主要区别在于所控制的标志集合不同。
void OnStart()
|
此外,在创建设置备份后,我们会通过编程方式主动禁用时间刻度和价格刻度(当脚本结束时,会从备份中恢复这些设置)。
...
|
以下是日志片段,包含了关于所采取操作的注释。前两条记录的出现,正是因为在创建初始备份后,MQL 代码中禁用了刻度显示。
CHART_SHOW_DATE_SCALE 1 -> 0 // disabled the time scale in the MQL5 code
|