FORTES. Questões de aplicação da lei - página 88

 
fxsaber:

Um limitador pode ser FOK?

Boa pergunta.

Isto é (destacado em vermelho) uma ordem limite não pode ser uma FOK porque é executada a um preço fixo,

mas, por outro lado, o volume pode ser suficiente....


ORDER_FILLING_FOK

Данная политика исполнения означает, что ордер может быть исполнен исключительно в указанном объеме.
Если на рынке в данный момент не присутствует достаточного объема финансового инструмента, то ордер не будет исполнен.
Необходимый объем может быть составлен из нескольких предложений, доступных в данный момент на рынке.
Acho que (nunca usado FOK) poderia ser FOK, mas é preciso verificar o volume.
 
prostotrader:

Boa pergunta.

Isto é (destacado em vermelho) a ordem limite não pode ser FOK, pois é executada a um preço fixo,

mas, por outro lado, o volume pode ser suficiente....


ORDER_FILLING_FOK

Данная политика исполнения означает, что ордер может быть исполнен исключительно в указанном объеме.
Если на рынке в данный момент не присутствует достаточного объема финансового инструмента, то ордер не будет исполнен.
Необходимый объем может быть составлен из нескольких предложений, доступных в данный момент на рынке.

É que a Ajuda é tortuosa. Uma ordem limite é sempre do tipo de preenchimento RETURN. FOK, IOC são apenas mercados.

Mas isto só se aplica ao intercâmbio e à ECN. Como também existem STPs onde os limitadores são ordens virtuais que são apenas iniciadores das respectivas ordens de mercado, FOK/IOC é possível para eles. Mas é somente na tela que eles são limitadores, não em essência.

 
fxsaber:
É que a Ajuda é tortuosa. Uma ordem limite é sempre apenas um preenchimento do tipo RETURN. FOK, IOC são apenas marcadores.

Não é verdade, eu sempre uso limitadores, mas somente com o COI

há mais de 3 anos.

Verifique por si mesmo :)

Adicionado

Uma ordem limitada é o mesmo que uma ordem de mercado, mas é um preço de execução.

Se houver um preço, ele é executado, se não houver preço, ele é removido.

Política de execução

Além das regras gerais de execução de ordens especificadas pelo corretor, um comerciante pode especificar condições adicionais no campo "Preencher" da janela de definição de ordens:

  • Tudo/Nada (Preencher ou Matar)
    Esta política de execução significa que uma ordem só pode ser preenchida até o tamanho especificado. Se o volume de um instrumento financeiro atualmente no mercado for insuficiente, a ordem não será executada. O volume necessário pode ser compilado a partir de várias ofertas atualmente disponíveis no mercado.
  • Tudo/Parcial (Imediata ou Cancelada).
    Neste caso, o comerciante concorda em realizar um negócio com o volume máximo disponível no mercado dentro do volume especificado no pedido. Se a execução completa não for possível, a ordem será executada para o volume disponível, e o volume não executado da ordem será cancelado. A possibilidade de usar as ordens do COI é determinada no servidor comercial.
  • Retornar
    Esta modalidade é utilizada para ordens de mercado (Compra e Venda), limite e stop-limit e somente nas modalidades "Execução de Mercado" e "Execução de Câmbio". No caso de execução parcial, uma ordem de mercado ou limite com um volume residual não é removida, mas permanece em vigor.

A aplicação de políticas de execução dependendo do modo de execução pode ser representada na forma de uma tabela:

Modo de execução\Política de execução

Todos/Nenhum (FOK)

Tudo/Parcial (COI)

Retornar

Execução imediata

+

-

-

Desempenhos a pedido

+

-

-

Execução de acordo com o mercado

+

+

+

Execução de câmbio

+

+

+

 
prostotrader:

Não é verdade, eu sempre uso limitadores, mas somente com o COI

há mais de 3 anos.

Confira por si mesmo :)

  1. Nós definimos o IOC-BuyLimit para 10 lotes dentro do spread, e então imediatamente fazemos a VENDA com 1 lote. A reação esperada - dois negócios opostos pelo mesmo preço (lucro - zero, mas comissão dupla) para 1 lote, e 9 lotes cancelados.
  2. Configuramos o FOK-BuyLimit para 10 lotes dentro do spread, e então imediatamente vendemos 1 lote. A resposta esperada é vender por 1 lote, e 10 lotes cancelados.

Você não vai ver isso. E o fato de que em Request for limit types FOK/IOC-tipos podem ser definidos, não significa que eles sejam deste tipo.

 
fxsaber:

  1. Nós definimos o IOC-BuyLimit para 10 lotes dentro do spread e depois imediatamente vendemos 1 lote. A reação esperada - duas negociações opostas pelo mesmo preço (lucro zero, mas comissão dupla) para 1 lote, e 9 lotes cancelados.
  2. Configuramos o FOK-BuyLimit para 10 lotes dentro do spread, e então imediatamente vendemos 1 lote. A resposta esperada é vender por 1 lote, e 10 lotes cancelados.

Você não vai ver isso. E o fato de que em Request for Limits trades de tipos FOK/IOC-type não significa que eles sejam deste tipo.

Veja a tabela acima.

FOK está presente em todos os modos.

É só que com FOK você precisa verificar o volume, mas isto não é uma GARANTIA que a ordem será executada porque quando

chegou à Bolsa o volume necessário pode não estar lá (já está comido).

Correspondência de pedidos FOK incompletos

 
prostotrader:

Quando o pedido "chega" à Bolsa, o volume necessário pode não estar disponível (já foi comido), portanto

Correspondência de pedidos FOK incompletos

Entrada de pedido FOK incompleta, portanto, entrada de pedido FOK incompleta. Os limitadores não são afetados por isso. Acima estão dois casos que são fáceis de verificar. Eles não podem ser reproduzidos porque não há limites FOK/IOC se forem oferecidos a um preço não pior do que o preço atual.
 
fxsaber:
Esta é uma referência tortuosa. Isto não se aplica aos pedidos de Limite. Acima estão dois casos que são fáceis de verificar. Você não pode reproduzi-los porque não há limites FOK/IOC se o preço for tão bom quanto o atual.

Não estou fantasiando, estou lhe falando de minhas encomendas, que são feitas por uma EA em uma conta real.

Se você quiser pensar como está pensando agora, você é livre para fazer o que quiser!

 
prostotrader:

Não estou fantasiando, estou lhe falando de minhas encomendas, que são feitas por uma EA em uma conta real.

Se você quiser pensar como está pensando agora, você é livre para fazer o que quiser!

Lógica do ferro

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

FORTES. Perguntas sobre a execução

fxsaber, 2017.02.22 22:50

  1. Coloque o IOC-BuyLimit 10 lotes dentro do spread e, em seguida, faça imediatamente SELL 1 lote. Reação esperada - duas negociações opostas ao mesmo preço (lucro zero, mas comissão dupla) para 1 lote, e 9 lotes cancelados.
  2. Configuramos o FOK-BuyLimit para 10 lotes dentro do spread, e então imediatamente vendemos 1 lote. A resposta esperada é vender por 1 lote, e 10 lotes cancelados.

Você não vai ver isso.

Por que discutir quando existe um critério claro para verificar se existe ou não o FOK/IOC para limitadores.
 
fxsaber:
Lógica do ferro
Por que discutir quando existe um critério claro para verificar se existe ou não o FOK/IOC para limitadores.

Desculpe, você provavelmente não notou que eu escrevi que eu uso ordens LIMIT com o preenchimento IOC

//+------------------------------------------------------------------+
//| Expert set order function                                        |
//+------------------------------------------------------------------+
void SetOrder(const string aSymbol, uint &order_id, const double price, const double volume, const bool buy_sell)
{
  MqlTradeRequest request = {0};
  MqlTradeResult  result  = {0};
  main_order_ticket = 0;
  main_mem_magic = magic_storage + 1;
  main_order_symbol = aSymbol;
//---  
  if(main_mem_magic >= (magic_number + 65530)) main_mem_magic = magic_number;
  
//--- Fill structure
  request.magic = main_mem_magic;
  request.symbol = aSymbol;
  request.volume = volume;
  request.type_filling = ORDER_FILLING_IOC;
  request.type_time = ORDER_TIME_DAY;
    
  if(price == 0)
  {
    request.action = TRADE_ACTION_DEAL;
    request.comment = "Рыночный ордер...";
//---    
    if(buy_sell)
    {
      request.type = ORDER_TYPE_BUY;
    }
    else
    {
      request.type = ORDER_TYPE_SELL;
    }
  }
  else
  {
    request.action = TRADE_ACTION_PENDING;
    request.price = price;
    request.comment = "Лимитный ордер...";
//---    
    if (buy_sell)
    {
      request.type = ORDER_TYPE_BUY_LIMIT;
    }
    else
    {
      request.type = ORDER_TYPE_SELL_LIMIT;
    }  
  }  
//--- Send order
  if(OrderSendAsync(request, result))
  {
    if((result.retcode == TRADE_RETCODE_PLACED) || (result.retcode == TRADE_RETCODE_DONE))
    {
      order_id = result.request_id;
      magic_storage = main_mem_magic;
      main_state = ORD_MAIN_DO_SET;
      main_mem_time = GetMicrosecondCount();
      main_start_time = TimeCurrent();
      SetTransCount();
    }
    else
    {
      order_id = 0;
      main_mem_magic = 0;
      main_order_symbol = "";
      main_state = ORD_NO_STATE;
      main_mem_time = 0;
      main_start_time = 0;
      CheckError(result.retcode, "SetOrder: Ордер не установлен! Причина: ", MAIN_ORDER, main_order_ticket);
    }
  }
  else
  {
    order_id = 0;
    main_mem_magic = 0;
    main_order_symbol = "";
    main_state = ORD_NO_STATE;
    main_mem_time = 0;
    main_start_time = 0;
    CheckError(result.retcode, "SetOrder: Ордер не отправлен! Причина: ", MAIN_ORDER, main_order_ticket);
  }
}

Este código tem trabalhado para mim por mais de 3 anos

 
prostotrader:

Desculpe, você provavelmente não notou que eu escrevi que estava usando ordens LIMIT com um COI de preenchimento

Este código está funcionando há mais de 3 anos

Esta é a razão pela qual eu escrevi

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

FORTES. Perguntas sobre a execução

fxsaber, 2017.02.22 22:50

  1. Coloque o IOC-BuyLimit 10 lotes dentro do spread e, em seguida, faça imediatamente SELL 1 lote. Reação esperada - duas negociações opostas ao mesmo preço (lucro zero, mas comissão dupla) para 1 lote, e 9 lotes cancelados.
  2. Configuramos o FOK-BuyLimit para 10 lotes dentro do spread, e então imediatamente vendemos 1 lote. A resposta esperada é vender por 1 lote, e 10 lotes cancelados.

Você não vai ver isso. E o fato de que em Request for limit types FOK/IOC-tipos podem ser definidos, não significa que eles sejam deste tipo.

Não me interessa o que o MT5 parece permitir para as ordens de limite. O que importa é o que chega ao intercâmbio. Portanto, se o intercâmbio tivesse uma ordem de limite do COI, ele se comportaria como no ponto 1. FOK - p.2. Você não vê isto na troca, então devemos falar sobre a essência da FOK/IOC, e não sobre o que a MT5 permite algo lá em Request-queries. Faça o OrderGetInteger de seus "IOC"-limites pelo menos.
Razão: