トップ  >  自作してみる  >  EA作成方法  >  ヒストリカルデータ取得
スポンサーリンク
検索

↑の検索エンジンが表示されない人は、
↓の古い検索エンジンを使用して下さい。
カスタム検索
MQL4リファレンスツリー
ヒストリカルデータ取得



MT4はストラテジーテスターという機能が付属していて、
この機能を使用すると過去の価格データを基にしてEAのバックテスト(過去検証)が行う事が出来ます。

過去の価格データ(ヒストリカルデータ)というのは別途に取得しなければなりません。
ブローカーにもよりますが自動取得で取得して来てくれるデータ数は制限されています。




ローカルPC内にヒストリカルデータは、メニューの「ツール」⇒「ヒストリーセンター」で確認する事が出来ます。






左の「通貨ペア」ツリーから、確認した通貨ペアの時間足をクリックするとヒストリカルデータを確認出来ます。
EURCHFのデータは持っていなかったのでクリックした時点で自動取得されましたが、上に表示されているレコード数を見ると分かる通り、
2048レコードしか自動取得されていません。

ここでうっかりやってしまいガチなのは、左下にあるダウンロードボタンを押してしまう事です。
バックテスト用のヒストリカルデータを必要としている場合、このボタンは押さない方が良いです。
その理由はボタンをクリックすると分かります。






ダウンロードボタンを押すと、上記警告文が表示されます。
説明文の通り、ブローカーのデータと内容が異なります。
単純にレートが多少異なるだけならいいのですが、ブローカーによってタイムゾーンが異なる為、日足の数やデータの時間が違ったりします。

ヒストリカルデータは証券会社が過去データを配布している可能性があるので、証券会社に問い合わせてみるといいです。

FXCMジャパンの場合、一時期キャンペーンで過去10年分のヒストリカルデータを配布していたのですが、今は行っていません。
代わりにトレーディングAPIを配布していて、そのAPIを使用してヒストリカルデータにアクセス出来るので、APIを用いたプログラムが組める人はその方法で取得出来ます。


初心者向けサイトなので、もっと簡単な方法を紹介します。
その前にヒストリカルデータを取得する準備を行います。
メニューの「ツール」⇒「オプション」を選択します。



「プロキシサーバーを有効にする」にチェックを入れて「OK」ボタンを押して下さい。
(プロキシの詳細設定は行わないで下さい。)
これでブローカーとのサーバー接続が出来なくなります。
(設定直後は接続が切断されません)






メニューの「ファイル」⇒「データフォルダを開く」をクリックします。





データフォルダが開かれますので、「history」フォルダを開きます。

「history」フォルダを開いたら、MT4は閉じてください。
(MT4起動中は.hstファイルを削除する事が出来ません)





「history」フォルダを開くと、"MT4のインストール/デモ口座申請"で申請したデモ口座名(FXCM-JPYDemo01)のフォルダがあるので開きます。





.hst拡張子のついたファイルがあります。
これがヒストリカルデータです。
.hst拡張子のついたファイルを全て選択して(必要であれば他の場所にコピーしてバックアップしてください)削除します。



FXDDのサイトに1分足データのヒストリカルデータがあるのでダウンロードします。
(FXDDのタイムゾーンはFXCMと同じGMT+2(DST:GMT+3)なのでデータが似ています)
FXDDサイトリンク【https://www.fxddtrading.com/bm/jp/resources/mt4-one-minute-data 】



とりあえずAUD/JPYのヒストリカルデータをダウンロードします。





ダウンロードしたファイルを解凍すると、AUDJPY.hstファイルが現れます。





先程閉じたMT4起動し、ヒストリーセンターを開きます。
左の通貨ペアツリーからAUDJPYの1Minute(M1)を見つけてダブルクリックします。
ダブルクリックするとAUDJPY-1分足のヒストリカルデータが開かれます。
先程ヒストリカルデータを削除したので空っぽの状態です。

ここで右下の「インポート」をクリックします。





インポート画面が開かれるので、ヘッダに「インポート:AUDJPY,M1」と表示されている事を確認して下さい。
右上の「ブラウズ」ボタンを押して、先ほどダウンロードしたAUDJPY.hstファイルを選択します。
下のウィンドウにデータが表示されたら「OK」ボタンを押します。





ヒストリーセンターのAUDJPY-1分足のヒストリカルデータが展開されます。
ただ、この状態ではヒストリカルデータはメモリ上にあるだけでディスク上に保存されていません。
なのでヒストリーセンターを閉じて、MT4を一度閉じてからMT4を再起動します。
MT4を閉じた時にヒストリカルデータはディスク上に保存されます。





MT4を起動したら、メニュー⇒「ファイル」⇒「新規チャート」を選択して適当にチャートを開きます。






チャートを開いたら「気配値表示」ウインドウからAUDJPYを選択してチャート上にドラッグ&ドロップします。
その後「周期設定」で"M1"をクリックして、1分足のAUDJPYチャートが表示される事を確認します。






ここで1分足ヒストリカルデータから全時間軸のヒストリカルデータを生成するスクリプト(period converter)を用意します。
period converterについはgoogle検索して探してみて下さい。

period converterを入手したら、データフォルダを開いて、
「MQL4」⇒「Scripts」フォルダを開きます。
取得したスクリプトファイルは「Scripts」フォルダ内に置きます。

MT4起動中に追加した実行ファイルは認識されていないので、またMT4を再起動します。





MT4を再起動したら、ナビゲーターウインドウの「スクリプト」を選択します。
「Scripts」フォルダに追加したスクリプトファイルが認識されているので、
period converterを選択して「AUDJPY,M1」チャートにドラッグ&ドロップします。





スクリプトによって設定画面が表示されますが、「OK」をクリックします。





するとログデータに各時間軸データが生成された事が表示されます。
ログデータに「deinitialized」が表示されるまで待ちます。

これでAUDJPY用のヒストリカルデータが生成出来ました。
他通貨もFXDDからダウンロードする工程から同じ作業を行います。
全通貨ダウンロードして、同時にやるのが効率的です。






スポンサーリンク
スポンサーリンク


Copyright ©2015 MT4でEA自作しちゃお~ All Rights Reserved.


Top

inserted by FC2 system