Detectar se é mercado nacional(BR) ou internacional (Forex)

 

Gostaria de saber o robô está rodando em um ativo de mercado nacional ou internacional.

O principal motivo, é para evitar entrar em pré leilão.

Verifique que uma das soluções seria verificar o tick.volume, e quando for 0, é porquê está em leilão.


static MqlTick tick;

SymbolInfoTick(_Symbol, tick);


if (tick.volume == 0)
Print("Leilão");
else
Print("Fora de leilão"); 

(Sugestão verificada aqui: https://www.mql5.com/pt/forum/343557)


Porém, em mercado internacional, sempre está zerado.

Eu gostaria de saber, quando for mercado nacional, verifico se está em leilão (usando a função acima), para não operar quando estiver em leilão. Mas ao mesmo tempo, em mercado internacional pular essa verificação, até porquê, sempre retorna 0.

Obrigada

Estado do ativo - Leilão/Negociação
Estado do ativo - Leilão/Negociação
  • 2020.06.09
  • www.mql5.com
Estou criando um EA e preciso que o robô para de executar a lógica caso o ativo esteja em Leilão...
 
Ha-yun:

Gostaria de saber o robô está rodando em um ativo de mercado nacional ou internacional.

O principal motivo, é para evitar entrar em pré leilão.

Verifique que uma das soluções seria verificar o tick.volume, e quando for 0, é porquê está em leilão.


(Sugestão verificada aqui: https://www.mql5.com/pt/forum/343557)


Porém, em mercado internacional, sempre está zerado.

Eu gostaria de saber, quando for mercado nacional, verifico se está em leilão (usando a função acima), para não operar quando estiver em leilão. Mas ao mesmo tempo, em mercado internacional pular essa verificação, até porquê, sempre retorna 0.

Obrigada

O mais facil que consigo pensar seria voce dar uma olhada na funcao SymbolInfoInteger e no parametro SYMBOL_TRADE_CALC_MODE . Se tiver dificuldades pode comentar novamente.