Errores, fallos, preguntas - página 1812
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
"¡Doctor, tengo algo que me duele!" © )
Dame un ejemplo de esa expresión. Uno reproducible. Entonces podrás decir algo.
{
int d1;
ulong i, frac1=frac, ll1=ll, type1=type;
i=1; d1=10;
while (ll>=d1) {d1=d1*10; i=i+1;}
if (type==0 || type==2) return (frac1+ll1*Pow10frac_length+i*Pow10(frac_length+i)+
type1*Pow10(frac_length+i+1)+bs*Pow10(frac_length+i+2)+Id1_class*Pow10(frac_length+i+3));
else return(ll1+i*Pow10(i)+type1*Pow10(i+1)+bs*Pow10(i+2)+Id1_class*Pow10(i+3));
}
ulong Pow10(ulong power) // power>0
{
ulong r=10;
if (power==0) return 1;
for (ulong i=2; i<=power; i++) r=r*10;
return r;
}
El problema está en la función PackMagic. variables externas int frac_length=2; int Pow10frac_length=100; int Id1_class=1;.
No has dado un ejemplo de error. ¿A qué valores de los argumentos devuelve esta función el valor incorrecto (cuál?) y cuál debería ser el resultado correcto?
Por ejemplo:
Id1_class=1, bs=0, type=0, frac=99, ll=1, frac_length=2, Pow10frac_length=100, return devuelve 11299.
Debería ser 1001199. En Expert, funciones en clase, cuenta demo en Open.
No es un hecho que siempre se devuelva el 11299 en caso de error.
Está sonando. Escribí su código a la secuencia de comandos, dio el valor correcto (1001199) cuando se ejecuta en modo de depuración, pero si compilo la liberación y ejecutarlo desde el árbol en MT5, dio 11199 constantemente. He podido localizar el problema, aquí está el código de reproducción:
void OnStart()
{
ulong i = 1;
ulong a1 = Pow10(frac_length + i);
ulong a2 = Pow10(frac_length + i + 1);
ulong a3 = Pow10(frac_length + i + 2);
ulong a4 = Pow10(frac_length + i + 3);
Print(IntegerToString(a1), " ", IntegerToString(a2), " ", IntegerToString(a3), " ", IntegerToString(a4));
}
ulong Pow10(const ulong power)
{
ulong r = 10;
if (power == 0)
return 1;
for (ulong i = 2; i <= power; i++)
r = r*10;
return r;
}
En el modo de depuración funciona correctamente. Pero al iniciar el lanzamiento desde el navegador en MT5 o bien produce un sinsentido ("1000 10000 100 100 100" en lugar de "1000 10000 100000 1000000") o bien MT5 se cuelga con la carga completa de uno de los núcleos del procesador.
Hay dos maneras de solucionarlo. De cualquiera de estas maneras:
ulong a2 = Pow10(frac_length + i + (ulong)1);
ulong a3 = Pow10(frac_length + i + (ulong)2);
ulong a4 = Pow10(frac_length + i + (ulong)3);
O bien moviendo la variable global frac_length dentro de la función Start().
Efectivamente, se trata de un error del compilador, escriba al Servicio de Atención al Cliente.
Al pasar por encima de una reseña propia recién publicada para un producto del mercado, aparecen varias sugerencias/acciones. Si seleccionas "editar" y cambias la revisión, aparecerá un error de "No hay derechos" después de hacer clic en "Actualizar".
No se puede crear la solicitud al SR - Seha producido un error.
Al pasar por encima de una reseña propia recién publicada para un producto del Mercado, aparecen varias sugerencias/acciones. Si seleccionas "editar" y cambias la revisión, aparece el error "Sin derechos" después de hacer clic en "Actualizar".
Por favor, especifique el nombre y la versión de su navegador.
En chrome 56.0.2924.87 el vuelo va bien, tanto con como sin refrescar manualmente la página de revisión.
No se puede crear la solicitud al SR - Seha producido un error.
Aparentemente ha habido una actualización de los principios de comprobación de fichas anti-cSRF.
En Chrome, puedes hacerlo así:
Presione F12 mientras está en www.mql5.com => en el tablero de instrumentos vaya a Aplicación => Cookies => haga clic en las cookies => borre todas de...
Por favor, especifique el nombre y la versión de su navegador.
En Chrome 56.0.2924.87 el vuelo va bien, tanto con como sin refrescar manualmente la página de revisión.