Estatísticas de derrapagem de pedidos limitados na troca - página 5

 

Não criei um fio desnecessário, pois o tópico de discussão está relacionado ao assunto. Entretanto, vou traçar uma linha vermelha para deixar imediatamente claro que não há necessidade de ler ANTES.

A DISCUSSÃO ATÉ ESTE PONTO NÃO TEM NADA A VER COM A QUE SE SEGUE.

 
Um pedido foi apresentado ao SD reproduzindo um bug - escorregando no testador de um pedido de limite de estoque

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

Bichos, insetos, perguntas

fxsaber, 2017.04.07 17:21

Consultor especializado para o testador (Metaquotes-Demo)
#include <MT4Orders.mqh>

// Скольжение лимитника на RTS-6.17
void OnTick()
{
  MqlTick Tick;    
  SymbolInfoTick(_Symbol, Tick);

// 2017.04.06 10:00:00                [time]   [bid]   [ask]  [last] [volume]    [time_msc] [flags]  
// 2017.04.06 10:00:00   2017.04.06 10:00:00  114200  114260  114200        2 1491472800335      56  
  if (Tick.time_msc == 1491472800335)
    OrderSend(_Symbol, OP_BUYLIMIT, 1, 114250, 0, 0, 0);
}

Resultado

2017.04.07 18:18:45.366 RTS-6.17 : real ticks begin from 2017.04.06 00:00:00
2017.04.07 18:18:45.778 2017.04.06 10:00:00   buy limit 1.00 RTS-6.17 at 114250 (114200 / 114260 / 114200)
2017.04.07 18:18:46.051 2017.04.06 10:00:00   order [#2  buy limit 1.00 RTS-6.17 at 114250] triggered
2017.04.07 18:18:46.051 2017.04.06 10:00:00   deal #2  buy 1.00 RTS-6.17 at 114240 done (based on order #2)
2017.04.07 18:18:46.051 2017.04.06 10:00:00   deal performed [#2  buy 1.00 RTS-6.17 at 114240]
2017.04.07 18:18:46.051 2017.04.06 10:00:00   order performed buy 1.00 at 114240 [#2  buy limit 1.00 RTS-6.17 at 114250]

Limite de deslizamento no símbolo de estoque - BAG!

Abaixo está uma conversa
Support Team 2017.04.10 18:04

fxsaber

O limite de deslizamento em um símbolo de estoque é um BAG!

Em que se baseiam estas conclusões?

Vamos supor que o mercado atual é o 114300 / 114280.

Você estabelece uma ordem de limite para comprar o limite 114250. Alguém no mercado decidiu vender a um preço garantido e estabeleceu um limite de venda de 114200, como resultado, ele coletou todas as ordens de limite de compra na faixa do mercado a 114200.

Esta é uma situação bastante normal no mercado de ações.

Equipe de apoio2017.04.11 09:58

fxsaber

  1. Era sobre o testador.
  2. Neste cenário, o deslize positivo só será para alguém que tenha estabelecido um limite de venda pior do que o mercado. E os builimites correspondentes serão executados sem escorregamento.

1. é claro.

2. O que você quer dizer com "somente"? Para aqueles que negociam na troca, para dizer de forma branda, não estarão de acordo. A propósito, eles já foram discordantes.

Equipe de suporte2017.04.11 11:00

fxsaber

Sugiro que esta discussão seja levada ao público. Como você tem algum conhecimento e experiência, eu tenho outros. Como eles se correlacionam com os outros só podem ser vistos em público. Você me apóia?

Neste caso, "levá-lo ao público" não fará nada - há uma realidade objetiva - o trabalho do mercado de ações, não depende de apelar para a maioria. A decisão não foi tomada em vão, mas com base em pedidos daqueles que realmente negociam na troca.

E quanto ao submarino, não deve haver deslizamento de limite no testador. Acho que você concordará comigo lá.
Eu discordo - ver respostas anteriores.

Aqui está a conversa.


Os desenvolvedores alegam que se você enviar um limite de venda em uma troca a um preço pior que o preço atual, os melhores limites de compra serão executados com deslize positivo. Não estou de acordo com isso.

Não está claro em que lógica os desenvolvedores concluem que ordens de limite deslizante (tão boas quanto o mercado) no TESTER é OK.


Obviamente, um ponto de vista está errado. Eu ficaria grato se as pessoas comentassem construtivamente sobre este tópico.

 

aqui? https://www.metatrader5.com/ru/terminal/help/general_concept#order_type

В режиме биржевого исполнения цена, указываемая при выставлении лимитных ордеров, не проверяется. Ее можно указать выше текущей цены Ask

(для ордеров на покупку) и ниже цены Sell (для ордеров на продажу). При выставлении ордера с такой ценой он практически сразу срабатывает и превращается в рыночный. Однако в отличие от рыночных ордеров, где трейдер фактически соглашается на сделку по неуказанной текущей рыночной цене, лимитный ордер будет исполнен по цене не худшей, чем указанная.

ou seja, neste caso o limite de venda não executará pior que114200, e coletará todo o limite de compra acima, mas se transforma em uma ordem de mercado, por que afeta o limite de compra? é ao melhor preço para o limite de venda, que está dentro da definição de uma ordem de limite (a um preço não pior que o especificado) ao qual o limite de venda será executado.

 
Abaixo está a conversa
Support Team 2017.04.10 18:04

fxsaber

O limite de deslizamento no símbolo de estoque é BAG!

Qual é a base para tais conclusões?

Suponha que o mercado atual seja 114300 / 114280.

Você faz um pedido limite para comprar o limite 114250. Alguém no mercado decidiu vender a um preço garantido e estabeleceu um limite de venda de 114200, como resultado, ele coletou todas as ordens de limite de compra na faixa do mercado a 114200.

Esta é uma situação bastante normal no mercado de câmbio.

As ordens de limite de troca não podem deslizar na direção mais ou menos. Há um erro lógico no exemplo acima. O fato de a contraparte estabelecer uma ordem limite em 114200 (o que é pior do que o mercado) não significa que o limite de compra será executado em 114240 ao invés de 114250. Neste caso, a contraparte receberá de nós um preço melhor a 114250 e descerá ainda mais na carteira de pedidos, ganhando o volume necessário e piorando seu preço médio. Mas nosso pedido será executado sem escorregamento.
 
Vasiliy Sokolov:
O seguinte é uma conversa
As ordens de limite de troca não podem deslizar para mais ou para menos. Há um erro lógico no exemplo acima. Só porque a contraparte coloca uma ordem de venda limite em 114200 (que está abaixo do mercado) não significa que o limite de compra poderá ser preenchido em 114240 em vez de 114250. Neste caso, a contraparte receberá de nós um preço melhor a 114250 e descerá ainda mais na carteira de pedidos, ganhando o volume necessário e piorando seu preço médio. Mas nosso pedido será executado sem escorregamento.
Concordo com o orador anterior. A única coisa com a qual eu não concordo é "nenhum deslize").
 
 
Vasiliy Sokolov:
Abaixo está uma conversa
As ordens de limite de mercado não podem deslizar para cima ou para baixo. Neste exemplo, há um erro lógico. O fato de a contraparte colocar uma ordem de venda limite a 114200 (que é pior que o preço de mercado) não significa que o limite de compra poderá ser executado a 114240 em vez de 114250. Neste caso, a contraparte receberá de nós um preço melhor a 114250 e descerá ainda mais na carteira de pedidos, ganhando o volume necessário e piorando seu preço médio. Mas nosso pedido será executado sem escorregamento.

Eu concordo. Eu me antecipei a este exemplo.

Considere um caso como este:

Aqui está um consultor especializado:

//+------------------------------------------------------------------+
//|                                               MarketBuyLimit.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#include <Trade\Trade.mqh>

int ExtLastHour=0;
int ExtOverMarket=1000;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlDateTime dt;
   TimeTradeServer(dt);
//---
   if(dt.hour!=ExtLastHour)
     {
      CTrade  trade;
      MqlTick tick;
      double  point=SymbolInfoDouble(Symbol(),SYMBOL_POINT);
      //--- получим тик
      SymbolInfoTick(Symbol(),tick);
      //--- есть позиции?
      if(!PositionsTotal())
        {
         if(!trade.BuyLimit(1.0,tick.ask+ExtOverMarket*point,Symbol()))
           Print("BuyLimit setup failed");
        }
      else
        {
         if(!trade.SellLimit(1.0,tick.bid-ExtOverMarket*point,Symbol()))
           Print("BuyLimit setup failed");
        }
      ExtLastHour=dt.hour;
     }
  }

Isto é, abrimos e fechamos com ordens de limite 1000 pips melhor do que o mercado (o preço é mais alto do que o pedido de Limite de Compra, e o preço é mais baixo do que o pedido de Limite de Venda).

Eis como será um gráfico de negociação no caso de execução sem deslizamento:

E é assim que vai ser quando executado com um deslize:


Vamos tentar pensar em como combinar o funcionamento correto de ambas as opções.

 

Fizemos as mudanças necessárias para lidar corretamente com ambos os casos de ordens limitadas no modo de troca - melhor que o mercado e pior que o mercado.

Para estar disponível após a atualização da MetaQuotes-Demo nos próximos dias.

 
MQ Alexander:

Fizemos as mudanças necessárias para lidar corretamente com ambos os casos de ordens limitadas no modo de troca - melhor que o mercado e pior que o mercado.

Ele estará disponível após a atualização da MetaQuotes-Demo nos próximos dias.

Fórum sobre comércio, sistemas comerciais automatizados e estratégias comerciais de teste

FORTES. Perguntas sobre a execução

fxsaber, 2017.02.22 23:32

Existem dois "tipos" de limitadores - cotação e execução. A cotação é tão boa quanto o preço atual (e não igual). As outras são Execução.

Os limitadores cotados devem ser executados no testador exatamente pelo preço indicado.

Limites de execução - ao preço do tick em que é fixado (SellLimit - Bid, BuyLimit - Ask), como se não fossem limites, mas marcas.


Haverá esta lógica?

 
fxsaber:

Os limitadores cotados devem ser executados no testador exatamente ao preço cotado.

Sim

Limites de execução - ao preço do tick, no qual está definido (SellLimit - Bid, BuyLimit - Ask), como se não fossem limites, mas mercados.
Para ser mais preciso - para troca as ordens de limite colocadas ao melhor preço de mercado (Ask for BuyLimit mais alto e Bid for SellLimit mais baixo) serão executadas (ativadas) imediatamente após serem colocadas (sem esperar pelo próximo preço) ao preço de mercado atual (Ask for BuyLimit, Bid for SellLimit).