取引所における指値注文のスリッページの統計 - ページ 5

 

サブジャンルに関連する話題なので、余計なスレッドを立てませんでした。ただし、赤い線を引いて、BEFOREを読む必要がないことをすぐにわかるようにします。

ここまでの話は、この後の話とは関係ない。

 
株式指値注文のテスターでスリッページが発生する不具合を再現したアプリケーションをSDに投稿しました。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

バグ、バグ、質問

fxsaber さん 2017.04.07 17:21

テスター用Expert Advisor (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);
}

結果

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]

銘柄のリミットスライディング - BAG!

以下は対談です。
Support Team 2017.04.10 18:04

エフエックスセイバー

証券記号のリミットスライディングはBAG!

この結論は、何を根拠にしているのでしょうか?

現在の相場が114300 / 114280だとします。

指値114250の買い指値注文を出す。市場の誰かが保証価格で売ることを決め、114200の売り指値を設定した結果、彼は市場の範囲内のすべての買い指値注文を114200に集めてしまったのです。

これは、株式市場ではごく普通の状況です。

サポートチーム2017.04.11 09:58

エフエックスセイバー

  1. テスターのことだったんですね。
  2. このシナリオでは、正のスリッページは、市場よりも悪い売り指値を設定した人にのみ発生します。また、対応する買い指値は、スリッページなしで約定します。

1.クリアである。

2.のみ」とはどういう意味ですか?取引所で取引する人にとっては、控えめに言っても不愉快なことでしょう。ちなみに彼らはすでに反対意見を出しています。

サポートチーム2017.04.11 11:00

エフエックスセイバー

この議論は公開で行うことを提案します。あなたには知識と経験があるように、私にも他のものがあります。それらがどのように相関しているかは、公の場でしか見ることができません。私をサポートしてくれますか?

この場合、「大衆に訴える」ことは何の役にも立たない。客観的な現実があるのだ。株式市場の仕組みは、多数派に訴えることに依存するものではない。何もせずに決めたわけではなく、実際に取引所で取引されている方からの要望をもとに決定しました。

また、サブについては、テスターで限界スリップが発生しないようにする。そこは納得していただけると思います。
私はそうは思いません - 以前の返信をご覧ください。

ここでトークを展開します。


開発者は、取引所で現在の価格より悪い価格で売り指値を送ると、最高の買い指値が正のスリッページで約定すると主張しています。それは納得がいきませんね。

開発者がどのような論理でTESTERで指値注文を(相場並みに)滑らせても良いと判断しているのかは不明です。


明らかに一方の視点が誤っている。このテーマについて、建設的なコメントをいただけるとありがたいです。

 

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

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

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

すなわち、この場合、売り指値は114200よりも 悪い実行されず、上記のすべての買い指値を収集しますが、それは成行注文に変わり、なぜそれが買い指値に影響を与えますか?それは売り指値が実行 される指値注文の定義(指定よりも悪い価格で内にある最高の価格で、 それはです。

 
以下はその時の会話です。
Support Team 2017.04.10 18:04

ファクスセーバー

銘柄のリミットスライディングはBAG!

そのような結論に至る根拠は何ですか?

現在の相場が114300 / 114280だとします。

指値114250の買い指値注文を出す。市場の誰かが保証価格で売ることを決め、114200の売り指値を設定した結果、彼は市場の範囲内のすべての買い指値注文を114200に集めてしまったのです。

これは、為替市場ではごく普通の状況です。

取引所指値注文は、プラス方向、マイナス方向にスライドすることはできません。上記の例には論理的な間違いがあります。取引相手が114200(市場より悪い)に指値注文を出したからといって、114250ではなく114240で買い指値が執行されるわけではありません。この場合、カウンターパーティは114250で当社からより良い価格を受け取り、オーダーブックのさらに下へ進み、必要な数量を得て、平均価格を悪化させることになります。しかし、私たちの注文はスリッページなしで実行されます。
 
Vasiliy Sokolov:
以下は対談です。
取引所指値注文は、プラス・マイナスでスライドさせることはできません。上記の例には論理的な間違いがあります。取引相手が(市場より低い)114200で売り指値注文を出したからといって、114250ではなく114240で買い指値が執行されるわけではありません。この場合、カウンターパーティは114250で当社からより良い価格を受け取り、オーダーブックのさらに下へ進み、必要な数量を得て、平均価格を悪化させることになります。しかし、私たちの注文はスリッページなしで実行されます。
前任者の意見に賛成です。唯一納得がいかないのは「滑らない」ことです(笑)。
 

kaus_bonus さん、Vasiliy Sokolov さん、Dmitriy Skub さん、ありがとうございました。


 
Vasiliy Sokolov:
以下は対談です。
成行指値注文は、上下にスライドすることはできません。この例では、論理的な間違いがあります。取引相手が(市場価格より悪い)114200で指値の売り注文を出したからといって、114250ではなく114240で買い指値が執行されるわけではありません。この場合、カウンターパーティは114250で当社からより良い価格を受け取り、オーダーブックのさらに下へ進み、必要な数量を得て、平均価格を悪化させることになります。しかし、私たちの注文はスリッページなしで実行されます。

私もそう思います。この例には飛びつきました。

このようなケースを考えてみましょう。

そんな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;
     }
  }

つまり、市場より1000pips有利な指値注文(買い指値はアスクより上の価格、売り指値はビッドより下の価格)で開始・終了します。

スリッページなしで約定した場合の取引チャートはこんな感じです。

そして、スリッページで実行するとこのようになります。


両方の選択肢の正しい操作方法を組み合わせて考えてみましょう。

 

取引所モードでの指値注文について、better than marketとworse than marketの両方のケースを正しく処理できるよう、必要な変更を行いました。

数日後のMetaQuotes-Demoのアップデート後に利用可能になる予定です。

 
MQ Alexander:

取引所モードでの指値注文について、better than marketとworse than marketの両方のケースを正しく処理できるよう、必要な変更を行いました。

数日後のMetaQuotes-Demoのアップデート後に利用可能になる予定です。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

フォルツァ執行に関する質問

fxsaber さん 2017.02.22 23:32

リミッターには、引用と実行という2つの「タイプ」があります。見積もりは現在の価格と同じ(イコールではない)。その他はExecution。

引用された指値は、記載された価格でテスターで正確に実行されなければなりません。

実行リミット - 設定されたティックの価格で(SellLimit - Bid, BuyLimit - Ask)、あたかもリミットではなく、マークであるかのように設定します。


このロジックはあるのでしょうか?

 
fxsaber:

引用された指値は、テスターで引用された価格で正確に実行する必要があります。

はい

実行制限 - それが設定されているティックの価格(SellLimit - Bid、BuyLimit - Ask)で、彼らは限界ではなく、市場であるかのように。
具体的には、取引所の指値注文は、より有利な市場価格(BuyLimitのAskが高く、SellLimitのBidが低い)で発注すると、現在の市場価格(BuyLimitのAsk、SellLimitのBid)で(次の価格を待たずに)直ちに執行(アクティブ化)されることになります。