Análogo de TimeTradeServer para MT4 - página 4

 

Es un buen punto, hay que saber la hora del servidor los fines de semana. Porque el tiempo del servidor se detiene y siempre da el viernes.
Necesito una forma de identificar, fines de semana para copiadoras sin usar dll

El TimeTradeServer funciona perfectamente en MT5, añádelo a mt4 y eso solucionaría de una vez los problemas de análisis de tiempo.

 
Alexandr Gavrilin:

Es un buen punto aquí, usted necesita saber la hora del servidor en el fin de semana. Porque el tiempo del servidor se detiene y siempre da el viernes.
Necesitamos una forma de identificar el fin de semana para las copiadoras sin usar dll

TimeTradeServer funciona perfectamente en MT5, añádelo a mt4 y solucionaría los problemas de análisis de tiempo de una vez.

Como la función OrderSend() se encuentra con un error "el mercado está cerrado" (existe algo así), detenga todos los intentos de negociación y espere a que el precio cambie, lo que significaría que el mercado se ha abierto.

 
Dmitry Fedoseev:

Como la función OrderSend() se encuentra con un error de "mercado cerrado" (hay algo así), detenemos todos los intentos de negociación y esperamos a que el precio cambie, lo que significará que el mercado se ha abierto.

y "como no se encuentra", todo el historial se carga con órdenes pendientes)

 
fxsaber:

Vitaly dio un enlace a esta función. No recuerdo en qué se basa la idea. Pero debí comprobarlo cuando estaba escribiendo. Pruébalo.

La idea se basa en encontrar cotizaciones de último minuto para el símbolo más común (en este caso EURUSD) y una especie de cálculo del desfase horario del servidor con respecto a GMT. Pero hay tantos "si" aquí que, por desgracia, no es una solución al problema.

Comprobado en Alpari, no funciona:


 
Ihor Herasko:

Comprobado en Alpari, no funciona:

¿Habrá datos de reproducción?

 
fxsaber:

Entonces, ¿habrá datos que reproducir?

He dado una imagen. ¿Quizás no lo veas?

 
Taras Slobodyanik:

y "como no me crucé", todo el relato está plagado de pausas)

¿Puede ser más específico?

 
Ihor Herasko:

He hecho un dibujo.

¿Cómo se reproduce a partir de un dibujo?

 
Ihor Herasko:

La idea se basa en encontrar las cotizaciones de último minuto para el símbolo más común (en este caso EURUSD) y en cierto modo calcular el desfase horario del servidor con respecto a GMT a partir de esto. Pero hay tantos "si" aquí que, por desgracia, no es una solución al problema.

Comprobado en Alpari, no funciona:


no hay que buscar el último minuto (23:59) en el EURUSD, sino la noche en el oro. El oro se negocia estrictamente en amsterdam, las monedas en el tiempo del servidor. A partir de aquí, busque el desplazamiento GMT del servidor
 

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Peculiaridades de mql4, consejos y trucos

Ivan Titov, 2019.08.12 16:19

¿Estás diciendo que si los personajes que no son de Forex tienen historia disponible, entonces no funcionará?

También aquí hay un ejemplo para forex en Alpari-Demo EURUSD,H1 en el probador:

Para 2019.02.19 14:00:00 vuelve 2019.02.19 11:00:00

Para 2019.06.19 14:00:00-retornos 2019.06.19 11:00:00

Aunque en invierno debería ser GMT+2 y en verano GMT+3 (EET).

// Аналог по серверному времени - https://www.mql5.com/ru/docs/dateandtime/timegmtoffset
// Работает для FOREX-символов, когда M1-история доступна за ближайшую неделю
int TimeServerGMTOffset( const bool SummerTime = false )
{
  const datetime Sunday = GetTimeDayOfWeek();
  
  return(((int)MathRound((double)MathMin(Sunday - DAY - GetBarTime(Sunday), Sunday + DAY - GetBarTime(Sunday, true)) / HOUR) - SummerTime - 2) * HOUR);
}

Haga ese cambio y funcionará. No hizo la definición de verano e invierno, alguien lo hará.