Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
- Visualizaciones:
- 704
- Ranking:
- Publicado:
- 2018.03.06 11:37
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
El temporizador estándar de MetaTrader 4/5 se basa en la llamada al temporizador de sistema, y por eso puede trabajar con un cierto error. Para asegurarse de ello, basta con iniciar un simple EA:
input int Timer = 1000; // Número de millisegundos para la activación del temporizador #define TOSTRING(A) #A + " = " + (string)(A) + " ms.\n" const bool Init = EventSetMillisecondTimer(Timer); // Muestra en los comentarios del gráfico el error medio del temporizador y su valor medio void OnTimer() { static ulong StartTime = 0; static int Count = 0; static int Sum = 0; if (StartTime) { const int RunTime = (int)(GetMicrosecondCount() - StartTime) / 1000; const int Error = RunTime - Timer * Count; Sum += Error; Comment(TOSTRING(Timer) + TimeToString(RunTime / 1000, TIME_SECONDS) + "\n" + TOSTRING(Error) + TOSTRING((double)Sum / Count)); } else StartTime = GetMicrosecondCount(); Count++; }
Muestra como crece el retardo del temporizador en los comentarios del gráfico (esquina superior izquierda):
En la captura de pantalla se puede observar que apenas en un minuto el temporizador de segundos crea un retardo más de un segundo. ¡Y con el tiempo sólo va creciendo!
Esta librería permite aumentar la precisión del temporizador de cualquier EA/indicador. Para eso, hay que insertar sólo una línea al principio del código:
#include <AccurateTimer.mqh> // Aumento de la precisión del temporizador estándar
Después de eso, podemos observar la siguiente imagen en el EA arriba mencionado:
Después de 10 minutos de trabajo, la desviación media del temporizador ideal (teórico) es de ~1 millisegundo, el error no va a crecer.
Desde luego, siempre es bueno disponer de un temporizador preciso. Pero existen tareas cuando es imprescindible. Por ejemplo, el temporizador de segundos sincronizado con la hora del Servidor comercial.
Esta librería multiplataforma es compatible con todos los EAs/indicadores dosnde se usa el temporizador estándar (OnTimer). Eso no influye en la velocidad de la ejecución en el Probador de Estrategias.
¡Suba la precisión de los programas nuevos y ya desarrollados usando sólo una línea!
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/19859
![Chandes Quick Stick (Qstick)](https://c.mql5.com/i/code/indicator.png)
El indicador fue diseñado por el científico, inventor, autor y el trader, Tushar Chandle, con el fin de identificar las tendencias de mercado a través de los gráficos de velas.
![Relative Momentum Index](https://c.mql5.com/i/code/indicator.png)
Relative Momentum Index (RMI) es una variación del indicador RSI. RMI, a diferencia de RSI, compara el precio de cierre de la barra anterior (como RSI), pero también a un determinado número de días hacia atrás.
![Rsi(var)](https://c.mql5.com/i/code/indicator.png)
Variación al tema de RSI.
![Custom Moving Average Input Color](https://c.mql5.com/i/code/indicator.png)
Modificación del indicador "Custom Moving Average": ahora, se puede indicar el color de la línea en los parámetros de entrada.