CustomSymbolCreate

Crée un symbole personnalisé avec le nom spécifié dans le groupe spécifié.

bool  CustomSymbolCreate(
   const string     symbol_name,         // nom du symbole personnalisé
   const string     symbol_path="",      // nom du groupe dans lequel le symbole doit être créé
   const string     symbol_origin=NULL   // nom d'un symbole servant de base pour créer le symbole personnalisé
   );

Parameters

symbol_name

[in]  Nom du symbole personnalisé. Il ne doit pas contenir les groupes ou sous-groupes dans lesquels le symbole est situé.

symbol_path=""

[in]  Le nom du groupe dans lequel se trouve le symbole.

symbol_origin=NULL

[in]  Nom d'un symbole à partir duquel les propriétés du symbole personnalisé créé seront copiées. Après avoir créé un symbole personnalisé, n'importe quelle valeur de propriété peut être changée en utilisant les fonctions correspondantes.

Valeur de Retour

true — en cas de succès, sinon — false. Pour obtenir des informations sur l'erreur, appelez la fonction GetLastError().

Note

Tous les symboles personnalisés sont créés dans une section spéciale nommée Custom. Si aucun nom de groupe n'est spécifié (le paramètre symbol_path de la fonction CustomSymbolCreate contient une chaîne vide ou NULL), le symbole personnalisé est généré à la racine de la section Custom. Nous pouvons dessiner une analogie avec le système de fichiers, où les groupes et les sous-groupes peuvent être vus comme des dossiers et des sous-dossiers

Les noms du symbole et du groupe ne peuvent contenir que des caractères latins avec la ponctuation, des espaces ou des caractères spéciaux (ne peut contenir que ".", "_", "&" et "#"). Il n'est pas recommandé d'utiliser les caractères <, >, :, ", /, |, ?, *.

Le nom du symbole personnalisé doit être unique dans le groupe dans lequel il est créé. Si un symbole existe déjà avec le même nom, la fonction CustomSymbolCreate() retourne 'false', et l'appel suivant à GetLastError() retourne l'erreur 5300 (ERR_NOT_CUSTOM_SYMBOL) ou 5304 (ERR_CUSTOM_SYMBOL_EXIST).

La longueur du nom du symbole ne doit pas être supérieure à 31 caractères. Sinon, CustomSymbolCreate() retourne 'false' et l'erreur 5302 — ERR_CUSTOM_SYMBOL_NAME_LONG est générée.

Le paramètre symbol_path peut être défini de 2 façons :

  • seul un nom de groupe sans un nom pour le symbole personnalisé, par exemple — "CFD\\Metals". C'est la meilleure façon de faire pour éviter les erreurs.
  • ou nom du <groupe> + séparateur de groupes "\\"+<nom du symbole personnalisé>, par exemple — "CFD\\Metals\\Platinum". Dans ce cas, le nom du groupe doit se terminer avec le nom exact du symbole personnalisé. En cas de différence, le symbole personnalisé sera quand même créé, mais pas dans le groupe désiré. Par exemple, si symbol_path="CFD\\Metals\\Platinum" et symbol_name="platinum" (erreur d'enregistrement), alors un symbole personnalisé nommé "platinum" est créé dans le groupe "Custom\CFD\Metals\Platinum". La fonction SymbolInfoGetString("platinum",SYMBOL_PATH) retourne la valeur "Custom\CFD\Metals\Platinum\platinum".

 

Notez que la propriété SYMBOL_PATH retourne le chemin avec le nom du symbole à la fin. Il ne peut donc pas être copié sans changement si vous voulez créer un symbole personnalisé dans le même groupe. Dans ce cas, il est nécessaire de couper le nom du symbole pour ne pas obtenir le résultat décrit ci-dessus.

Si un symbole non existant est utilisé comme paramètre symbol_origin, alors le symbole personnalisé est créé vide comme si le paramètre symbol_origin n'était pas donné. L'erreur 4301 — ERR_MARKET_UNKNOWN_SYMBOL est générée dans ce cas.

La longueur du paramètre symbol_path ne doit pas être supérieure à 127 caractères en tenant compte de "Custom\\", des séparateurs de groupes "\\" et du nom du symbole s'il est spécifié à la fin.

 

Voir également

SymbolName, SymbolSelect, CustomSymbolDelete