¿Cómo saber si el mercado está cerrado? (mql4) - página 4

 

Y hacemos esto:

MqlTick Tick;
bool IsNewTick(string symbol)
  {
   MqlTick t;
   SymbolInfoTick(symbol,t);
   if(t.time>Tick.time)
     {
      SymbolInfoTick(symbol,Tick);
      return(true);
     }
   return(false);
  }

La función indica si hay un nuevo tick en el instrumento.

Genial para OnTime. Sólo para cadasímbolo, debe haberun Tickdiferente

 
Vasyl Nosal:

Vaya, es mucho texto.

MarketInfo(Symbol(),MODE_TRADEALLOWED)

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.
 
Ihor Herasko:
Esto sólo le dará el estado de autorización de negociación del instrumento. Si el instrumento es negociable, obtendrá verdades en él cualquier día de la semana.
No es cierto.
 
Antes de enviar un pedido, realice una comprobación, http://docs.mql4.com/check/istradeallowed
 
Ramiz Mavludov:
Antes de enviar un pedido, realice una comprobación, http://docs.mql4.com/check/istradeallowed
Y esto se refiere al botón de comercio automático.
 
Vasyl Nosal:
Y esto se refiere al botón de comercio automático.
No lo entiendo. Sin el comercio automático activado, su EA no debería hacer nada en absoluto.
 
Ramiz Mavludov:
No lo entiendo. Sin el comercio automático activado, su EA no debería hacer nada en absoluto.
No. Puede y, de hecho, la mayoría de las veces no debería hacer nada. Cuando el botón de AutoTrade está desactivado, no puede trabajar sólo con las funciones de negociación. El resto de los cálculos están bien.
 
Ramiz Mavludov:
No lo entiendo. Si no habilita el comercio automático, su EA no debería hacer nada en absoluto.
Lo que está escrito en el enlace no tiene ninguna relevancia en la cuestión del cierre del mercado.
 
Vasyl Nosal:
No es cierto.

Tal vez haya que volver a comprobarlo. La última vez que trabajé en este tema fue antes de la actualización de MQL4. En aquel momento, tal forma indicaba la posibilidad de operar con el símbolo en general, no en un momento concreto. Además, la ayuda está ahora formulada de tal manera que no da una respuesta clara. Esperemos hasta el fin de semana para comprobarlo. O puede ser que alguien tenga algunas acciones americanas en la lista de símbolos para los que el mercado está ahora cerrado. Entonces podemos comprobarlo ahora.

En cuanto al IsTradeAllowed indicado por Ramiz Mavludov, es efectivamente correcto. Esta función permite comprobar la situación de un mercado cerrado. Y puede saberlo ahora con antelación, en lugar de esperar al fin de semana:

   datetime curDay = D'2015.12.14 05:00';
   Print("Trade allowed for 2015.12.14 05:00: ", IsTradeAllowed(_Symbol, curDay));
   
   datetime sunday = D'2015.12.20 03:00';
   Print("Trade allowed for Sunday: ", IsTradeAllowed(_Symbol, sunday));

Resultado:

2015.12.16 13:37:23.662 TestData EURUSD,Daily: Trade allowed for Sunday: false
2015.12.16 13:37:23.662 TestData EURUSD,Daily: Trade allowed for 2015.12.14 05:00: true
 
Ihor Herasko:

Tal vez haya que volver a comprobarlo. La última vez que trabajé en esta cuestión fue antes de la actualización de MQL4. En aquel momento, tal forma indicaba la posibilidad de operar con el símbolo en general, no en un momento concreto. Además, la ayuda está ahora formulada de tal manera que no da una respuesta clara. Esperemos hasta el fin de semana para comprobarlo. O puede ser que alguien tenga algunas acciones americanas en la lista de símbolos para los que el mercado está ahora cerrado. Entonces podemos comprobarlo ahora.

En cuanto al IsTradeAllowed indicado por Ramiz Mavludov, es efectivamente correcto. Esta función permite comprobar la situación de un mercado cerrado. Y puede saberlo ahora con antelación, en lugar de esperar al fin de semana:

Resultado:

Sí, lo es.

Pensé que se refería aboolIsTradeAllowed();.