El indicador iIchimoku está experimentando un fallo. Mi indicador sólo dibuja flechas en función de if(tenkan[i]>kijun[i]). Como puedes ver en la captura de pantalla las flechas no se dibujan correctamente
El código completo está en el archivo Ich_1_f.mq5
Sin embargo, si se calculan manualmente, todo se muestra correctamente
Es muy sencillo - en la función GetPtrVar(double a) se toma la dirección de una copia de la variable en la pila y luego se intenta leer el trozo de memoria de la pila.
La primera vez, debido a una llamada cercana de GetValuePtr conseguimos leer de la pila no contaminada, mientras que las siguientes llamadas a la función dañaron la pila irremediablemente.
Es muy simple - en la función GetPtrVar(double a) toma la dirección de una copia de la variable en la pila, y luego trata de leer el pedazo de memoria de la pila.
Sí, exactamente, sentí que tenía que cavar allí en alguna parte.
Es muy sencillo - en la función GetPtrVar(double a) se toma la dirección de una copia de la variable en la pila y luego se intenta leer el trozo de memoria de la pila.
La primera vez, debido a una llamada cercana de GetValuePtr conseguimos leer de la pila no contaminada, mientras que las siguientes llamadas a la función dañaron la pila irremediablemente.
No hay ningún error.
Yo también lo noté. Creo que esta es la forma correcta de hacerlo:
#define _DLLAPI extern"C" __declspec(dllexport)
//+------------------------------------------------------------------+//| адрес переменной double |//+------------------------------------------------------------------+
_DLLAPI int __stdcall
GetPtrVar(double& a){return((int)(&a));}
//+------------------------------------------------------------------+//| значение переменной double по адресу |//+------------------------------------------------------------------+
_DLLAPI double __stdcall
GetValuePtr(int pointer){return(*(double*)pointer);}
En la versión 439 de Metatrader5, se ha añadido un indicador de calidad del historial. Cuando estoy probando en M1 y H4 en los precios de apertura y en todos los ticks, la calidad es del 51%... ¿Por qué y cómo aumentarlo? La fuente de las citas es alpari demo.
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
¿Tiene sentido
sustituir rates_total por BarsCalculated(ich)?
No lo creo. Es más bien un stub de servicio para asegurarse de que el buffer está listo...
Además, Copy devolverá tantos datos como se hayan calculado, no el tamaño solicitado.
¿Y de qué ciudad eres, si no es un secreto?
Por cierto, ¿estás seguro de que no necesitas llamar a ninguna función adicional?
La biblioteca tiene tanto Refresh como BufferResize. Me parece que son necesarios para el funcionamiento normal.
¿Y dónde está escrito que deban serlo?
He probado diferentes variantes.
No tengo ningún efecto.
Continúa....
El indicador iIchimoku está experimentando un fallo. Mi indicador sólo dibuja flechas en función de if(tenkan[i]>kijun[i]). Como puedes ver en la captura de pantalla las flechas no se dibujan correctamente
El código completo está en el archivo Ich_1_f.mq5
Sin embargo, si se calculan manualmente, todo se muestra correctamente
Código completo en el archivo Ich_1_ok.mq5
Escribe la dll :
conéctalo :
llamar :
conseguimos esto:
aunque ambas líneas deberían devolver el mismo valor 153,25.
¿Por qué?
¿Por qué?
¿Esto es en la versión de 32 o 64 bits?
Es muy sencillo - en la función GetPtrVar(double a) se toma la dirección de una copia de la variable en la pila y luego se intenta leer el trozo de memoria de la pila.
La primera vez, debido a una llamada cercana de GetValuePtr conseguimos leer de la pila no contaminada, mientras que las siguientes llamadas a la función dañaron la pila irremediablemente.
No hay ningún error.
Es muy simple - en la función GetPtrVar(double a) toma la dirección de una copia de la variable en la pila, y luego trata de leer el pedazo de memoria de la pila.
Sí, exactamente, sentí que tenía que cavar allí en alguna parte.
tienes que escribir en el dll
Es muy sencillo - en la función GetPtrVar(double a) se toma la dirección de una copia de la variable en la pila y luego se intenta leer el trozo de memoria de la pila.
La primera vez, debido a una llamada cercana de GetValuePtr conseguimos leer de la pila no contaminada, mientras que las siguientes llamadas a la función dañaron la pila irremediablemente.
No hay ningún error.
Yo también lo noté. Creo que esta es la forma correcta de hacerlo:
enchufe :