IndicatorCreate
IndicatorCreate
函数返回以 MqlParam 类型参量数组为基础建立的特定技术计时器处理。
int IndicatorCreate(
string symbol, // 交易品种名称
ENUM_TIMEFRAMES period, // 时间表
ENUM_INDICATOR indicator_type, // ENUM_INDICATOR列举中的指标类型
int parameters_cnt=0, // 参量号
const MqlParam& parameters_array[]=NULL, // 参量数组
);参量
- symbol
[in] 交易品种名称,指标计算数据,NULL 表示当前交易品种。
- period
[in] 时间表的值可以是 ENUM_TIMEFRAMES 值中的一个,0代表当前时间表。
- indicator_type
[in] 指标类型,可以是 ENUM_INDICATOR 值中的一个。
- parameters_cnt
[in] 参量的数量在_array[]参量数组中传递,数组元素类型有特殊的结构类型 MqlParam。默认,0-参量不传递。如果指定参量的非零数量,参量 parameters_array 是强制的,可以传递超过64个参量。
- parameters_array[]=NULL
[in] MqlParam 类型数组,元素包括类型和每个技术指标输入参数的类型值。
返回值
返回特定技术指标的处理,错误返回 INVALID_HANDLE。
注释
如果IND_CUSTOM类型指标处理建立,数组中第一元素的 type域,输入参量parameters_array一定是ENUM_DATATYPE 中的TYPE_STRING值,第一元素类型string_value域一定包括自定义指标名称。自定义指标必须在MQL5/Indicators客户端或者子目录中编辑。
需要测试的指标是指自动从iCustom()函数调用,如果相应的参数是通过一个通用的常量字符串集合。对于其它情况下(使用IndicatorCreate() 函数或一个非常量字符串设定指标名称)该属性#property tester_indicator是必需的:
#property tester_indicator "indicator_name.ex5"在第一调用形式自定义指标中,当传递输入参量时可以加上数据参量。如果"Apply to"参量没有明确规定,默认计算是以 PRICE_CLOSE 值为基础的。
示例:
void OnStart()
{
MqlParam params[];
int h_MA,h_MACD;
//--- 创建 iMA("EURUSD",PERIOD_M15,8,0,MODE_EMA,PRICE_CLOSE);
ArrayResize(params,4);
//--- 设置 ma_period
params[0].type =TYPE_INT;
params[0].integer_value=8;
//--- 设置 ma_shift
params[1].type =TYPE_INT;
params[1].integer_value=0;
//--- 设置 ma_method
params[2].type =TYPE_INT;
params[2].integer_value=MODE_EMA;
//--- 数组 applied_price
params[3].type =TYPE_INT;
params[3].integer_value=PRICE_CLOSE;
//--- 创建 MA
h_MA=IndicatorCreate("EURUSD",PERIOD_M15,IND_MA,4,params);
//--- 创建 iMACD("EURUSD",PERIOD_M15,12,26,9,h_MA);
ArrayResize(params,4);
//--- 设置快速 ma_period
params[0].type =TYPE_INT;
params[0].integer_value=12;
//--- 设置慢速 ma_period
params[1].type =TYPE_INT;
params[1].integer_value=26;
//--- 为不同性设置平滑周期
params[2].type =TYPE_INT;
params[2].integer_value=9;
//--- 设置指标处理程序为 applied_price
params[3].type =TYPE_INT;
params[3].integer_value=h_MA;
//--- 创建基于移动平均数的MACD
h_MACD=IndicatorCreate("EURUSD",PERIOD_M15,IND_MACD,4,params);
//--- 使用指标
//--- . . .
//--- 发布指标 (首先 h_MACD)
IndicatorRelease(h_MACD);
IndicatorRelease(h_MA);
}