CustomSymbolCreate

Cria um símbolo personalizado com o nome especificado no grupo definido.

bool  CustomSymbolCreate(
   const string     symbol_name,         // nome do símbolo personalizado
   const string     symbol_path="",      // nome do grupo em que será criado o símbolo
   const string     symbol_origin=NULL   // nome do símbolo com base no qual será criado o símbolo personalizado
   );

Parâmetros

symbol_name

[in]  Nome do símbolo personalizado. Ele não deve conter grupos ou sub-grupos em que se encontre o símbolo.

symbol_path=""

[in]  Nome do grupo em que é criado o símbolo.

symbol_origin=NULL

[in]  Nome do símbolo a partir do qual serão copiadas as propriedades do símbolo personalizado gerado. Depois de criar um símbolo personalizado, você pode alterar qualquer propriedade para o valor desejado com as funções correspondentes.

Valor retornado

true, em caso de sucesso, caso contrário, false. Para obter informações sobre o erro, você deve chamar a função GetLastError().

Observação

Todos os símbolos personalizados são gerados na seção especial Custom. Se o nome de grupo não for especificado (o parâmetro symbol_path na função CustomSymbolCreate contém uma string vazia ou NULL), o símbolo personalizado será criado na raiz da seção Custom. Aqui você pode fazer uma analogia com o sistema de arquivos, onde grupos e subgrupos podem ser vistos como pastas e subpastas

O nome do símbolo e descrição do grupo são definidos apenas por caracteres latinos sem pontuação, espaços e caracteres especiais (são permitidos ".", "_", "&" e "#"). Não é recomendado usar - nos nomes dos símbolos - os caracteres <, >, :, ", /, |, ?, *.

O nome do símbolo personalizado deve ser único, independentemente do nome do grupo em que ele é criado. Se já existir um símbolo com o mesmo nome, a função CustomSymbolCreate() retornará false, enquanto a chamada subsequente de GetLastError() gerará o erro 5300 (ERR_NOT_CUSTOM_SYMBOL) ou 5304 (ERR_CUSTOM_SYMBOL_EXIST).

O nome do símbolo não deve exceder 31 caracteres, caso contrário, CustomSymbolCreate() retornará false e será gerado o ero 5302 — ERR_CUSTOM_SYMBOL_NAME_LONG.

Parâmetro symbol_path pode ser definido de duas maneiras:

  • apenas o nome do grupo sem o nome do símbolo personalizado, por exemplo — "CFD\\Metals". É melhor usar essa opção para evitar erros.
  • ou nome de <grupo> + separador de grupo "\\"+<nome de símbolo personalizado>, por exemplo — "CFD\\Metals\\Platinum". Nesse caso, o nome do grupo deve terminar com o nome exato do símbolo personalizado. Mesmo em caso de incompatibilidade, o símbolo personalizado será criado, mas não no grupo pretendido. Por exemplo, se symbol_path="CFD\\Metals\\Platinum" e symbol_name="platinum" (erro no registro), será criado o símbolo personalizado com o nome "platinum" no grupo "Custom\CFD\Metals\Platinum". Nesse caso, a função SymbolInfoGetString("platinum",SYMBOL_PATH) retornará o valor "Custom\CFD\Metals\Platinum\platinum".

 

Deve-se ter em mente que a propriedade SYMBOL_PATH retorna o caminho com o nome do símbolo no final. Portanto, você não pode simplesmente copiá-lo sem alterações, se quiser criar um símbolo personalizado exatamente no mesmo grupo. Nesse caso, é necessário cortar o nome do símbolo para não obter o resultado descrito acima.

Se como parâmetro symbol_origin for especificado um símbolo inexistente, o símbolo personalizado será criado vazio, como se o parâmetro symbol_origin não tivesse sido especificado. Nesse caso, será gerado o erro 4301 — ERR_MARKET_UNKNOWN_SYMBOL.

O comprimento do parâmetro symbol_path não deve exceder 127 caracteres considerando "Custom\\", separador de grupo "\\" e nome do símbolo se for indicado no final.

 

Veja também

SymbolName, SymbolSelect, CustomSymbolDelete