Como saber se o mercado está fechado? (mql4) - página 4

 

E nós fazemos isso:

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

A função indica se há um novo tique no instrumento.

Ótimo para OnTime. Somente para cadasímbolo, deve haverum Tickdiferente

 
Vasyl Nosal:

Uau, isso é um monte de texto.

MarketInfo(Símbolo(),MODE_TRADEALLOWED)

Desta forma, você obterá apenas o status de permissão de comércio do instrumento. Se o instrumento for comercializado, você se tornará fiel a ele em qualquer dia da semana.
 
Ihor Herasko:
Isto lhe dará apenas o status de autorização de comercialização do instrumento. Se o instrumento for comercializável, você se tornará verdadeiro nele em qualquer dia da semana.
Não é verdade.
 
Antes de enviar um pedido, faça um cheque, http://docs.mql4.com/check/istradeallowed
 
Ramiz Mavludov:
Antes de enviar um pedido, faça um cheque, http://docs.mql4.com/check/istradeallowed
E isto se refere ao botão de auto-comércio.
 
Vasyl Nosal:
E isto se refere ao botão de auto-comércio.
Eu não entendo. Sem auto-comercialização, sua EA não deve fazer nada.
 
Ramiz Mavludov:
Eu não entendo. Sem auto-comercialização, sua EA não deve fazer nada.
Não. Ela pode e, na verdade, na maioria das vezes, não deve fazer nada. Quando o botão AutoTrade é desativado, ele não pode funcionar somente com as funções de negociação. O restante dos cálculos estão bem.
 
Ramiz Mavludov:
Eu não entendo. Se você não ativar o comércio automático, sua EA não deve fazer nada.
O que está escrito no link não tem qualquer relevância para a questão do fechamento do mercado.
 
Vasyl Nosal:
Não é verdade.

Talvez devesse ser verificado novamente. A última vez que trabalhei neste assunto foi antes da atualização da MQL4. Naquela época, tal forma indicava a possibilidade de negociar no símbolo em geral, e não em um momento específico. Além disso, a ajuda é agora formulada de tal forma que não dá uma resposta clara. Vamos esperar até o fim de semana e verificar. Ou pode ser que alguém tenha algumas ações americanas na lista de símbolos para os quais o mercado está agora fechado. Então podemos verificar isso agora.

Quanto ao IsTradeAllowed indicado por Ramiz Mavludov, ele é de fato correto. Esta função permite verificar a situação de um mercado fechado. E você pode saber disso agora com antecedência, em vez de esperar pelo fim 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:

Talvez devesse ser verificado novamente. A última vez que trabalhei neste assunto foi antes da atualização da MQL4. Naquela época, tal forma indicava a possibilidade de negociar no símbolo em geral, e não em um momento específico. Além disso, a ajuda é agora formulada de tal forma que não dá uma resposta clara. Vamos esperar até o fim de semana e verificar. Ou pode ser que alguém tenha algumas ações americanas na lista de símbolos para os quais o mercado está agora fechado. Então podemos verificar isso agora.

Quanto ao IsTradeAllowed indicado por Ramiz Mavludov, ele é de fato correto. Esta função permite verificar a situação de um mercado fechado. E você pode saber disso agora com antecedência, em vez de esperar pelo fim de semana:

Resultado:

Sim, é.

Eu pensei que ele quis dizerboolIsTradeAllowed();.