デューカスコピーのヒストリカルデータといえば、実際に配信されたティックデータを提供していることで有名ですね。
MT4のバックテスト時にデューカスコピーの正確なティックデータを含んだヒストリカルデータを利用する方法としては「Tickstory」というソフトを使う方法が有名です。
ただ、デューカスコピーのティックデータをMT4で使う必要性は、スキャルピングEA以外は特にないといっていいでしょう。
ティックデータとかを考えず、デューカスコピーの1分足ヒストリカルデータを単純に利用するなら、Tickstoryというソフトをわざわざインストールせずともデューカスコピーの取引ツール「JForex」からデータをさくっと入手できます。
そこで、今回はTickstoryを使わずに、JForexから1分足のヒストリカルデータを入手してMT4で使用する方法を解説したいと思います。
デューカスコピージャパンのデモ口座を開設する
デューカスコピーのヒストリカルデータのダウンロードはデューカスコピージャパンのデモ口座もしくはライブ口座のアカウントが必要です。
口座を持っていない人はどちらでもいいので口座を開設しましょう。
デモ口座は30日間しか使用できないので、個人的にはいつでも好きなときにヒストリカルデータをダウンロードできるライブ口座の開設をお勧めします。
JForexは分析ツールとしてもかなり便利なので、ライブ口座を持っていて損はありません。
デモ口座を開設するには、以下のURLにアクセスします。
https://www.dukascopy.jp/japan/japanese/forex/demo_fx_account/
右上の3つの「承諾する」にチェックマークを入れ。フォームに必要事項を記入後「デモ口座を開設する」ボタンをクリックします。
登録したメールアドレス宛にログイン情報が届くので控えておいてください。
JForexの起動
JForexを起動させる方法は2種類あります。
- 「インストール版 JForex」をPCにインストールしてそれを起動させる方法。
- インストールの必要のないJAVA版を起動させる方法(PCにJava 1.8以上がインストールされている必要あり)
まず、下記画面にアクセスしてください。
https://www.dukascopy.jp/japan/japanese/forex/trading_login/
インストール版を使用して起動したい方は、左のインストール版JForexから利用しているOSにあったプログラムをダウンロードしPCにインストールしてください。
継続的にJForexを利用するならPCにインストールされることをお勧めします。
今回は、インストールの必要のない「ダウンロード版JForex」を用いて解説したいと思います。
右の「ダウンロード版 JForex」の所にある「デモ版JForex」をクリックします。
上はFirefoxブラウザを使用しているケースですが、「プログラムで開く」を選択し「OK」ボタンをクリックします。
ダウンロードが始まるのでしばらく待ちます。
上の画面が表示されたら、「実行」ボタンをクリックします。
ログイン画面が表示されたら、ログインIDとパスワードを入力し、「ログイン」ボタンをクリックします。
JForexが起動しました。
ヒストリカルデータのダウンロード
JForexが起動したら、次はいよいよヒストリカルデータのダウンロードです。
JForexメニューから「ツール」をクリックし、「ヒストリカルデータ取得」をクリックします。
すると、下のタブウィンドウに「ヒストリカルデータ取得」タブが表示されます。
見やすくするために、タブの中にある「ウィンドウを分離させるアイコン」をクリックします。
このように、ヒストリカルデータ取得ウィンドウが分離されて表示されます。
開始日時~終了日時:いつからいつまでのデータをダウンロードするのか指定します。通貨ペアによって異なりますが、2003年ぐらいからのデータが利用できるようです。
形式:CSVとHSTの2種類のデータ形式が選べます。ここではHSTを選択。
ビッド/アスク:「Bid」を選択。
データ種類:「分」を選択。
値:「1分」を選択。
フィルター:「フラット期間を非表示」を選択。
データ出力先:ヒストリカルデータの保存先を「参照」ボタンから指定してください。
銘柄:ダウンロードしたい通貨ペアを選択します。すべてを選択するとダウンロード時間もかかるし、データ量もかなり多くなるので必要な通貨ペアに絞ったほうがいいでしょう。
すべて設定したら「開始」ボタンをクリックします。
「ヒストリカル・テスターに関する免責事項」ダイアログが表示されます。
スクロールバーを下までスクロールして「次回から表示しない」にチェックを入れ「同意する」ボタンをクリックします。
ダウンロードが始まるので完了まで待ちましょう。
ヒストリカルデータの時間軸の変更
デューカスコピーからダウンロードしたヒストリカルデータは時間軸がGMT+0(UTC+0)で提供されています。
私はOANDA JAPANをリアルトレードで利用していますが、OANDA JAPANはGMT+2(+3)の業者なのでこのまま使用すると不都合が生じます。
そこで、ダウンロードしたデータをGMT+2(+3)に変換します。
この変換作業ですが、実はnekonoteさんという方がデューカスコピーの1分足ヒストリカルデータ(.hstファイル)を夏時間有のUTC+2/+3データに変換するVBスクリプトを公開してくださっているのでそれを使用させていただきましょう。
ありがたやありがたや。
下のnekonoteさんのHPにアクセスしてください。
http://nya0nekonote.blog.fc2.com/blog-entry-306.html
「UTC+0のhstファイルをUTC+2夏時間有に変換.vbs」のところにソースファイルが記述してあるので、それをメモ帳等のテキストエディタにコピーして「UTC+0のhstファイルをUTC+2夏時間有に変換.vbs」というファイル名でPCに保存します。
上のページには、「UTC+0のhstファイルを日本時間に変換.vbs」というソースも掲載されているので、UTC+9(GMT+9)のデータが必要な方はそちらを使いましょう。
デューカスコピーからダウンロードした「.hst」ファイルを「UTC+0のhstファイルをUTC+2夏時間有に変換.vbs」の上にドラッグアンドドロップすると変換処理が始まります。
変換中、処理の進行を表すプログレスバーが表示されないため、本当に処理が行われているのか不安になりますがじっくり待ちましょう。
処理が完了すると「出力しました。workフォルダを確認してください。」というダイアログが表示されます。
上のように「work」フォルダが作られています。
workフォルダを開くと変換前と全く同じファイル名でファイルが作成されています。
このファイルが変換後のファイルとなります。
変換前ファイル名と同じファイル名なので、間違わないようにファイル名を変更するなりして、変換済みファイルであることをわかるようにしておいたほうがよいでしょう。
変換前のヒストリカルデータファイルはもう必要ないので削除してしまって構いません。
ヒストリカルデータをMT4にインポート
ヒストリカルデータの時間軸の変換が完了したら、MT4にインポートします。
ヒストリカルデータのMT4へのインポート方法は「MT4ヒストリカルデータの作り方」という記事を参考にしてください。
「2.MT4にヒストリカルデータをインポートする」以下の作業をすべて行えば、デューカスコピーのヒストリカルデータをバックテストで利用する準備は完了です。
デューカスコピーのヒストリカルデータの問題点
実はデューカスコピーのヒストリカルデータを使用してバックテストを行うとかなり時間がかかります。
なぜかというと、かなり大きな出来高データを含んでいるからです。
上は2007年10月29日の一部のデータですが、出来高が1000~5000までのかなり大きな数字が設定されてい ます。
ほかの期間のデータも全体的に出来高の数値が大きいです。
このままだと、バックテストや最適化にかなり時間がかかってしまうので、もうひと手間かけてバックテストにかかる時間を短縮させましょう。
具体的には、デューカスコピーのヒストリカルデータにある出来高を使用しないように設定します。
ただ、同じ時間足内で何度もトレードを繰り返すようなEAの場合、出来高を削ってしまうと正確にバックテストできない(実態に即さなくなってしまう)可能性もあります。
出来高データを削っても問題がないかどうかはバックテストや最適化に使用するEAの特徴を踏まえて自分で判断してください。
デューカスコピーのヒストリカルデータから出来高を削除する
下記では、例としてドル円のデータから出来高を削除する方法を解説します。
MT4のヒストリーセンターを表示させて、左の通貨ペアの中からUSDJPYの1分足をダブルクリックします。
右側に1分足のデータが表示されたら、「エクスポート」ボタンをクリックします。
ファイル名に「USDJPY1.csv」と入力されていると思うので、適当な保存先フォルダを選択して「保存」ボタンをクリックします。
保存後、ヒストリーセンターを閉じます。
次に、MT4のデータフォルダを表示させ、historyフォルダ内にある「サーバー名」のフォルダを開きます。
ここでいったんMT4を終了させてください。
historyフォルダ内「サーバー名」のフォルダにすべての時間足の.hstファイルがあるので、すべて削除してください。
削除後MT4を起動させます。
メニューバーの「ツール」から「ヒストリーセンター」をクリックしてヒストリーセンターを表示させます。
左の通貨ペアからUSDJPYの1分足をダブルクリックします。
ヒストリカルデータは先ほどすべて削除したので右側には何もデータが表示されないはずです。
次に「インポート」ボタンをクリックします。
インポートダイアログが表示されるので、「参照」ボタンをクリックします。
ファイル名横のファイルの種類の選択で「ASCII Text(*.csv,・・・」が選択されていることを確認し、先ほど保存した「USDJPY1.csv」ファイルを選択し「開く」ボタンをクリックします。
画面にcsvファイルが読み込まれると「出来高」がチェックできるようになりますが、この「出来高」にはチェックをいれないまま「OK」ボタンをクリックします。
これで、出来高を除外したデューカスコピージャパンのヒストリカルデータをインポートできました。
出来高データはMT4が自動で小さめの数値を割り当ててくれます。
ためしに先ほど1000オーバーの数値が設定されていた2007年10月29日のデータを見てみましょう。
かなり出来高の数値が小さくなっていることがわかります。
以上で、デューカスコピーの出来高なしの1分足ヒストリカルデータのインポート作業は完了です。
1分足のデータを取り込んだ後は「period_converter_ALL」を使って全時間足のデータを作成してください。
最後に
デューカスコピーの出来高データのあるなしで、当EAを使ってどれくらい時間がかかるかテストしてみましたが、期間1年間のバックテストにおいて、出来高ありは3分18秒、出来高なしは1分7秒という結果になりました。
出来高なしは、ある場合に比べて3分の1の時間短縮となっています。
単純計算だと10年分のバックテストを行う場合、20分節約できることになります。
最適化などを行う場合は何回もテストを繰り返すため、この差は無視できませんね。
バックテストや最適化が遅くて困っているという方は出来高を削除する方法を試してみてください。
コメント
お世話になります。
役に立つ記事ありがとうございます。
掲載されている通りデューカスからHSTファイルとしてヒストリカルデータをダウンロードしたのですがMT4へインポートすることができません。
時間軸変更前、変更後問わずインポートできないのですが原因は分かりますか?ファイルは間違いなくHSTファイルとなっております。
インポートできない。というのは「ヒストリーセンター→インポート→参照」までいってもHSTファイルがインポート候補として表示されません。
何かわかるでしょうか?よろしくお願いいたします。
SSさんへ
ファイル参照ダイアログの拡張子フィルターの所が「ASCII Text」になっていませんか?
「MetaQuotes files(*.hst)」もしくは「All Files(*.*)」を選択していれば表示されるはずですが・・・