Ordem a mercado consumindo o book para liquidar o volume
- www.mql5.com
Fala Jonathan, obrigado pela resposta rápida.
Sim, estou familiarizado com os outros tipos de filling, porém pelo meu entendimento, o tipo ORDER_FILLING_RETURN irá realizar o trade com volume parcial no primeiro nível de preço e o volume restante irá ficar no book esperando que alguém agrida minha ordem.
No meu exemplo acima, eu teria comprado 1 contrato a R$80,00 e o outro 1 contrato ficaria no book como ordem limitada de compra, ao invés de ter comprado a mercado 1 contrato a R$80,00 e mais 1 contrato a R$80,01.
Não é assim que funciona?

Boa noite!
Qual a melhor forma de enviar uma ordem a mercado e garantir que a ordem seja concluída com sucesso, mesmo que o volume da ordem precisa de consumir vários níveis de preço do book?
Estou usando ordens ORDER_TYPE_BUY/ORDER_TYPE_SELL, action TRADE_ACTION_DEAL e preenchimento ORDER_FILLING_FOK, pois quero que garantir que todo volume seja negociado e não só parcial.
O que acontece quando a liquidez não está grande é que por exemplo se o preço R$80,00 tem 1 contrato venda somente e depois no R$80,01 tem mais 5 contratos no book. Se eu mando uma ordem de compra como descrevi, de 2 contratos, o MT5 executa a ordem porém ela é cancelada, pois não há 2 contratos disponíveis no primeiro nível de preço, e eu escolhi o filling FOK (Fill or Kill). E as ordens a mercado não aceitam passar o preço. Por código até aceita, mas na documentação fala que se informado, o preço é ignorado para ordens a mercado.
Porém o conceito geral de ordem a mercado é negociar os lotes preenchidos a todos os preços que precisar, nesse caso seria em R$80,00 e R$80,01.
Como faço para a ordem a mercado consumir todos os níveis de preços do book necessário para liquidar todo o volume da ordem, ao invés de cancelar a ordem por falta de volume no primeiro nível?
Obrigado