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

 

bxでmt5のデモ口座を作り始める。配信へのリンクが記載されたメールが届きます。サーバーを選択する段階で、デモ用ではなく、実際の取引用のサーバーを選択します。任意のデータでアカウントを作成します。証明書を作成する。あなたが持っているのは、実際の 相場と履歴を持つ残高ゼロのリアルアカウントだけ です。

 
pivomoe:

bxでmt5のデモ口座を作り始める。配信へのリンクが記載されたメールが届きます。サーバーを選択する段階で、デモ用ではなく、実際の取引用のサーバーを選択します。任意のデータでアカウントを作成します。証明書を作成する。あなたが持っているのは、実際の 相場と履歴を持つ残高ゼロのリアルアカウントだけ です。

クール-うまくいきました、ありがとうございます天と地 - デモとリアルのティックデータ。いつもありがとうございます。
 
fxsaber:

実際のティックに基づく」モードでは、「生成されたティックに基づく」モードと比較して、指値注文の正のスリッページが約50%高くなることが確認されました。

この結果、テスターの精度を上げるためにリアルティックを導入したのに、指値注文の正のスリッページを導入し、バックテスト結果を人為的にホバリングさせるという誤作動が発生しました。

取引所では、指値注文は滑らず、注文価格で正確に執行されます。しかし、テスターではそうはいきません。

この不具合は、上記リンク先で紹介されているライブラリを使用することで回避することができます。しかし、これでは松葉づえでの解決になってしまいます。テスター自体が正確に動くと意味がある。

このテーマについて、フォーラムの皆さんにご意見を伺っています。明らかな理由で、コミュニティの一員の意見を開発者が真摯に受け止めることは乏しいので。

誰も声を上げないのが残念です。
 
fxsaber:
誰も発言しなかったのが残念です。

この話題はすでにこのフォーラムのどこかで議論されていますし、開発者自身も新しいビルドで修正すると言っているようです。探してみてください、あまり入り込めなかったので...。

P.s.こちらも未回答だった話題ですhttps://www.mql5.com/ru/forum/86591/page4。

В билде 1340 MT5 очень странное исполнение отложенных ордеров на FOREX в тестере стратегий
В билде 1340 MT5 очень странное исполнение отложенных ордеров на FOREX в тестере стратегий
  • レビュー: 1
  • www.mql5.com
Если тестировать на «OHLC на M1», то ВСЕ ордера исполняются с проскальзыванием в 30-50 пятизначных пунктов...
 
Maxim Dmitrievsky:

この話題はすでにこのフォーラムのどこかで議論されていますし、開発者自身も新しいビルドで修正すると言っているようです。探してみてください、あまり入り込めなかったので...。

追伸:こんな話題もありました、こちらも未回答 https://www.mql5.com/ru/forum/86591/page4

修正されなかった。
 
fxsaber:
誰も声を上げなかったのが残念です。

根拠が全くないからです。

レポートを保存し、ZIPで圧縮する方がはるかに簡単です。計算で1つのトランザクションの例を示してください。

 
Renat Fatkhullin:

根拠が全くないからです。

レポートを保存し、ZIPで圧縮する方がはるかに簡単です。ステートメントで単一トランザクションの例を示す。

それで十分だと思ったのですが、https://www.mql5.com/ru/code/16134。

了解しました、準備します。

SlipPage
SlipPage
  • 投票: 10
  • 2016.08.25
  • fxsaber
  • www.mql5.com
Расчет проскальзываний совершенных сделок в валюте счета.
 

アドバイザー

#define OP_BUY ORDER_TYPE_BUY
#define OP_SELL ORDER_TYPE_SELL
#define OP_BUYLIMIT ORDER_TYPE_BUY_LIMIT
#define OP_SELLLIMIT ORDER_TYPE_SELL_LIMIT

// Кусок из https://www.mql5.com/ru/code/16006
class MT4ORDERS
{  
public:   
  static int MT4OrderSend( const string Symb, const int Type, const double dVolume, const double Price, const int SlipPage, const double SL, const double TP,
                            const string comment = NULL, const int magic = 0, const datetime dExpiration = 0, color arrow_color = clrNONE )
  {
    MqlTradeRequest Request = {0};

    Request.action = (((Type == OP_BUY) || (Type == OP_SELL)) ? TRADE_ACTION_DEAL : TRADE_ACTION_PENDING);
    Request.magic = magic;

    Request.symbol = ((Symb == NULL) ? ::Symbol() : Symb);
    Request.volume = dVolume;
    Request.price = Price;

    Request.tp = TP;
    Request.sl = SL;
    Request.deviation = SlipPage;
    Request.type = (ENUM_ORDER_TYPE)Type;

    Request.type_filling = ORDER_FILLING_RETURN;

    if (dExpiration > 0)
    {
      Request.type_time = ORDER_TIME_SPECIFIED;
      Request.expiration = dExpiration;
    }

    Request.comment = comment;

    MqlTradeResult Result;

    return(::OrderSend(Request, Result) ? ((Request.action == TRADE_ACTION_DEAL) ? (int)Result.deal : (int)Result.order) : -1);
  }

  // Такая перегрузка позволяет использоваться совместно и MT5-вариант OrderSend
  static bool MT4OrderSend( const MqlTradeRequest &Request, MqlTradeResult &Result )
  {
    return(::OrderSend(Request, Result));
  }
};

// Обязательно ПОСЛЕ #include <Trade/Trade.mqh>: CTrade::OrderSend
#define OrderSend MT4ORDERS::MT4OrderSend

void OnTick( void )
{
  static int TicketBuyLimit = 0;
  static int TicketSellLimit = 0;
  
  const datetime time = TimeCurrent();
  
  if ((time == D'2016.08.11 19:12:33') && (TicketBuyLimit == 0))
    TicketBuyLimit = OrderSend(Symbol(), OP_BUYLIMIT, 1, 95090, 0, 0, 0);
  else if ((time == D'2016.08.16 18:44:02') && (TicketSellLimit == 0))
    TicketSellLimit = OrderSend(Symbol(), OP_SELLLIMIT, 1, 97070, 0, 0, 0);

  return;
}

テスターログ

MR      0       16:47:50.960    Tester  RTS-9.16: ticks data begins from 2016.08.01 00:00
LE      0       16:47:50.963    Core 1  agent process started
CE      0       16:47:51.473    Core 1  connecting to 127.0.0.1:3000
NR      0       16:47:52.736    Core 1  connected
DJ      0       16:47:52.741    Core 1  authorized (agent build 1401)
RR      0       16:47:52.743    Tester  RTS-9.16,M1 (BCS-MetaTrader5): testing of Experts\LimitsFill.ex5 from 2016.08.11 00:00 to 2016.08.17 00:00
GP      0       16:47:52.763    Core 1  common synchronization completed
DI      0       16:47:52.780    Core 1  RTS-9.16: ticks synchronized already [47 bytes]
IL      0       16:47:53.493    Core 1  1482 bytes of tester parameters loaded
PH      0       16:47:53.493    Core 1  188 bytes of input parameters loaded
OR      0       16:47:53.493    Core 1  8562 bytes of symbols list loaded
MI      0       16:47:53.493    Core 1  expert file added: Experts\LimitsFill.ex5. 8164 bytes loaded
FR      0       16:47:53.493    Core 1  initial deposit 100000.00 RUR, leverage 1:0
EI      0       16:47:53.493    Core 1  successfully initialized
IS      0       16:47:53.493    Core 1  35 Kb of total initialization data received
QJ      0       16:47:53.493    Core 1  Intel Core i7-2700 K  @ 3.50 GHz, 16301 MB
LR      0       16:47:53.493    Core 1  RTS-9.16: symbol to be synchronized
PF      0       16:47:53.493    Core 1  RTS-9.16: symbol synchronized, 3224 bytes of symbol info received
RJ      0       16:47:53.493    Core 1  RTS-9.16: load 31 bytes of history data to synchronize in 0:00:00.000
PM      0       16:47:53.493    Core 1  RTS-9.16: history synchronized from 2015.06.22 to 2016.09.01
IS      0       16:47:53.493    Core 1  RTS-9.16: ticks synchronization started
JD      0       16:47:53.493    Core 1  RTS-9.16: load 38 bytes of tick data to synchronize in 0:00:00.000
NO      0       16:47:53.493    Core 1  RTS-9.16: history ticks synchronized from 2016.08.01 to 2016.09.01
RI      0       16:47:53.493    Core 1  RTS-9.16,M1: history cache allocated for 610971 bars and contains 43890 bars from 2015.06.22 10:02 to 2016.08.10 23:49
CM      0       16:47:53.493    Core 1  RTS-9.16,M1: history begins from 2015.06.22 10:02
DD      0       16:47:53.493    Core 1  RTS-9.16,M1 (BCS-MetaTrader5): generating based on real ticks
ML      0       16:47:53.493    Core 1  RTS-9.16,M1: testing of Experts\LimitsFill.ex5 from 2016.08.11 00:00 to 2016.08.17 00:00 started
LQ      3       16:47:53.493    Core 1  RTS-9.16 : real ticks begin from 2016.08.01 00:00:00
GK      0       16:47:53.493    Core 1  2016.08.11 19:12:33   buy limit 1.00 RTS-9.16 at 95090 (95260 / 95270 / 95270)
EK      0       16:47:53.493    Core 1  2016.08.11 19:40:17   order [#2  buy limit 1.00 RTS-9.16 at 95090] triggered
GJ      0       16:47:53.493    Core 1  2016.08.11 19:40:17   deal #2  buy 1.00 RTS-9.16 at 95050 done (based on order #2)
 GR      0       16:47:53.493    Core 1  2016.08.11 19:40:17   deal performed [#2  buy 1.00 RTS-9.16 at 95050]
GP      0       16:47:53.493    Core 1  2016.08.11 19:40:17   order performed buy 1.00 at 95050 [#2  buy limit 1.00 RTS-9.16 at 95090]
QR      0       16:47:53.493    Core 1  2016.08.16 18:44:02   sell limit 1.00 RTS-9.16 at 97070 (97020 / 97030 / 97020)
GF      0       16:47:53.493    Core 1  2016.08.16 19:00:00   order [#3  sell limit 1.00 RTS-9.16 at 97070] triggered
CG      0       16:47:53.493    Core 1  2016.08.16 19:00:00   deal #3  sell 1.00 RTS-9.16 at 97170 done (based on order #3)
 FJ      0       16:47:53.493    Core 1  2016.08.16 19:00:00   deal performed [#3  sell 1.00 RTS-9.16 at 97170]
DO      0       16:47:53.493    Core 1  2016.08.16 19:00:00   order performed sell 1.00 at 97170 [#3  sell limit 1.00 RTS-9.16 at 97070]
KR      0       16:47:53.493    Core 1  final balance 102788.71 RUR
IF      0       16:47:53.493    Core 1  RTS-9.16,M1: 1122105 ticks, 3240 bars generated. Test passed in 0:00:00.717 (including ticks preprocessing 0:00:00.124).
JE      0       16:47:53.493    Core 1  252 Mb memory used including 35 Mb of history data, 64 Mb of tick data
KK      0       16:47:53.493    Core 1  log file "C:\Program Files\BCS Broker MetaTrader 5 Terminal\Tester\Agent-127.0.0.1-3000\logs\20160902.log" written
DJ      0       16:47:53.507    Core 1  connection closed

指値注文のスリッページは太字で表示されています。テスターのスリッページは、Limit orderがセッションを通過するとき、つまりオープニングのときにひどくなります。しかし、私はこれらの事例を例として取り上げたわけではありません。いつものマーケットを利用しました。

再現性があるか?

残念ながら、デバッグがうまくいかないので、サンプルを作成するのに不便でした

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

バグ、バグ、質問

fxsaber さん 2016.09.01 20:18

RTS-9.16 BCS-MetaTrader5 で CTRL+F5 によるEA のデバッグが できない。テスターは次のように書いています。
Tester  Leverage 1:1 set error


 
私も同じ悩みを抱えています。株、先物ともにスリップ。
 
fxsaber:

アドバイザー

テスターログ

指値注文のスリッページは太字で表示されています。テスターのスリッページは、Limit orderがセッションをすり抜けたとき、つまりオープニング時に最も多くなります。しかし、私はこれらの事例を例として取り上げたわけではありません。いつものマーケットを利用しました。

再現性があるか?

残念ながら、デバッグがうまくいかないので、サンプルを作成するのに不便でした


テスターではなく、デモで試してみてください(Openingが良い、速度が速い)。