explicar
MQL4 utiliza TimeLocal(); TimeCurrent() que se basan en tick por tick incluso iTime....
Lo que realmente quiero es poder mostrar en mi gráfico un reloj en tiempo real que se actualice cada segundo, probablemente usando el reloj de mi ordenador o un servidor remoto.
TimeCurrent() no se basa en el tic.
Pero la función de inicio está basada en ticks. Usted puede utilizar un bucle sin fin en combinaciones con el sueño. hay un artículo publicado aquí en mql4.com explicando las ventajas y soluciones.
Ya que todo el mt4 está basado en el tick no me gusta implementar la lógica sensible al tiempo. en el pasado combiné estos dos en mis indicadores de Custom Timeframe. Es un trabajo sencillo pero puede que te hagas una idea. Si quieres un reloj actualizado cada segundo entonces mi trabajo es inútil para ti. https://www.mql5.com/en/code/10080
//z
La idea es conseguir que el reloj se actualice cada segundo y no sólo llamar a las funciones en el Start() como su programa, es decir
if(TimeCurrent()>(t+TimeInSeconds))
de tu explicación; puedo usar un bucle while en la función init() y luego qué pasa cuando lo llamo en la función start(); ¡seguirá siendo tick por tick!
necesitará algo como esto su función de inicio. El bucle se ejecuta en el primer tick. después de eso será tick independ
while(true){ updateWatch(); Sleep(1000); }
zzuegg; esto será un bucle sin fin y limitará el indicador de metatrader a hacer una cosa... contar.
Así que si usted decide utilizar la función de sueño en combinación con el TimeCurrenet llamado de una función para agregar un segundo cada Sleep(1000); este programa no será capaz de hacer nada más.
Sólo contará.... así que te estarás limitando a una sola función.
y sí metatrader doesnt como bucles interminables; se bloquea como he experimentado ahora lol debe tener un descanso en alguna parte :)
No estás limitado a una sola función. Puedes hacer lo que quieras dentro del bucle. puede que necesites algunos recálculos para garantizar un tiempo de ejecución de 1seg. pero en general funciona.
Nunca lo he hecho con indicatos, pero en EA's funciona.
Otra opción es utilizar un programa externo que envíe falsos ticks a tu terminal en un intervalo de 1seg. con eso tienes garantizado que la función de inicio es llamada al menos una vez cada segundo. En combinación con mi código de las velas de marco de tiempo personalizado debe obtener su resultado.
while( !(IsTesting() || IsStopped()) ){ updateWatch(); RefreshRates(); if (...) doTrading(); Sleep(1000); }
Utilizar MQL5
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Tengo entendido que la función Start() funciona tic a tic.
¿Hay alguna forma de utilizar los datos en tiempo real del reloj del ordenador y actualizarlos cada segundo? ¿No es tick por tick sino cada segundo?
Si es así, por favor, ayúdame.
Gracias