Erreur de compilation indébuggable ? SYMBOLINFODOUBLE()

 

Hello les copains,

Je ne pense pas être ou avoir été le seul dans ce cas mais je butte sur l'appel de la fonction

SymbolInfoDouble() qui me renvoie une erreur de compilation systématiquement.


Comme je suis une quiche en codage, je travaille actuellement (ou plutôt j'éduque) CHATGPT qui ne parviens pas à contourner l'erreur selon l'usage qu'il veut faire de la fonction.

L'objectif est dune récupération dynamique de la distance minimale de stop en fonction de l'actif.

Il semble bien vouloir l'appeler pour le booléen qu'elle peut renvoyer mais ne le fait apparemment pas bien.

Voici le code initial obtenu :

double value;
if (SymbolInfoDouble(_Symbol, SYMBOL_TRADE_STOPS_LEVEL, value))
{
    // value contient la distance minimale de stop en points
}
else
{
    value = 10.0; // fallback
}

CHATGPT m'indique qu'il a probablement omis le passage par référence ( double& ), ou utilisé un = au lieu d’un if (...) , ce qui invalide la surcharge choisie et propose :

double stopLevelPoints = 0.0;
if (!SymbolInfoDouble(_Symbol, SYMBOL_TRADE_STOPS_LEVEL, stopLevelPoints))
    stopLevelPoints = 10.0;

...Sauf que cela renvoie toujours la même erreur de compilation.


Il m'a proposé symbolinfointeger() comme alternative...mais c'est aussi tout aussi (peu) pertinent !


Si quelqu'un vois le pb ou connais un contournement, je prends !!!

 
mldng:

Hello les copains,

Je ne pense pas être ou avoir été le seul dans ce cas mais je butte sur l'appel de la fonction

SymbolInfoDouble() qui me renvoie une erreur de compilation systématiquement.


Comme je suis une quiche en codage, je travaille actuellement (ou plutôt j'éduque) CHATGPT qui ne parviens pas à contourner l'erreur selon l'usage qu'il veut faire de la fonction.

L'objectif est dune récupération dynamique de la distance minimale de stop en fonction de l'actif.

Il semble bien vouloir l'appeler pour le booléen qu'elle peut renvoyer mais ne le fait apparemment pas bien.

Voici le code initial obtenu :

CHATGPT m'indique qu'il a probablement omis le passage par référence ( double& ), ou utilisé un = au lieu d’un if (...) , ce qui invalide la surcharge choisie et propose :

...Sauf que cela renvoie toujours la même erreur de compilation.


Il m'a proposé symbolinfointeger() comme alternative...mais c'est aussi tout aussi (peu) pertinent !


Si quelqu'un vois le pb ou connais un contournement, je prends !!!

Bonjour mldng !

De cette façon, il est difficile qu'on t'assiste efficacement. La bonne approche consisterait à partager ici l'ensemble de ton code pour qu'on l'exécute aussi de notre côté et essayer d'identifier le problème. Merci

 

Bonjour mldng

J'ai constater que tu veux en faire un double mais dans https://www.mql5.com/fr/docs/constants/environment_state/marketinfoconstants#enum_symbol_info_double

SYMBOL_TRADE_STOPS_LEVEL

Indentation minimale en points depuis le prix de clôture actuel pour placer les ordres Stop

int


Il semble que ce soit du "int"

Il faudra utiliser SymbolInfoInteger() https://www.mql5.com/fr/docs/marketinformation/symbolinfointeger

Perso j'initialise toujours ma variable avec un valeur
donc

long value = 0;


essai

Documentation sur MQL5: Constantes, Enumérations et Structures / Etat de l'Environnement de Travail / Propriétés du Symbole
Documentation sur MQL5: Constantes, Enumérations et Structures / Etat de l'Environnement de Travail / Propriétés du Symbole
  • www.mql5.com
Pour obtenir les informations actuelles du marché, il existe plusieurs fonctions : SymbolInfoInteger() , SymbolInfoDouble() et...