Execucao parcial mesmo com action=TRADE_ACTION_DEAL

 

Caros colegas, descupe a questão aparentemente basica mas não consegui definir porque minha ordem foi executada somente parcialmente.

Ativo: WINV17

Se a ordem foi enviada "a mercado", Type=filling_return e Action=Deal, porque só executou parcial?


Desde já agradeço a atenção.


input    uint        Slippage       = 50;
.
.
.

int OnInit()
  {
    Trd.symbol=_Symbol;
    Trd.action=TRADE_ACTION_DEAL;
    Trd.type_filling=ORDER_FILLING_RETURN;
    Trd.deviation=Slippage;
    return(INIT_SUCCEEDED);
  }
.
.
.

// Esta parte do codigo deve inverter a posicao
if(Tick.ask <= NormalizePrice(PositionGetDouble(POSITION_PRICE_OPEN))-SL)
  {
    Trd.type=ORDER_TYPE_SELL;
    Trd.volume=NormalizeDouble(PositionGetDouble(POSITION_VOLUME)*Multip,0);
    if(!OrderSend(Trd,Res))
      {
         PrintFormat("Order Error: %d",GetLastError());
         return;
      }
.
.
.
 
Rogerio Sch:

Caros colegas, descupe a questão aparentemente basica mas não consegui definir porque minha ordem foi executada somente parcialmente.

Ativo: WINV17

Se a ordem foi enviada "a mercado", Type=filling_return e Action=Deal, porque só executou parcial?

Desde já agradeço a atenção.

Olá Rogerio Sch,

O tipo de execução ORDER_FILLING_RETURN permite a execução parcial. De acordo com a documentação:

"Esta política é usada somente para ordens a mercado (ORDER_TYPE_BUY e ORDER_TYPE_SELL), ordens limit e stop limit (ORDER_TYPE_BUY_LIMIT, ORDER_TYPE_SELL_LIMIT, ORDER_TYPE_BUY_STOP_LIMIT e ORDER_TYPE_SELL_STOP_LIMIT ) e somente para os ativos com execução a Mercado ou execução em um sistema de negociação externo (Exchange). No caso de um preenchimento parcial, uma ordem a mercado ou do tipo limit com volume remanescente não é cancelada, mas processada posteriormente. Para a ativação das ordens ORDER_TYPE_BUY_STOP_LIMIT e ORDER_TYPE_SELL_STOP_LIMIT, uma ordem limit correspondente, ORDER_TYPE_BUY_LIMIT/ORDER_TYPE_SELL_LIMIT com o tipo de execução ORDER_FILLING_RETURN, é criada."

Caso não queira que sua ordem seja parcialmente executada, então nesse caso você poderia utilizar o modo ORDER_FILLING_FOK.

Abraços,
Malacarne

 

Boa tarde, Estou com uma dúvida semelhante.

O que significa ser processada posteriormente?

Ficou vago.

Vai processar o que foi comprado/vendido até o TKP ou sl e fazer a conta proporcional ?

Meu robô controla o que ficou para trás e cancela com novo candle. Aí cancela tudo.

Ex.1: Supondo que eu deixe o sistema controlar o papel. Tenho 300 e consegui comprar 200 e ficou 100 placed.

O que acontece quando os 200 atingirem o TKP ou SL?


Gostaria que o que foi comprado/vendido permanecesse.

 
potmoney:


...  O que acontece quando o preço atingir TP?

--   1) Antes de atingir o TP o preço vai atingir o preço da oferta que ficou na pedra, então vai executar a compra  dos 100 restantes e  qdo o preço atingir o TP a posição total é fechada.

... 2) Se  até o final do pregão não for atingido o preço de compra dos 100 restantes, a oferta pode ficar para o dia seguinte depende do MODO GTC. Nesse caso você vai pagar nova nota de corretagem qdo. for executada.


... O que acontece com  os 200 o preço atingir SL?


--  3)  Acredito que o processo seja semelhante ao que ocorre no HB.  Ao atingir o SL a posição é fechada e dependendo do MODO GTC o que estava na pedra fica na pedra, essa situação só aconteceu comigo quando usada HB, então não posso afirmar que é assim que acontece no MT5.


 
Rogerio Giannetti Torres:

...  O que acontece quando o preço atingir TP?

--   1) Antes de atingir o TP o preço vai atingir o preço da oferta que ficou na pedra, então vai executar a compra  dos 100 restantes e  qdo o preço atingir o TP a posição total é fechada.

... 2) Se  até o final do pregão não for atingido o preço de compra dos 100 restantes, a oferta pode ficar para o dia seguinte depende do MODO GTC. Nesse caso você vai pagar nova nota de corretagem qdo. for executada.


... O que acontece com  os 200 o preço atingir SL?


--  3)  Acredito que o processo seja semelhante ao que ocorre no HB.  Ao atingir o SL a posição é fechada e dependendo do MODO GTC o que estava na pedra fica na pedra, essa situação só aconteceu comigo quando usada HB, então não posso afirmar que é assim que acontece no MT5.


Só que na minha corretora,  o sistema encerra todos os trades do dia no final. Day trade. 
Acho que está errado.  Se comprou 200 , fica valendo os 200 e cancela o que ficou pra trás.
Ou então deixa o robô controlar. É o que acontece no HB.
Agora , a gente fica nesta incerteza técnica. Nas mãos da próxima versão beta.
 
potmoney:
Só que na minha corretora,  o sistema encerra todos os trades do dia no final. Day trade. 
Acho que está errado.  Se comprou 200 , fica valendo os 200 e cancela o que ficou pra trás.
Ou então deixa o robô controlar. É o que acontece no HB.
Agora , a gente fica nesta incerteza técnica. Nas mãos da próxima versão beta.


100% das corretoras de valores usam para o mercado a vista  MODO GTC: válido até cancelar.  Então no modo preenchimento RETURN OU FOK a ordem (ou o restante dela) não é cancelada ao final do pregão.

Como você está comandando a ordem no HB ou no MT5? 

Qual é a sua corretora?

PS: Uma vez recebida a ordem na B3, quem faz o controle da validade e do preenchimento da ordem é o sistema da B3, o HB e o MT5 são meros expectadores desse processo.
 
Rogerio Giannetti Torres:


100% das corretoras de valores usam para o mercado a vista  MODO GTC: válido até cancelar.  Então no modo preenchimento RETURN OU FOK a ordem (ou o restante dela) não é cancelada ao final do pregão.

Como você está comandando a ordem no HB ou no MT5? 

Qual é a sua corretora?

PS: Uma vez recebida a ordem na B3, quem faz o controle da validade e do preenchimento da ordem é o sistema da B3, o HB e o MT5 são meros expectadores desse processo.

A rico informa que, se não encerrarmos os trades até certa hora , os mesmos serão automaticamente encerrados por ela. Então , não fica nada pro dia seguinte.

 
potmoney:

A rico informa que, se não encerrarmos os trades até certa hora , os mesmos serão automaticamente encerrados por ela. Então , não fica nada pro dia seguinte.

Como assim? A Rico te obriga a fazer daytrade quando vc opera pelo MT5?

Se você quiser comprar ações (ou mesmo contratos futuros) pra segurar por alguns dias ou semanas não pode???

Acredito que essa regra só seja aplicada se a pessoa estiver operando com alavancagem (sem margem suficiente na conta para segurar o ativo pro dia seguinte), não? 

Razão: