Ordem no primeiro tick

 

Bom dia, 


Estou com um EA que deverá colocar ordem Limit ou Stop no primeiro tick na abertura do mercado do mini indíce.

O problema que ele lê alguns ticks de (bid e ask) do leilão e entende de maneira errada que o mercado abriu.

Alguém sabe como fazer para o EA entender exatamente quando o mercado abriu e não confundir com o leilão de abertura?

 
Guilherme Mendonca:

Bom dia, 


Estou com um EA que deverá colocar ordem Limit ou Stop no primeiro tick na abertura do mercado do mini indíce.

O problema que ele lê alguns ticks de (bid e ask) do leilão e entende de maneira errada que o mercado abriu.

Alguém sabe como fazer para o EA entender exatamente quando o mercado abriu e não confundir com o leilão de abertura?

Eu pensei em 2 possibilidades:

Validação com o primeiro candle do dia:

if(iTime(Symbol(),PERIOD_M1,0)>iTime(Symbol(),PERIOD_D1,0))

Ou, se o valor do LAST_PRICE do último tick for maior que 0, uma vez que no leilão não tem negócios, somente valores de ASK e BID.

MqlTick tickarray[];
MqlTick last_tick;
SymbolInfoTick(Symbol(),last_tick);
int last=CopyTicks(Symbol(),tickarray,COPY_TICKS_ALL,0,1);
double last_price=tickarray[0].last;
if(last_price>0)
   OpenOrder();