程序属性 (#property)
每个mql5-程序都允许指定额外的名为#property的特殊参数,有助于客户端不用启动程序就能够进行贴切的互联网服务。首先,它包括指标外部设置。包括文件中描述的属性完全忽略。属性必须在mql5-主文件中指定。
#property identifier value |
编译器在执行模块配置中编写声明值。
常数 |
类型 |
描述 |
---|---|---|
icon |
将用作EX5程序图标的图形文件路径。 路径规范规则与资源规则一样。属性必须指定在MQL5源代码的主模块。图标文件必须是 ICO 格式。 |
|
link |
链接到公司网站 |
|
copyright |
公司名 |
|
version |
程序版本,最大31位字符 |
|
description |
mql5-程序的简单文本描述。现存几种描述,每个描述文本中的一行。包括换行所有描述总长度不能超过511个字符。 |
|
stacksize |
循环调用堆栈大小 |
|
library |
|
|
indicator_applied_price |
指定默认值到“应用到”字段。如果属性没有指定,您可以指定一个 ENUM_APPLIED_PRICE值,默认值为PRICE_CLOSE |
|
indicator_chart_window |
|
显示图表窗口指标 |
indicator_separate_window |
|
显示独立窗口指标 |
indicator_height |
修正指标子窗口的像素高度 (属性 INDICATOR_HEIGHT) |
|
indicator_buffers |
指标计算缓冲区 |
|
indicator_plots |
指标图解系列 数目 |
|
indicator_minimum |
独立指标窗口底部比例限制 |
|
indicator_maximum |
独立指标窗口顶部比例限制 |
|
indicator_labelN |
为数据窗口显示的N-th 图解系列设置标签。对于需要多指标缓冲(DRAW_CANDLES, DRAW_FILLING and others)的图解系列,通过分号“;”规定标签名。 |
|
indicator_colorN |
N行颜色,N为图解系列的数量;从1开始计数 |
|
indicator_widthN |
图解系列粗线条,N为图解系列数量,从1开始计数 |
|
indicator_styleN |
图解系列 的线型,由ENUM_LINE_STYLE 值指定。N为图解系列数量,从1开始计数 |
|
indicator_typeN |
绘图种类,由ENUM_DRAW_TYPE值指定。N为图解系列数量,从1开始计数 |
|
indicator_levelN |
独立指标窗口中N水平线 |
|
indicator_levelcolor |
指标水平线颜色 |
|
indicator_levelwidth |
指标粗水平线 |
|
indicator_levelstyle |
指标水平线类型 |
|
script_show_confirm |
|
运行脚本前显示确认窗口 |
script_show_inputs |
|
运行脚本前显示属性窗口,禁止确认窗口 |
tester_indicator |
以“indicator_name.ex5”形式命名自定义指标。如果相关参数通过常量字符串设置,自动定义调用iCustom()函数需要测试的指标。对于其他情况下(使用函数IndicatorCreate()或者使用无常量字符串的参数设置指标名)属性是必须的 |
|
tester_file |
双引号中(作为常数字符串)扩展指示测试文件名。指定的文件传送到测试。若需要的话,测试的输入文件必须被指定。 |
|
tester_library |
双引号中扩展程序库名。程序库有dll或者ex5扩展名。需要测试的程序库自动定义。然而,如果任何程序库用于自定义指标,属性是必须的。 |
|
tester_set |
带有输入参数的值和步骤的设置文件的名称。在测试和优化之前,这个文件被传递到测试器。作为一个常数字符串,文件名以一个扩展名和双引号来指定。 如果您在设置文件的名称中将EA名称和版本号指定为"<expert_name>_<number>.set",那么它会被自动添加到<number>版本号下的参数版本的下载菜单。例如,"MACD Sample_4.set"名称意味着这是一个版本号为4的"MACD Sample.mq5" EA设置文件。 若要研究这种格式,我们建议您在策略测试中手动保存测试/优化设置,然后打开以这种方式创建的设置文件。 |
|
tester_no_cache |
当执行优化时,策略测试会将所执行传递的所有结果保存到优化缓存,在这里测试结果被保存在每组输入参数中。这允许在对相同参数进行重新优化期间使用现有的结果,而不会浪费时间重新计算。
但是在一些任务中(例如,在数学计算中),则可能必须进行计算,而无论优化缓存中是否提供现有结果。在这种情况下,该文件应该包括tester_no_cache属性。测试结果仍被存储在缓存中,因此您可以在策略测试中看到关于已执行传递的所有数据。 |
|
tester_everytick_calculate |
在策略测试中,只有访问指标数据时才会计算指标,即当请求指标缓冲区的值时。如果您不需要获得每个报价的指标值,那么这可以极大地加快测试和优化的速度。
通过指定tester_everytick_calculate属性,您可以在每次报价时启用强制指标计算。
策略测试中的指标也可以在下列情况下在每次报价时强制计算:
这项功能只应用在策略测试中,而程序端指标则总是在每次收到报价时进行计算。 |
|
optimization_chart_mode |
指定将用于优化结果可视化的两个输入参数的图表类型和名称。例如,“3d、InpX、InpY”表示结果将显示在3D图表中,坐标轴基于测试的InpX和InpY参数值。因此,该属性支持将直接在程序代码中显示优化图表和图表类型的参数规格。 可选项:
或者,您只能指示图表类型,而无需指定一个或两个输入参数。在这种情况下,程序端将选择所需的参数来显示优化图表。 |
描述和版本号的任务样本
#property version "3.70" // EA交易的当前版本
|
指定指标缓存独立标签示例(“C开盘价;C最高价;C最低价;C收盘价”)
#property indicator_chart_window
|