MQL5参考自定义交易品种CustomSymbolCreate 

CustomSymbolCreate

在指定组以指定名称创建一个自定义交易品种。

bool  CustomSymbolCreate(
   const string     symbol_name,         //自定义交易品种名称
   const string     symbol_path="",      // 将要创建交易品种的组的名称
   const string     symbol_origin=NULL   //交易品种的名称,该交易品种用作创建自定义交易品种的依据
   );

参数

symbol_name

[in]  自定义交易品种名称。它不应包含交易品种所在的组或分组。

symbol_path=""

[in]  交易品种所在的组名。

symbol_origin=NULL

[in]  交易品种的名称,已创建自定义交易品种的属性将在此复制。创建自定义交易品种之后,可以使用相应的函数将任何属性值更改为必要的属性值。

返回值

true – 成功,否则 – false。若要获得错误信息,请调用GetLastError()函数。

注意

所有自定义交易品种都在特殊的“自定义”部分创建。如果没有指定组名(CustomSymbolCreate函数中的symbol_path 参数包含空字符串或NULL),那么自定义交易品种在“自定义”根部分生成。在这里,我们可以与文件系统进行类比,其中组和子组可以被视为文件夹和子文件夹

交易品种和组的名称只能包含拉丁字母,不可带有标点符号,空格或特殊字符(只可以包括以下符号".","_","&" 和 "#")。不建议使用下列字符<,>,:,",/,|,?,*。

无论创建所在的组名是什么,自定义交易品种名称都应该是独一无二的。如果已存在同名的交易品种,CustomSymbolCreate()函数返回“false",而之后的GetLastError()调用返回错误5300 (ERR_NOT_CUSTOM_SYMBOL)或5304 (ERR_CUSTOM_SYMBOL_EXIST)。

交易品种名称的总长度不应超过31个字符。否则,CustomSymbolCreate()返回"false",并激活错误5302 – ERR_CUSTOM_SYMBOL_NAME_LONG。

symbol_path参数可以有两种设置方式:

  • 只有组名而没有自定义交易品种的名称,例如 – "CFD\\Metals"。最好使用此选项来避免错误。
  • 或者<组>名称 + 组分隔符"\\"+<自定义交易品种名称>,例如 – "CFD\\Metals\\Platinum"。在这种情况下,组名应该以自定义交易品种的确切名称结束。如果不匹配,自定义交易品种仍会被创建,但却不在预期的组中。例如,如果symbol_path="CFD\\Metals\\Platinum" 和symbol_name="platinum"(注册错误),那么名为"platinum"的自定义交易品种会创建在"Custom\CFD\Metals\Platinum"组中。SymbolInfoGetString("platinum",SYMBOL_PATH)函数返回"Custom\CFD\Metals\Platinum\platinum"值。

 

请注意,SYMBOL_PATH属性返回末位带有交易品种名称的路径。因此,如果您希望在完全相同的组中创建自定义交易品种,则无法在不更改的情况下复制它。在这种情况下,为了不得到上面描述的结果,需要删除交易品种名称。

如果不存在的交易品种被设置为symbol_origin参数,那么自定义交易品种创建为空,就好像未设置symbol_origin参数一样。这种情况下,激活错误4301 – ERR_MARKET_UNKNOWN_SYMBOL。

symbol_path参数长度不应超过127个字符,如果该参数在末尾指定,要考虑"Custom\\","\\"组分隔符和交易品种名称。

 

另见

SymbolNameSymbolSelectCustomSymbolDelete