Todavía no he descubierto cómo obtener información adecuada de DayOfWeek. Da el valor correcto el día que el robot se pone en marcha y en algunos otros casos (a veces). Me parece que da un valor correcto cuando abro órdenes. Si no abres nada, te dará el tiempo.
He resuelto el problema de esta manera:
...
int realDay=DayOfWeek();
int curHour=TimeHour(TimeLocal());
while(!IsStopped())
{
if (TimeHour(TimeLocal())<curHour) realDay++;
curHour=TimeHour(TimeLocal());
if (realDay==7) realDay=0;
...
Todavía no he descubierto cómo obtener información adecuada de "DayOfWeek". Da el valor correcto el día que el robot se pone en marcha y en algunos otros casos (a veces). Me parece que da un valor correcto cuando abro órdenes. Si no abres nada, te dará el tiempo.
Ihor Herasko: De este modo, sólo obtendrá el estado de permiso del instrumento para operar. Si el instrumento se negocia, obtendrá verdades por él cualquier día de la semana.
Alert("Trade allowed by MarketInfo: ", bool(MarketInfo(Symbol(),MODE_TRADEALLOWED)));
Alert("Trade allowed by IsTradeAllowed: ", bool(IsTradeAllowed()));
Alert("Trade allowed by IsTradeAllowed 2-nd version: ", bool(IsTradeAllowed(Symbol(), TimeLocal())));
Resultado:
2015.12.2016:41:21.196 Test EURUSD,H1: Alert: Trade allowed by IsTradeAllowed 2-nd version: false2015.12.2016:41:21.196 Test EURUSD,H1: Alert: Trade allowed by IsTradeAllowed: true2015.12.2016:41:21.196 Test EURUSD,H1: Alert: Trade allowed by MarketInfo: true
En mi ordenador la hora es GMT+2.
Por eso no entiendo cómo has conseguido ser falso en el primer caso. Tal vez, usted tomó un instrumento que en principio no se negocia.
Las conclusiones son las siguientes:
La primera y la segunda opción son esencialmente idénticas. Sólo señalan el hecho de que el autotrading para el instrumento está habilitado y hay flujo de comercio libre.
La tercera variante es justo lo que necesitamos. Permite conocer el permiso para operar en un instrumento dado su horario de trabajo.
Por lo tanto, no está claro cómo ha conseguido que la primera opción sea falsa. Tal vez, usted tomó un instrumento que en principio no se negocia.
Las conclusiones son las siguientes:
La primera y la segunda opción son esencialmente idénticas. Sólo señalan el hecho de que el autotrading para el instrumento está habilitado y hay flujo de comercio libre.
La tercera variante es justo lo que necesitamos. Le permite conocer el permiso para operar en un instrumento con respecto a su horario de trabajo.
Efectivamente, este corredor tiene el resultado del script anterior:
2015.12.2017:19:18.685 Test GBPUSD,H4: Alert: Trade allowed by IsTradeAllowed 2-nd version: false2015.12.2017:19:18.685 Test GBPUSD,H4: Alert: Trade allowed by IsTradeAllowed: false2015.12.2017:19:18.685 Test GBPUSD,H4: Alert: Trade allowed by MarketInfo: false
Empezó a comprobar otros corredores. Agente G**X:
2015.12.2017:18:14.339 Test EURUSD,M314: Alert: Trade allowed by IsTradeAllowed 2-nd version: false2015.12.2017:18:14.339 Test EURUSD,M314: Alert: Trade allowed by IsTradeAllowed: false2015.12.2017:18:14.339 Test EURUSD,M314: Alert: Trade allowed by MarketInfo: true
Agente A***i:
2015.12.2017:20:40.372 Test EURUSD,M15: Alert: Trade allowed by IsTradeAllowed 2-nd version: false2015.12.2017:20:40.372 Test EURUSD,M15: Alert: Trade allowed by IsTradeAllowed: true2015.12.2017:20:40.372 Test EURUSD,M15: Alert: Trade allowed by MarketInfo: true
Broker I***a F***x:
2015.12.2017:21:38.663 test GBPUSD,H1: Alert: Trade allowed by IsTradeAllowed 2-nd version: false2015.12.2017:21:38.663 test GBPUSD,H1: Alert: Trade allowed by IsTradeAllowed: false2015.12.2017:21:38.663 test GBPUSD,H1: Alert: Trade allowed by MarketInfo: false
Mi primera prueba de hoy fue en A*****l M*****s.
Así, conseguimos que no todos los brokers tengan funcionando correctamente IsTradeAllowed (primera versión) y MODE_TRADEALLOWED. Y por otro lado, la segunda versión de IsTradeAllowed funciona correctamente en todas partes. Por lo tanto, es mejor utilizarlo.
Efectivamente, este corredor tiene el resultado del script anterior:
Empezó a comprobar otros corredores. Agente G**X:
Agente A***i:
Broker I***a F***x:
Mi primera prueba de hoy fue en A*****l M*****s.
Así, conseguimos que no todos los brokers tengan funcionando correctamente IsTradeAllowed (primera versión) y MODE_TRADEALLOWED. Y por otro lado, la segunda versión de IsTradeAllowed funciona correctamente en todas partes. Por lo tanto, es mejor utilizarlo.
Todavía no he descubierto cómo obtener información adecuada de DayOfWeek. Da el valor correcto el día que el robot se pone en marcha y en algunos otros casos (a veces). Me parece que da un valor correcto cuando abro órdenes. Si no abres nada, te dará el tiempo.
He resuelto el problema de esta manera:
Pero aún no lo he probado )))) Debería funcionar.
Todavía no he descubierto cómo obtener información adecuada de "DayOfWeek". Da el valor correcto el día que el robot se pone en marcha y en algunos otros casos (a veces). Me parece que da un valor correcto cuando abro órdenes. Si no abres nada, te dará el tiempo.
He resuelto el problema de esta manera:
Pero aún no lo he probado ))) Debería funcionar.
Es más fácil: utilice TimeDayOfWeek:
De este modo, sólo obtendrá el estado de permiso del instrumento para operar. Si el instrumento se negocia, obtendrá verdades por él cualquier día de la semana.
Alert(bool(MarketInfo(Symbol(),MODE_TRADEALLOWED));
falso
Alert(bool(MarketInfo(Symbol(),MODE_TRADEALLOWED));
falso
Mi versión es la siguiente:
Resultado:
En mi ordenador la hora es GMT+2.
Por eso no entiendo cómo has conseguido ser falso en el primer caso. Tal vez, usted tomó un instrumento que en principio no se negocia.
Las conclusiones son las siguientes:
Mi versión es esta:
Resultado:
En mi ordenador la hora es GMT+2.
Por lo tanto, no está claro cómo ha conseguido que la primera opción sea falsa. Tal vez, usted tomó un instrumento que en principio no se negocia.
Las conclusiones son las siguientes:
EURUSD fxOpen
Efectivamente, este corredor tiene el resultado del script anterior:
Empezó a comprobar otros corredores. Agente G**X:
Agente A***i:
Broker I***a F***x:
Mi primera prueba de hoy fue en A*****l M*****s.
Así, conseguimos que no todos los brokers tengan funcionando correctamente IsTradeAllowed (primera versión) y MODE_TRADEALLOWED. Y por otro lado, la segunda versión de IsTradeAllowed funciona correctamente en todas partes. Por lo tanto, es mejor utilizarlo.
Efectivamente, este corredor tiene el resultado del script anterior:
Empezó a comprobar otros corredores. Agente G**X:
Agente A***i:
Broker I***a F***x:
Mi primera prueba de hoy fue en A*****l M*****s.
Así, conseguimos que no todos los brokers tengan funcionando correctamente IsTradeAllowed (primera versión) y MODE_TRADEALLOWED. Y por otro lado, la segunda versión de IsTradeAllowed funciona correctamente en todas partes. Por lo tanto, es mejor utilizarlo.
Y hoy
IsTradeAllowed(Symbol(), TimeCurrent())
se muestra cobarde
Por cierto, ¿por qué tienes tiempo local?
Y hoy
IsTradeAllowed(Symbol(), TimeCurrent())
se muestra cobarde
Por cierto, ¿por qué tienes tiempo local?
Es un fin de semana festivo, así que es difícil.
El hecho es que ninguna de las funciones de reconocimiento funciona al 100%.