無料のリアルティックバックテストツールの使い方

この前、「初心者向けEA入門」という記事を書いて、フォロワーさんが数十人増えたのでうれしかったので、今回も文系初心者でも分かるように、、、と思いましたが、実際中級者向けくらいかもしれません。

EAの性能を調べるために行うバックテストの精度を上げる方法についてです。

このバックテストは、特にデータを入手したりしなくてもMT4の標準機能としてできるのですが、標準機能でできるバックテストはデータの精度が低いため、リアル運用した場合とは乖離が大きくなってしまうことがあります。

このため、リアル運用した場合にきちんと利益を出せるEAを選ぶために、外部から精度の高いデータを入手して、MT4の標準機能よりも精度の高いバックテストをしようとする人が多いです。

最近雑な情報提供が多かったですが、今回のツールは私がガチで使ってみて使い方を図解した記事になります。VPSやタリタリ、ゴゴジャンのアフィリエイトを踏んでくれた方がいたので少しやる気を出しました。ありがとうございます✿´◕‿◕`✿ 餌がもらえるとがんばりますワンワン。


目次:
・バックテスト方法による精度の違い
・無料バックテストツールQuantDataManagerの使い方

バックテスト方法による精度の違い

バックテストの精度は、
① MT4に標準搭載のヒストリカルデータを利用し、MT4の標準のバックテスト機能(疑似ティック)を使ったバックテスト
② Ducascopyなどの外部ヒストリカルデータを利用し、MT4の標準のバックテスト機能(疑似ティック)を使ったバックテスト
③ Ducascopyなどの外部ヒストリカルデータを利用し、Tickstory、QuantDataManagerなど外部システム(リアルティック)を使った固定スプレッドでのバックテスト
④ Ducascopyなどの外部ヒストリカルデータを利用し、Tick Data Suite(TDS)という外部システム(リアルティック)を使った変動スプレッドでのバックテスト

の順番に精度が高くなるそうです。ややこしいですね、、、。

まず、MT4に標準搭載のヒストリカルデータは、精度が悪いです。これを外部で入手したヒストリカルデータに変更すると精度が上がります(①→②にアップ)。Ducascopyの精度がいいそうで、ここのヒストリカルデータを使っている人が多いです。

また、MT4の標準のバックテスト機能では、疑似ティックというものを使ったバックテストしかできないため、リアルティックでバックテストを行える外付けのシステムを使用するとさらに精度が上がります(②→③にアップ)。

ご存じの方が多いと思いますが、ティックデータというのは、1分足よりもさらに短い、ミリ秒単位で変動する価格データのことです。

バックテストに使うティックデータとして、疑似ティックとリアルティックがあるのですが、違いは何かというと、リアルティックは、あるブローカーで実際に使用されたティックデータです。一方疑似ティックは、1分足などのティック以外のデータから疑似的に生成されたティックデータです。

ややこしいのですが、Ducascopyのヒストリカルデータはリアルティックなので、リアルティックのバックテストも可能なのですが、MT4の標準のバックテスト機能では、仕様上リアルティックのバックテストができないらしく、そのためリアルティックでのバックテストを行うには外付けシステムを使用する必要があります。

最後、③と④の大きな違いは、変動スプレッドでのバックテストができる点です。固定スプレッドのバックテストでは、例えば、ドル円1.0pipsというスプレッドを設定したら、どの時間帯に持ったポジションでも同じスプレッドです。一方、変動スプレッドでのバックテストが可能な④のTick Data Suite(TDS)というシステムを使えば、朝方はスプレッドが開くなど、スプレッドの変化も考慮したバックテストを行うことが可能です。

このような理由で、①~④の順に精度が高くなっていきます。


さて、本題ですが、一部のEA開発者さんは、④の一番高精度なツール(TDS)を使っています。利用者側でも、いいEAを見極めたいという熱心な方はTDSを購入している人が結構いますが、お値段が数万円になります (*゚0゚)

EA界隈には、バックテストはTDSでやらないと!というTDS信者がたくさんいまして、私も買うように勧められるのですが、、、数万円ですよ? TDSを買うくらいならEAを1つ多く買いたいです。

無料バックテストツールQuantDataManagerの使い方

ということで、「無料」という条件であればどのレベルのバックテストができるのかを紹介します。

Ducascopyのデータは無料でもらえるので、上記の①と②は無料でできます。

③も、実はできます。無料でできるリアルティックのツールというのは、Tickstoryというものが日本でも有名なのですが(こちらのページが日本語で詳しいです)、これは無料版だと1年分しかバックテストできないものです。

バックテストというのは、普通10年分くらいやって長期の成績を見ますので、これではあまり役に立ちません。

そこで、今回は別の無料ツールであるQuantDataManagerの使い方を紹介しようと思います。QuantDataManagerは、QuantAnalyzerを作っている会社のツールです。


QuantDataManagerの使い方

① こちらのページから、無料版を選んでダウンロードしてください。

② 左端の「Dukascopy」というボタンを押すと、項目が表示されますので、一番上の+マーク「Add new Dukascopy data symbol(新しいDukascopyデータシンボルを追加)」を押してください。

シンボルというのは、通貨ペアや株の銘柄の名前のことです。

ちなみに、「Darwinex」というイギリスのブローカーのティックデータもダウンロードできるようです。Darwinexは比較的新しいブローカーですが、技術面に力を入れ、EA開発者支援も充実しているところで、英語で情報を探しているとよく見かけます。

図1


③ シンボルを選ぶ画面が表示されますので、お好きな通貨ペアにチェックを入れ、一番右下の「Save」ボタンを押してください。Data typeは「Tick data」が選択されていると思いますのでそのままにしてください。

図2



④ 「Save」を押すと、図1の画面に戻り、操作画面にシンボルが追加された状態になります。このシンボルの左端にチェックボックスがありますので、ここにチェックを入れます(下の方の矢印)。その後、再度Dukascopyのボタンを押して、図1で押したボタンの一つ下にある「Download data for existing symbol(既存のシンボルにデータをダウンロードする)」を押してください(上の方の矢印)。

図3


⑤ 次に表示される場面で期間を選びます。ダウンロードが長くなると嫌なので、直近6カ月を選択しましたが、実際にやるときは長期バックテストになると思いますので、ご希望の期間を入力して指定してください。

その下の項目は、「Add only missing data(欠けているデータのみを追加する)」「Overwrite exisiting data(既存のデータを上書きする)」という選択肢ですが、完全に新規ダウンロードの場合はデフォルトのままでいいのではないかと思います(適当)。

その他の項目は無視して、右下の「Start download」を押すとダウンロードが始まります。(Fast Data Downloadというのは有料版限定の機能なので無視します)

図4

⑥ ダウンロードが終わった後、データの時間を自分が使っているブローカーに合わせます。DucascopyはGMTですが、GMT+2のブローカーを使っている人が多いと思いますので、GMT+2に合わせてみたいと思います。

時間を変更したいシンボルを選択した状態で、メニューバーの「Tools」をクリックすると表示されるメニューから、「Clone to timezone」を選択してください(赤い丸を付けた2か所です)。

GMT+2は、EST+7になります。さらに、夏時間ありの場合は「DST:Yes」を選択して、右下の「Proceed」を押します。

図5


⑦ 処理が完了したら、「USDJPY_TICK_ESTPlus07」というデータができるので、これをMT4にエクスポートするのですが、その前に事前準備があります。

ちょっと力尽きたのでEAdriverイカ(@ea_driver)さんのブログをパクります。

QuantDataManagerは、英語でバックテスト情報を調べていたときに見つけたのですが、詳しく調べようと思ってGoogle検索をかけたときに、イカさんのブログを見つけました。

イカさんに聞いたところ、TDSよりめんどくさいので使わなくなったそうです(笑)

データをMT4にインポートするにあたり、ストップアウトレベルなどのブローカーの情報を事前に読み込ませておく必要があるようです。

TDSはMT4と合体させて使用しているので(MT4上に特殊なコマンドが表示されます)、事前にブローカーの情報を読み込ませる必要がないのだと思いますが、このQuantDataManagerは、MT4にインポートするデータに全て情報を入れ込む形式なのだと思います(推測ですが、、、)。

さて、ここからAdriverイカさんのブログのパクりです。難しくてよく分からなかったので深く考えることなくこの通りにやってください。✿´◕‿◕`✿
使用するMT4のブローカー情報をQuant Data Managerが読み込めるようにする必要があるため、「ExportProperties.mq4」というスクリプトを入手します。
こちらからダウンロードできます。(StrategyQuantにアカウント登録していないとダウンロードできません)
ダウンロードしたらMT4のデータフォルダー⇒MQL4⇒Scriptsに入れます。
ツールからメタエディタを起動し、ExportProperties.mq4を開きます。
ファイルが開けたらコンパイルをクリックして、コンパイルが完了したらメタエディタを閉じます。
一度MT4を再起動し、バックテストに使用するシンボルのチャートを適当な時間足で表示させます。
そしてナビゲーターにあるExportPropertiesのスクリプトをチャートにドラッグアンドドロップします。MT4を閉じます。

これでMT4にインポートする事前準備は完了です。やったね✿´◕‿◕`✿

文系の方向けに補足すると、mq4というのは、プログラミング言語の書かれたファイルです。それを「コンパイル」という作業で、実際にシステムとして使える形のファイルに変換します。なぜコンパイル済みのファイルをくれないのか?など深く考えないでこのとおりやってください。✿´◕‿◕`✿

⑧ QuantDataManagerに戻り、「Export」タブの「Export to MT4(FXT&HST)」を選択すると詳細情報の入力画面が出てきますので、一番上にある期間と、真ん中の「Output folder(出力フォルダー)」の情報を入力します。

図6

出力フォルダーの項目は、「MT4 Installation」はMT4本体が入っているフォルダです。「MT Data Folder」はMT4で「データフォルダを開く」の操作をすると出てくるMT4のデータフォルダの場所です。「Server name」は、使っている口座のブローカー側のサーバーの名前(ブローカー名-demo1、ブローカー名-real1とか、そういうやつ)です。

シンボル名などは、チェックボックスを選択していれば自動入力されていると思いますので、シンボル名の下の、青い線が引いてある「Load other MT4 data specification file(その他のMT4データ仕様ファイルをロードする)」をクリックします。

その後、⑦の事前準備で生み出されたファイルを選択します。「mt4.properties」という名前のファイルが、MT4の「データフォルダ」→「MQL4」→「Files」のフォルダにあります。

上記の項目を入力したら、右下にある「Start export」を押します(図6のスクショでは見切れましたが右下にあります)。

⑨ QuantDataManagerを使ったことで特別な表示は現れませんが、上記の作業を行った後にMT4のストラテジーテスターで普通にバックテストをすると、このデータが使用されてモデリング品質が99.00%になります。

モデリング品質というのは、バックテストのデータの正確さのことです。この手順を踏めば99.00%になるはずですが、MT4によっては99.00%と表示される代わりに、n/aと表示されるそうです。

公式ページの取り扱い説明ページの説明です。機械翻訳にかけてあるのでなんとなく分かると思いますが、MT4によって99.00%と表示されるかn/aになるかが違うだけで、緑のバーが全体に表示されればきちんと99.00%になっているということが説明されています。ちなみに、モデリング品質が50%とかだと、半分赤のバーになります。


私は正直なところバックテストが嫌いなのでいつも適当にやっているのですが、無料のツールを使いたい一心で探してみました。間違っているところがあったら、バックテストおじさん(バックテストが大好きで休みの日に一日中バックテストしている人のこと)の突っ込みをお待ちしています。

ちなみに、詳しい使い方は開発元のこちらのページに載っています。


お詫び

今回バックテストツールの記事を投稿する前に、バックテストツールの記事とラブライブのポケカラのどっちが先に見たいか聞いたところ、ラブライブ票が勝ってしまったみたいなのですが、ポケカラ収録がめんどくさくなり、結局バックテストツールの記事を書きました。ごめんなさい。

コメントを投稿

0 コメント