読者です 読者をやめる 読者になる 読者になる

MT4 バックテスト【最終案内】リアルティックを再現する方法

f:id:miraaaman:20161231051615p:plain

2016年も最後ですね。最後は表題の通りいま海外で主流の、信頼性の高いバックテストの方法「MT4でスプレッドの広がりやスリッページを再現する、バックテストのやり方」を書いて行きたいと思います。

いまさらバックテスト?と思った方も多いと思いますが、本日紹介するバックテストは、前途の通り「スプレッドとスリッページ」が再現出来きます。何がいいかというと、リアルと同じ状況でバックテストが出来るので高い角度でストラテジーを評価することができます。見てもらうのが早いと思うので以下に動画を上げました。

 

 

動画は実際のバックテストを「ビジュアルモード」で表示したところです。まずチャート左上のステータス「Spread 」が 浮動しているのが分かると思います。チャートの Ask ラインも同様。通常のバックテストではスプレッドが固定のためこうはいきません。さらに後半ではMT4の取引ログで、スリッページを確認しています。

もうお分かりだと思いますが、従来の FXDD 1分足や、TickStory のティックデータでは実現出来ないバックテストが出来ます。ちなみにこちらはバックテストの比較です。

f:id:miraaaman:20161231174410p:plain

上はわたしが制作したストラテジーの1つです。バックテストごとに少し差はありますが概ね同じ波形を描いておりリアルでも行けそうな判断が出来ます。

f:id:miraaaman:20161231174433p:plain

次のはストラテジー名は伏せますが、とある方が制作した某ストラテジーです。これを見るとTickDataSuiteでのテストだけ異なるのでリアルではまだ不安が残ります。もしTickDataSuiteを使っていたならば、これを参考にもう一度修繕などの作業が出来たかもしれません。実際わたしはこちらを購入しましたが、なんとなく不安だったので結局フォワードテストもしませんでした。作者的にもまだ改善中のようなので一旦様子を見ている状態です。このように、ストラテジーなどはフォワードテストでダメだったときの出戻りが時間的なコストとして跳ね返ってくるので、可能な限りバックで検証をしておきたいものです。

 

●Birt's Tick Data Suite + True FX ミリセカンドティックでリアルを再現

じゃぁ、このバックテストはどうすれば出来るかというと「Birt's Tick Data Suite」というツールを使います。海外では非常に人気で特に開発者の間では、もはや TickDataSuite で検証を得ていないバックテストやストラテジーは相手にされないくらい信頼の厚いツールです。

使い方は超簡単でもう公式サイトを見てもらえれば分かるので、説明不要だと思いますが、英語が苦手な方のために補足をしておきたいと思います。

1.Tick Data Suite 入手(通常版:有料 / お試し版:無料7日間)

2.ティックのヒストリカルデータを「CSV形式」で入手

3.ティック生成

4.MT4でバックテスト

 

(1)

まず、TickDataSuite を入手してください。通常は有料で「97 USD」します。そして、ライセンス式なので、1回の購入で5ライセンスまで(5回コピー可)で、月々10USDくらいの月額です。要するに「97 USD + 10 USD(月額)」なので本体を購入した後は月額が掛かります。ただお試しもありますので、まずはそちらを使ってみるのがよいと思います。お試し版は「7日間」無料でユーザー登録さえすればダウンロード出来ます。

●7日間 無料 お試し版

https://eareview.net/tick-data-suite/trial

インストールの流れはこちら

f:id:miraaaman:20161231190947p:plain

 

(2)

ヒストリカルデータの入手。TickDataSuite が推奨しているヒストリカルデータはCSV形式で、高解像度のティックデータを推奨しています。ここで紹介されているのは、Dukascopy か Integral のティックデータです。Dukascopy は TickStory で使うティックデータと同じもので、Integral は True FX が提供しているミリセカンドのハイレゾデータです。

もし、真のティックデータで検証したいのであれば、Integral のティックデータをオススメします。おそらく現在、入手できる無料のティックデータとしては最高峰です。True FX は Integral のパートナーみたいで登録さえすれば無料で高解像度のインターバンクティック入手することが出来ます。データはCSV形式です。

リクイディティプロバイダーのハイレズデータになるので、CSV でも 20GB を超えてきます。入手出来る期間は最長で2009年〜現在までとなります。TickStory を使ってる人は、CSV書き出しをすれば2005年〜のデータが落とせます。ただしフォーマットは TickDataSuite 用に変更する必要あります。もし面倒なら以前わたしが紹介した cAlgo からTickDataSuite フォーマットのCSVで書き出すのが簡単で信頼性は高いと思います。いずれにしてもデータの入手には一手間あります。

ただ今回は、せっかくなので True FX から入手する方法を書いておきます。まず下記HPにアクセスしユーザー登録をしてください。任意のユーザーネーム、名前、メールアドレス、パスワードを決めて送信するとログインできます。

True FX

f:id:miraaaman:20161231153243p:plain

f:id:miraaaman:20161231153839p:plain

ログイン出来たら上の「Downloads」ページに行きます。Downloads ページでは、年代別・通貨別・月別で小分けで CSV がダウンロード出来るようになっています。超大変ですがここから地道にダウンロードします。コツとしてはもし Mac を使ってる人なら、Safari でログインすれば、リンクを触るだけでダウンロードが始まるので、いちいち要求を聞かずに済みますしダウンロードがとても楽になります。ダウンロード後の解凍やリネームも複数ファイルまとめてボタンひとつでMacは出来るので、とても楽だと思います。Winの人は頑張るしかないです笑。ちなみにDLツールは使わないほうが良いでしょう。サーバーは貧弱で頻繁に落ちていますので、毎回DLツールを使われ落ちてるのだと推測できます。落ちたらそれはそれで面倒なので1個づつやるのが安全です。

さて、無事ダウンロード出来たら CSV を年代別に繋いで1つのCSVファイルにします。何か CSV連結ソフトなどがあれば更に楽でしょう。もしそれも面倒な人は、ここでも紹介されているやり方ですが、コマンドプロンプトから直接連結するのが簡単かつ高速だと思います。ギガサイズの CSV でも一瞬で終わりますのでオススメです。PC画面右下 Windows マークを右クリックで「コマンドプロンプトを選択」→「黒い画面を開きます」この後の作業フローは下記の動画をご参考ください。 

f:id:miraaaman:20161231162022p:plain

 

 

●CSV連結のやり方

コマンドプロンプト(黒い画面)を開き、連結したいファイルが存在するフォルダーへ移動します。移動するには、黒い画面で「cd」と入力した後、半角スペースを入れ、フォルダーのパス(フォルダーのURL)をコピーして貼り付け → Enterキーを押します。するとフォルダーへ移動したことになります。移動したら今度は「type」と入力、半角スペースを入れた後に、連結したいファイル名を拡張子付きで、順番に黒い画面に入力していきます。ファイル名とファイル名の間には半角スペースを入れて区切ってください。ファイル名を全部入力できたら「>」の半角大なり記号の後に連結後のファイル名を入力して→ Enterキーを押してください。しばらくすると、またフォルダーの位置を示す状態になって作業が終了します。

cd C:UserspcDesktopTickData

Enter キー

type EURUSD-2011-01.csv EURUSD-2011-02.csv EURUSD-2011-03.csv > EURUSD.csv

Enter キー

 

(3)

連結CSVが出来たら、今度は「ティックの生成」をします。ティックの生成とは、CSVからTickDataSuite 専用の「FXTファイル」を作ることを指します。CSV2FXT と呼んでいるみたいです。FXTファイルはバックテスト時にティックを再現するためのプログラムです。FXDDでバックテストをする時も1分足から hst ファイルを生成しますよね。あれと同じです。TickDataSuite が愛されてる理由はどうやら実際の値動きを合成してつくるみたいです。そのためリアルなティックに仕上がるみたいです。さて、まず下記サイトからスクリプトをダウンロードしてください。

スクリプトのダウンロード

f:id:miraaaman:20161231171620p:plain

ダウンロードしたスクリプトファイル「csv2fxt_v0.50.zip」は解凍し、ファイルの中身をMT4/MQL4フォルダにコピーします。ファイルはそれぞれ対応したフォルダに入れてください。

f:id:miraaaman:20161231172324p:plain

そして、さらに MT4「MQL4」フォルダ内の「Files」フォルダーへ先程つくった「連結済みのCSVファイル」を格納してください。出来たらMT4を再起動します。MT4を再起動する際には、このエイリアス経由でMT4を起動してください。これによってMT4がTickDataSuite 仕様になります。MT4の上に「TickDataSuite v1.4.x」などが表示されていればOKです。

f:id:miraaaman:20161231183936p:plain

MT4が起動したら、ティックを生成したいチャートを開いてください(EURUSD.csv)を使うならEURUSDチャートを表示します。この時MT4は必ずオンラインで行ってください。オフラインでは機能しません。(※休日などでマーケットがクローズしている時はティックの状態は若干異なります。)

続いて、ナビゲーター欄の Scripts から先程格納したスクリプトファイルをダブルクリックして開いてください。するとパラメーターセッティングが出てきます。パラメーターの説明は、下にURLを張っておきますのでご参考ください。

分からない人は、もうこのパラメーターをを丸写しでも良いです。ただし注意して欲しいところは、パラメーター上から2段目の「CSV filename」です。こちらは、Files フォルダに入れた「連結済みCSV」のファイル名と一致する必要があります。拡張子も忘れず入力してください。ティックの生成には若干時間が掛かります。進行具合はチャートに表示されます。たまにティックの抜けなのか不整合アラートが出るかもしれませんが、全部OKにして飛ばしてください。ティック生成の完了時もFXTファイルを上書きするか(存在する場合)聞いてくるので、全部OKにしてください。このティック生成は一度やってしまえば次回からはやる必要はありません。ただしCSVファイルを変更した場合や別の通貨でやる場合は、その都度ティックを生成してください。通貨を増やすと数百ギガに達する事もありますのでご注意ください。

f:id:miraaaman:20161231182009p:plain  

f:id:miraaaman:20161231183245p:plain

 

これにて、作業は完了です。あとは通常通りバックテストすることが出来ます。バックテストの期間はCSVファイルの期間に限定されます。

 

●Tick Data Suite の取説 & パラメーターの解説(公式)

https://eareview.net/tick-data/convert-tick-data

 

 

以上、まだ書ききれなかった事はたくさんありますので、後日また情報はアップデートしていこうと思います。TickDataSuite はわたしもまだ使い始めて半年くらいなので、分からない事はありますが、もしご不明点や作業効率をご希望の方はお気軽にお問い合せください。

 

 それでは良いお年を。