【MT5】バックテストのヒストリー品質を0%から100%にした話

Dukascopyで落としてきたヒストリカルデータを

例のUTC+2に書き換えられるスクリプトで変換してから

 

MT5にインポート、バックテストを行うと、

 

f:id:metroporeturn:20210915174106p:plain

ヒストリー品質が0%

何度試しても、ヒストリー品質が0%だった。

 

 

日本語サイトや読めない英語サイトを調べ漁った結果

結局は公式ページに一番参考になるヒントが書いてあった。

www.metatrader5.com

 

History Quality(ヒストリー品質) — この値はテストの価格データの質を特徴付けます。それは1分間のデータの正誤のパーセンテージ比率として決定されます。ゼロスプレッドまたは異なるOHLC値を持って数量が1に等しい足は正しくないと考えられます。履歴ギャップはまた、不正なデータとして考えられます。サイズに応じて、テスト期間は1~199 に分割されます。ヒストリー品質はその個々に決定されます。ヒストリー品質のグラフィック指標では、時間間隔は異なる色で表示されています(軽い緑の色合いはより良い品質を意味し、赤は品質が50%以下の間隔を表します)。

 

原因は、ボリューム(出来高)とスプレッドの値にあるみたい。

 

 

早速データを見てみると、

 

f:id:metroporeturn:20210915174830p:plain

品質の悪いデータが赤く示されている

赤くなっているデータがちょこちょこ。

 

ということで

  • ティックボリュームを0以外にする(※1)
  • スプレッドを5~10にする(※2)

これらを解決策に設定。

 

↓やったことを箇条書きにするとこんな感じ。

 

  1. Dukascopyからhst形式のデータをダウンロード
  2. 例のスクリプトでデータのタイムゾーンUTC+2に変換
  3. MT4にインポート
  4. MT4から、csv形式でエクスポート(ファイル名:from_mt4.csv)
  5. Ubuntuで以下2つのコードを順に実行
    「sudo nkf -Lu --overwrite from_mt4.csv
    「sudo sed -i -e "s/$/,0,5/g" from_mt4.csv
  6. from_mt4.csvをMT5にインポート

 

 

f:id:metroporeturn:20210916111943p:plain

Ubuntuでのコマンド入力(別日のスクショなのでファイル名は変わっている)

 

 

すると、、、

f:id:metroporeturn:20210915190408p:plain

赤く強調されていたのもなくなった!!

 

品質の低下を示す、赤い強調がなくなっているではありませんか!

 

早速このデータでテストをしてみると、

 

 

f:id:metroporeturn:20210915191511p:plain

ヒストリー品質100%達成

 

無事、ヒストリー品質が100%に。

 

 

Ubuntuで入力したコマンドはこちらのサイトを参考にしました。

www.dogrow.net

 

 

 

お疲れさまでした。

 

 

 

※1

出来高が戦略の要素になっている場合は、ティックを操作するのはEAの精度に悪影響を及ぼす可能性があります。

 

※2

スプレッドは適宜変えてもいいと思います。

 

より広いスプレッドでも右肩上がりの資産曲線を描けるEAが優秀なのは
当たり前ですから、できるだけ幅広にするのもいいと思います。

 

僕も普段からスプレッドは10ポイントくらいで開発しています。