¡Necesito la fórmula del tamaño de LOT de moneymanagement basada en el SL y el riesgo de la cuenta! - página 4
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
... en esta parte del código hay un problema con la nueva compilación (error ---> 'MarketInfo' - tipo de expresión de cambio ilegal) tal vez estaba todo bien hasta la actualización a MT4 build 600+ ... pero desde entonces ya no funciona.
Así que, por favor, podrías publicar alguna versión más reciente ... si por supuesto sigues por aquí.
Creo que si se cambia
switch ( MarketInfo( strSymbol, MODE_DIGITS ) )
a
Compilará bien
... en esta parte del código hay un problema con la nueva compilación (error ---> 'MarketInfo' - tipo de expresión de cambio ilegal) tal vez todo estaba bien hasta la actualización a MT4 build 600+ ... pero desde entonces ya no funciona.
Así que, por favor, podría publicar alguna versión más reciente ... si, por supuesto, todavía estás por aquí.
https://book.mql4.com/operators/switch
"Los valores de la Expresión y de los Parámetros sólo pueden ser valores de tipo int. La Expresión puede ser una constante, una variable, una llamada a función o una expresión. Cada caso de variación puede estar marcado por una constante de tipo entero, una constante de tipo carácter o una expresión constante. Una expresión constante no puede incluir variables o llamadas a funciones".
Una vez más, se te ocurre una solución más sencilla y mejor.
En mi EA diferente, se escribe así :
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) /