(11) 【MT5】 バックテストでヒストリー品質が低い理由

投稿者: | 2017年9月17日

この記事は最終更新から 1475日 が経過しています。

(1) 疑問に思ったこと

(9) 【MQL5】 サンプルプログラム(EA)をクラス化」で作ったEAでバックテストを実行してみた。

まぁ結果がよくないのは承知の上で実行してみたのだが、
それよりもレポートに表示されている ヒストリー品質 9% が気になる。

ヒストリー品質、
すなわちバックテストに使用しているヒストリーデータ、すなわち為替データの品質が低いということらしい。
品質の低いデータでパラメータやロジックを最適化しても意味がないことは言うまでもない。

(2) ヒストリー品質が低い理由

なぜ低いのか?
今回使ったのは MetaTrader5が勝手にダウンロードしてくれた MetaQuarts社提供のヒストリーデータだ。

データの中身を見ると、1分ごとのO-H-L-C-V(=Open, High, Low, Close, Tick Volume)の値が書かれている。
数値の精度はよくわからないが、1分ごとの情報が与えられていればとりあえずは期待通り。

が…
下の方にスクロールして古いデータを見てみると、なんと1日ごとのデータになっている。

例えば、図中の 2010年1月15日を見てみると、
(O) Open : 91.245
(H) High : 91.312
(L) Low : 90.597
(C) Close : 90.757
(V) Tick volume : 50566
と 1日分の 50,566回の価格変動を 5個の数値にまとめて書いている。確かに品質が低い。

先の図の1分ごとのデータと比較すれば
60 x 60 x 24 = 86,400
個分の情報をまとめて1個に書いているわけで、それは情報の粒度が粗く低品質と言われるわけだ。

自分用にわかりやすく説明すると、プロ野球が 1試合 9イニングとして
【高品質】 1イニングごとの結果を知らせてもらえる。
【低品質】 86,400 ÷ 9 = 9,600試合分(=セパ両リーグ約10年分)の結果の順位だけを知らせてもらえる。
の違いがある。
データ分析には圧倒的に前者の方が有効であることは言うまでもない。

分解能の差がこんなにあるのに、なぜヒストリーデータ品質が 0.001% と表示されないのか?
これはヒストリーデータ品質の定義を調べてみないとよくわからない…

本当は Tick単位のデータが欲しいのだろうが、そのようなデータがどこに置かれているのだろうか?
今は 1分間分の全Tickをまとめた 1分単位の O-H-L-C が書かれたヒストリカルデータを見つけるのが精いっぱいだ。

(3) ヒストリー品質を上げるには

どこかから高品質なデータを持ってくるしかない。

とりあえず 「(2) 過去データの収集」 で某ブローカーのサイトからいただいたMT4用データをインポートして使ってみよう。
あちらは2005年からの1分足データが格納されていたから。

次回へ続く…


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)