Statistiche di slippage degli ordini limite sulla borsa - pagina 5

 

Non ho creato un thread inutile perché l'argomento della discussione è legato al tema. Tuttavia, disegnerò una linea rossa per rendere immediatamente chiaro che non c'è bisogno di leggere PRIMA di essa.

LA DISCUSSIONE FINO A QUESTO PUNTO NON HA NIENTE A CHE VEDERE CON QUELLA SUCCESSIVA.

 
Una domanda è stata presentata alla SD riproducendo un bug - lo slittamento nel tester di un ordine limite di azioni

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Bug, bug, domande

fxsaber, 2017.04.07 17:21

Expert Advisor per il tester (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);
}

Risultato

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 di scorrimento sul simbolo delle azioni - BAG!

Qui sotto c'è una conversazione
Support Team 2017.04.10 18:04

fxsaber

Il limite di scorrimento su un simbolo azionario è una BORSA!

Su quali basi sono queste conclusioni?

Supponiamo che il mercato attuale sia 114300 / 114280.

Hai impostato un ordine limite per comprare il limite 114250. Qualcuno nel mercato ha deciso di vendere a un prezzo garantito e ha impostato un limite di vendita di 114200, come risultato ha raccolto tutti gli ordini limite di acquisto nella gamma del mercato a 114200.

Questa è una situazione abbastanza normale nel mercato azionario.

Squadra di supporto2017.04.11 09:58

fxsaber

  1. Si trattava del tester.
  2. In questo scenario, lo slippage positivo sarà solo per qualcuno che ha impostato un limite di vendita peggiore del mercato. E i buylimits corrispondenti saranno eseguiti senza slittamento.

1. è chiaro.

2. Cosa vuol dire "solo"? Per coloro che commerciano sullo scambio sarà disaccordo, per usare un eufemismo. A proposito, hanno già dissentito.

Squadra di supporto2017.04.11 11:00

fxsaber

Suggerisco di portare questa discussione in pubblico. Come voi avete alcune conoscenze ed esperienze, io ne ho altre. Come si correlano con gli altri può essere visto solo in pubblico. Mi sostieni?

In questo caso, "portarlo al pubblico" non servirà a niente - c'è una realtà oggettiva - il mercato azionario funziona, non dipende dall'appello alla maggioranza. La decisione non è stata presa per niente, ma sulla base delle richieste di coloro che effettivamente commerciano in borsa.

E per quanto riguarda il sub, non ci dovrebbe essere alcuno slittamento del limite nel tester. Penso che sarete d'accordo con me.
Non sono d'accordo - vedi le risposte precedenti.

Ecco il discorso.


Gli sviluppatori sostengono che se si invia un limite di vendita su una borsa a un prezzo peggiore del prezzo corrente, i migliori limiti di acquisto saranno eseguiti con uno slippage positivo. Non sono d'accordo.

Non è chiaro in base a quale logica gli sviluppatori concludono che lo slittamento degli ordini limite (buono come il mercato) nel TESTER è OK.


Ovviamente un punto di vista è sbagliato. Sarei grato se la gente commentasse in modo costruttivo questo argomento.

 

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

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

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

cioè in questo caso il limite di vendita non verrà eseguito peggio di114200, e raccoglierà tutto il limite di acquisto di cui sopra, ma si trasforma in un ordine a mercato, perché influisce sul limite di acquisto? è al miglior prezzo per il limite di vendita, che rientra nella definizione di un ordine limite (a un prezzo non peggiore di quello specificato) al quale il limite di vendita verrà eseguito.

 
Di seguito la conversazione
Support Team 2017.04.10 18:04

fxsaber

Il limite che scorre sul simbolo delle azioni è BAG!

Qual è la base di tali conclusioni?

Supponiamo che il mercato attuale sia 114300 / 114280.

Piazzate un ordine limite per comprare il limite 114250. Qualcuno nel mercato ha deciso di vendere a un prezzo garantito e ha fissato un limite di vendita di 114200, come risultato ha raccolto tutti gli ordini limite di acquisto nella gamma del mercato a 114200.

Questa è una situazione abbastanza normale sul mercato dei cambi.

Gli ordini con limite di scambio non possono scorrere nella direzione del più o del meno. C'è un errore logico nell'esempio precedente. Il fatto che la controparte abbia impostato un ordine limite a 114200 (che è peggio del mercato) non significa che il limite di acquisto sarà eseguito a 114240 invece che a 114250. In questo caso la controparte riceverà un prezzo migliore da noi a 114250 e andrà più in basso nel libro degli ordini, guadagnando il volume richiesto e peggiorando il suo prezzo medio. Ma il nostro ordine sarà eseguito senza slittamento.
 
Vasiliy Sokolov:
La seguente è una conversazione
Gli ordini limite di scambio non possono scorrere in più o in meno. C'è un errore logico nell'esempio precedente. Solo perché la controparte piazza un ordine di vendita limite a 114200 (che è al di sotto del mercato) non significa che il limite di acquisto potrà essere eseguito a 114240 invece che a 114250. In questo caso la controparte riceverà un prezzo migliore da noi a 114250 e andrà più in basso nel libro degli ordini, guadagnando il volume richiesto e peggiorando il suo prezzo medio. Ma il nostro ordine sarà eseguito senza slittamento.
Sono d'accordo con l'oratore precedente. L'unica cosa su cui non sono d'accordo è "nessuno slittamento").
 
 
Vasiliy Sokolov:
Qui sotto c'è una conversazione
Gli ordini Market Limit non possono scivolare verso l'alto o verso il basso. In questo esempio c'è un errore logico. Il fatto che la controparte abbia messo un ordine di vendita limite a 114200 (che è peggio del prezzo di mercato) non significa che il limite di acquisto sarà eseguito a 114240 invece che a 114250. In questo caso la controparte riceverà un prezzo migliore da noi a 114250 e andrà più in basso nel libro degli ordini, guadagnando il volume richiesto e peggiorando il suo prezzo medio. Ma il nostro ordine sarà eseguito senza slittamento.

Sono d'accordo. Ho preso la palla al balzo per questo esempio.

Considerate un caso come questo:

Ecco un tale Expert Advisor:

//+------------------------------------------------------------------+
//|                                               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;
     }
  }

Cioè apriamo e chiudiamo con ordini limite di 1000 pip meglio del mercato (prezzo sopra la domanda per il Buy Limit, e prezzo sotto l'offerta per il Sell Limit).

Ecco come apparirà il grafico di un'operazione in caso di esecuzione senza slippage:

E questo è come apparirà quando verrà eseguito con uno slittamento:


Proviamo a pensare come combinare il corretto funzionamento di entrambe le opzioni.

 

Abbiamo apportato le modifiche necessarie per gestire correttamente entrambi i casi di ordini limite in modalità scambio - meglio del mercato e peggio del mercato.

Sarà disponibile dopo l'aggiornamento di MetaQuotes-Demo nei prossimi giorni.

 
MQ Alexander:

Abbiamo apportato le modifiche necessarie per gestire correttamente entrambi i casi di ordini limite in modalità scambio - meglio del mercato e peggio del mercato.

Sarà disponibile dopo l'aggiornamento di MetaQuotes-Demo nei prossimi giorni.

Forum sul trading, sistemi di trading automatico e test di strategie di trading

FORTI. Domande sull'esecuzione

fxsaber, 2017.02.22 23:32

Ci sono due "tipi" di limitatori - citazione ed esecuzione. Citato è buono come il prezzo attuale (e non uguale). Gli altri sono Esecuzione.

I limiti citati devono essere eseguiti nel tester esattamente al prezzo indicato.

Execution-limits - al prezzo del tick su cui è impostato (SellLimit - Bid, BuyLimit - Ask), come se non fossero limiti, ma marche.


Ci sarà questa logica?

 
fxsaber:

I limitatori quotati devono essere eseguiti nel tester esattamente al prezzo quotato.

Limiti di esecuzione - al prezzo del tick, su cui è impostato (SellLimit - Bid, BuyLimit - Ask), come se non fossero limiti, ma mercati.
Per essere più precisi - per lo scambio gli ordini Limit piazzati al miglior prezzo di mercato (più alto Ask per BuyLimit e più basso Bid per SellLimit) saranno eseguiti (attivati) immediatamente dopo essere stati piazzati (senza aspettare il prossimo prezzo) al prezzo di mercato corrente (Ask per BuyLimit, Bid per SellLimit).
Motivazione: