Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Nous vous remercions.
SYMBOL_VOLUME_LIMIT' - identifiant non déclaré.............
'SymbolInfoDouble' - aucune des surcharges ne peut être appliquée à l'appel de la fonction.............
Est-ce que c'est juste moi ?
SYMBOL_VOLUME_LIMIT' - identifiant non déclaré.............
'SymbolInfoDouble' - aucune des surcharges ne peut être appliquée à l'appel de la fonction.............
Est-ce que c'est juste moi ?
Pouvez-vous faire cela ?
Encore une question sur la fonction SeriesInfoInteger().
Lors de la création de la rubrique"AccountInfo... Pertinence de l'information", j'ai appris qu'il y a des fonctions qui utilisent des données "mises en cache dans l'environnement du logiciel" et d'autres qui ont toujours un "accès direct aux données réelles".
A quelle catégorie de fonctions appartient la fonction SeriesInfoInteger()?
Le code suivant est utilisé dans la fonction CheckVolumeValue :
int ratio=(int)MathRound(volume/volume_step);
if(MathAbs(ratio*volume_step-volume)>0.0000001)
{
description=StringFormat("Объем не является кратным минимальной градации SYMBOL_VOLUME_STEP=%.2f, ближайший корректный объем %.2f",
volume_step,ratio*volume_step);
return(false);
}
Mais il est plus correct :
int ratio = (int)MathRound((volume-min_volume)/volume_step);
if (MathAbs(ratio*volume_step+min_volume-volume)>0.0000001)
{
description=StringFormat("Объем не является кратным минимальной градации SYMBOL_VOLUME_STEP=%.2f, ближайший корректный объем %.2f",
volume_step,ratio*volume_step+min_volume);
return(false);
}
Parce que le pas minimum de changement de volume doit être compté à partir de la valeur minimum.
Et peut-être que l'extrait de code
//--- вычислим значение маржи
bool check=OrderCalcMargin(type,Symbol(),lots,last_tick.ask,margin);
devrait être remplacé par :
//--- вычислим значение маржи
double price = (type == ORDER_TYPE_BUY || type == ORDER_TYPE_BUY_LIMIT || type == ORDER_TYPE_BUY_STOP || type == ORDER_TYPE_BUY_STOP_LIMIT) ? last_tick.ask : last_tick.bid;
bool check=OrderCalcMargin(type,Symbol(),lots,price,margin);
En raison des modifications apportées à MQL5, le volume global maximal autorisé pour un symbole peut être obtenu comme suit :
N'utilisez pas l'ancienne variante ! Elle se présentait comme suit :
L'article a été corrigé et le nouveau code expert Check_Order_And_Volume_Limits.mq5 y a été joint.Cher administrateur
J'essaie d'utiliser cette fonction mais elle renvoie 0 dans tous les cas.
Mon MT5 build est 2280
double orders_volume_on_symbol=PendingsVolume(symbol);donne une erreur, aucune fonction de ce type
Et après avoir modifié la fonction pour ne pas inclure les ordres en attente, elle donne 0
C'est parce que max_volume est 0 et open_volume est 0 ;
Pourquoi le volume max est 0 s'il n'y a pas de positions ouvertes ?
Version 2715