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().

Примечание

Все пользовательские символы создаются в специальном разделе Custom. Если имя группы не задано (параметр symbol_path в функции CustomSymbolCreate содержит пустую строку или NULL), то пользовательский символ будет создан в корне раздела Custom. Здесь можно провести аналогию с файловой системой, где группы-подгруппы могут рассматриваться как папки-подпапки

Имя символа и название группы задается только латинскими буквами без знаков препинания, пробелов и спецсимволов (допускаются ".", "_", "&" и "#"). Не рекомендуется использовать в названии символы <, >, :, ", /, |, ?, *.

Имя пользовательского символа должно быть уникальным независимо от названия группы, в котором он создается. Если символ с таким именем уже существует, то функция 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\\", разделителей групп "\\" и имени символа, если оно указано в конце.

 

Смотри также

SymbolName, SymbolSelect, CustomSymbolDelete