|
一、对于考虑做成自定义指标的程序, 一定要作如下二选一的定义:
- #property indicator_chart_window // 指标在主图表窗口绘制
复制代码 或者
- #property indicator_separate_window // 指标在独立窗口中绘制
复制代码 二、为了设置独立指标窗口的尺度, 要使用如下定义:
- #property indicator_minimum Min_VaLUe
- #property indicator_maximum Max_Value
复制代码 其中 "Min_Value" 和 "Max_Value" 是对应的数值. 例如, 对于自定义指标 RSI 来说, 这些数值必须为0和100.
三、为绘制指标所需的指标数组的数量必须如下定义:
- #property indicator_buffers N//其中N可以在从1到8之间选择.
复制代码 四、指标线的颜色可以由以下定义设置:
- #property indicator_color1 Silver
- #property indicator_color2 Red
- ...
- #property indicator_colorN <SomeColor>
复制代码 其中 N 就是使用 "#define indicator_buffer" 定义的指标数组的数量.
五、如果自定义指标没有设置任何输入参数, 它将以最简单的形式被调用.
- double current_AC = iCustom( NULL, 0, "Accelerator", 0, 0 );
复制代码 前面两个参数分别传入"NULL"和"0"表示会使用当前的图表. 自定义指标的名称使用的是对应文件的名字(不包括mq4的扩展名). 如果倒数第二个参数设为0, 它表示我们只对第一个指标数组有兴趣. 最后一个参数是0表示我们只关心所需指标数组的最后一个元素(也就是说, 最新的, 当前的数值).
六、参数就是按照上面描述的方式通过函数传给自定义指标计算的. 例如, 自定义指标名称为 "Ichimoku", 它的参数有(9,26,52), 将被如下调用:
- iCustom( NULL, 0, "Ichimoku", 9, 26, 52, 0, shift );
复制代码 严格来说, 不一定要把参数传给传给自定义指标函数. 如果程序中没有外部变量, 也就不用传参数. 或者, 如果需要, 可以使用参数描述中的初始值. 例如, 不使用参数调用相同的自定义指标可以如下调用:
- iCustom( NULL, 0, "Ichimoku", 0, shift );
复制代码 这表示变量将使用初始值, 即 "Tenkan", "Kijun", "Senkou", 以及, 9, 26, 和 52. 然而, 如果是在EA交易中调用具有多组参数的自定义指标, 并不推荐使用默认设置.
|
|