Besoin d'une formule de moneymanagement LOT size basée sur le SL et le risque du compte ! - page 4
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
... dans cette partie du code il y a un problème avec la nouvelle compilation (error ---> 'MarketInfo' - illegal switch expression type) peut-être tout était OK jusqu'à la mise à jour de MT4 build 600+ ... mais depuis lors il ne fonctionne plus.
Donc, pourriez-vous s'il vous plaît poster une version plus récente ... si bien sûr vous êtes toujours là.
Je pense que si vous changez
switch ( MarketInfo( strSymbol, MODE_DIGITS ) )
en
La compilation sera correcte
... dans cette partie du code il y a un problème avec la nouvelle compilation (error ---> 'MarketInfo' - illegal switch expression type) peut-être que tout était OK jusqu'à la mise à jour de MT4 build 600+ ... mais depuis cela ne fonctionne plus.
Donc, pourriez-vous s'il vous plaît poster une version plus récente ... si bien sûr vous êtes toujours là.
https://book.mql4.com/operators/switch
" Les valeurs de l'Expression et des Paramètres ne peuvent être que des valeurs de type int. L'Expression peut être une constante, une variable, un appel de fonction ou une expression. Chaque 'cas' de variation peut être marqué par une constante entière, une constante de caractère ou une expression constante. Une expression constante ne peut pas inclure de variables ou d'appels de fonction."
Une fois de plus, vous proposez une solution plus simple et meilleure.
Dans mon EA différent, c'est écrit comme ceci :
extern double Risk_Percent = 3;
extern int StopLoss = 50;
//+------------------------------------------------------------------+
{
double lot = MathCeil(AccountFreeMargin() * Risk_Percent / 1000) / 100;
if(lot<MarketInfo(Symbol(),MODE_MINLOT))lot=MarketInfo(Symbol(),MODE_MINLOT);
if(lot>MarketInfo(Symbol(),MODE_MAXLOT))lot=MarketInfo(Symbol(),MODE_MAXLOT);
return (MathMin(NormalizeDouble(lot,PipMultiplier),MaxLotSize));
}
//+------------------------------------------------------------------+
if(_Digits==5 || _Digits==3)PipMultiplier=10;
else PipMultiplier=1;
slippage=Slippage*PipMultiplier;
if(_Digits<4)
{
point=0.01;
}
else
{
point=0.0001;
}
return(0);
//+------------------------------------------------------------------+
double lot = MathCeil(AccountFreeMargin() * Risk_Percent / 1000) /