Allons-nous normaliser toutes les paires en fonction de l'instrument actuel ?
dsma2 = NormalizeDouble(SMA[2] - SMA[3], _Digits); // MA au site 2-3 dsma1 = NormalizeDouble(SMA[1] - SMA[2], _Digits); // MA sur le site 1-2
Quoi, allons-nous normaliser toutes les paires en fonction de l'instrument actuel ?
Allons-nous normaliser toutes les paires en fonction de l'instrument actuel ?
Et comment l'implémenter correctement pour qu'il n'y ait pas d'avertissement ?
Dans la version originale, c'est comme ça :
int Digits_ = SymbolInfoInteger(Symbol_, SYMBOL_DIGITS) + 4;
dsma2 = NormalizeDouble(SMA[2] - SMA[3], Digits_); // MA au site 2-3
dsma1 = NormalizeDouble(SMA[1] - SMA[2], Digits_); // MA sur le site 1-2
Quelle est la bonne façon de le mettre en œuvre sans avertissement ?
Dans la version originale, c'est comme ça :
Qu'est-ce que +4 a à voir avec ça ? C'est ainsi que cela devrait être logiquement
int Digits_ = SymbolInfoInteger(Symbol_, SYMBOL_DIGITS); dsma2 = NormalizeDouble(SMA[2] - SMA[3], Digits_); // MA au site 2-3 dsma1 = NormalizeDouble(SMA[1] - SMA[2], Digits_); // MA sur le site 1-2
Quel est le rapport avec +4 ? C'est censé être logique.
C'est également ainsi que se présente l'avertissement :
perte possible de données en raison de la conversion de type Multik.mq5 218 18
C'est également le cas pour l'avertissement :
perte possible de données en raison de la conversion de type Multik.mq5 218 18
pour éviter les avertissements, vous devez effectuer la conversion comme suit
int Digits_ = (int)SymbolInfoInteger(Symbol_, SYMBOL_DIGITS);
Beau travail, mais le multi-instrument ne perd-il pas son sens lorsque vous traitez des paires corrélées avec les mêmes configurations ? Je m'attendrais à ce que leurs baisses se produisent à peu près en même temps et cela pourrait être un problème. Malheureusement, toutes les paires de devises sont tellement liées que cela peut être inévitable. En fait, je trade également les paires EUR/USD GBP/USD ensemble, mais j'utilise un suiveur de tendance pour l'une et un EA de type retournement, hauts et bas pour l'autre.
Si vous ne voulez pas recevoir d'avertissements, vous devez faire la conversion comme ceci.
request.volume = Money_M() ;
Cet EA est un excellent exemple de code organisé et comporte d'excellents commentaires. J'ai cependant une question concernant votre fonction de taille de lot appelée Money_M(). Quel est l'arbre de décision derrière cette fonction et où se trouve-t-il ?
J'ai essayé de chercher sur le site de support mais je n'ai trouvé aucune référence et elle ne semble pas être liée à une classe associée.
request.volume = Money_M() ;
Cet EA est un excellent exemple de code organisé et comporte d'excellents commentaires. J'ai cependant une question concernant votre fonction de taille de lot appelée Money_M(). Où et comment se situe l'arbre de décision derrière cette fonction ?
J'ai essayé de chercher sur le site de support mais je n'ai trouvé aucune référence et elle ne semble pas être liée à une classe associée.
double Money_M() { double Lots=AccountInfoDouble(ACCOUNT_FREEMARGIN)/100000*10; Lots=MathMin(5,MathMax(0.1,Lots)); if(Lots<0.1) Lots=NormalizeDouble(Lots,2); else { if(Lots<1) Lots=NormalizeDouble(Lots,1); else Lots=NormalizeDouble(Lots,0); } return(Lots); }
Cette fonction est utilisée pour calculer la taille des lots de négociation.
double Lots=AccountInfoDouble(ACCOUNT_FREEMARGIN)/100000*10;
Dans cette chaîne, la taille calculée des lots de négociation. Le calcul est effectué sur les fonds libres(ACCOUNT_FREEMARGIN). Risque = 10% des fonds disponibles.
Lots=MathMin(5,MathMax(0.1,Lots));Dans cette ligne est exécutée la normalisation des lots de transaction. 0.1 <= Lot <= 5.0
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Multik:
Conseiller multidevises.
Author: Andrey Kornishkin