ご存じの方も多いかと思いますが、GMOクリック証券のHPから2007年以降(主要通貨ペアーの場合)のFX1分足ヒストリーデータがcsv形式でダウンロードできます。
海外のデータとは異なり時差の調整をする必要はありませんので非常に有難いサービスで私もバックテスト用データとして活用させてもらっています。
ただ、バックテスト用の長期データを作る際に少々面倒な事があったのでその際の作業手順を備忘録として残しておきます。
ネックだったのは次の2点です。
・日付と時刻が連結された状態の日時項目を日付と時刻に分割する作業
上記対処が為された1分足ファイルさえ完成すれば、そのファイルから各時間足ファイルがあっという間に作成できます。
その方法も最後に載せておきます。
Contents
クリック証券のcsvデータについての概要(2020年1月現在)
1.通貨ペア:20ペア
2.最古データ:2007年(主要通貨ペアーの場合)
3.格納データ項目:
時期によって次の3タイプに分類されます。
3-1.2007年1月~2014年6月まで(旧FXネオデータ)
日時はyyyymmddhhmmss BIDレートの始値、高値、安値、終値
3-2.2014年7月~2016年1月16日まで(旧FXネオデータ)
日時はyyyymmddhhmmss BIDレートの始値、高値、安値、終値とASKレートの高値、安値
ASKレートの高値、安値が追加されています。
3-3.2016年1月18日~現在(新FXネオデータ)
日時はyyyy/m/d h:mm BIDレートの始値、高値、安値、終値とASKレートの始値、高値、安値、終値
日時の格納形式が変わり、ASKレートも始値、高値、安値、終値の4本値が格納されるようになりました。
(注)
FXネオは2016年1月18日から新FXネオに切り替わっています。(旧FXネオも2月26日までは平行運用)
ということで2016年1月16日までが旧FXネオのデータ、2016年1月18日からは新FXネオのデータとなりますので、2016年の新ネオデータの1月分には1月16日までのデータは格納されていません。
1月16日までのデータに関しては新FXネオの表の下の旧FXネオの表に格納されています。
4.1日の開始時刻と終了時刻:
7:00~翌6:59(但し、サマータイム時は6:00~翌5:59)
作成するcsvファイルのデータ項目
1.日付(yyyy/mm/dd)
2.時間(hh:mm:ss)
3.始値(BID)
4.高値(BID)
5.安値(BID)
6.終値(BID)
ファイル作成手順
通貨ペアーEURJPYの20XX年度の1分足ファイルを作成するという前提で話を進めていきます。
(注)EXCELのバージョンが古いと行数制限の為元ファイルを分割する等の作業が必要になってくるかもしれません。
対象データダウンロード
・クリック証券マイページのトップページで「ツール」を選択。
↓
・左サイドのメニューで「ヒストリカルデータ」を選択。
↓
・右上の年度選択で対象年度20XX年を選択。
↓
・対象通貨ペアーをEURJPYの1月を選択し保存。
↓
・12月までどう処理を繰り返す。
↓
・ダウンロードフォルダーに1月から12月までの圧縮ファイルが作成されていることを確認。
圧縮ファイル解凍
・エクスプローラーで「ダウンロード」フォルダーを開く。
↓
・20XX年1月分圧縮ファイルをクリック。
↓
・「すべて展開」をクリック。
↓
・展開先を指定するウィンドウで展開先を変更せず「展開」クリック。
↓
・12月分まで同処理を繰り返す。
↓
・ダウンロードフォルダーに1月から12月までの解凍後フォルダーが作成されていることを確認。
(注)windows10では複数ファイルを同時に解凍することができませんので1か月単位で行っていますが、
同時に解凍する可能なフリーソフトもあるようですので、面倒な方はフリーソフトをご使用下さい。
csvファイル連結
ファイル連結には「コマンドプロンプト」というツールを使用します。
コマンドを集積したバッチファイルを作成し一括処理で20XX年度分の1分足CSVファイルを作成していきます。
バッチファイルはC:¥Users¥PCUser¥Downloads下に作成するという前提です。PCUserを変更されている場合は変更後の名称に置き換えて下さい。
・エディター(メモ帳で可)を開きます。
↓
・まず1行目に1月分のコマンドを記述します。
TYPE EURJPY_20XX01\20XX01\*.csv >> EURJPY_20XX_1min.csvと打ち込んで改行して下さい。
TYPEコマンドは本来ファイルの中身を見るコマンドですがファイル作成機能も持っています。
EURJPY_20XX01ファルダー下20XX01フォルダー下の全てのcsvファイルを連結して新しいEURJPY_20XX_1min.csvファイルを作成しなさいという命令です。
↓
・次に2月分のコマンドを次のように打ち込んで改行して下さい。
TYPE EURJPY_20XX02\20XX02\*.csv >> EURJPY_20XX_1min.csv
EURJPY_20XX_1min.csvはそのままです。EURJPY_20XX_1min.csvの1月分の後に2月分を追加してくれます。
>>の代わりに>としてしまうとデータが上書きされてしまいますので注意して下さい。
↓
・順次3月分以降のコマンドを作成します。
↓
・1月から12月分のコマンドが記述されているかを確認して下さい。
確認がとれたらバッチファイルとして保存します。バッチファイルの拡張子はbatです。
ここでは「concfile.bat」という名称でダウンロードフォルダーに作成します。
↓
・バッチファイルを実行する為に「コマンドプロンプト」を起動させます。
画面左下のウィンドウズマークをクリック、アプリ画面を下にスクロールしていき、「WINDOWS システム ツール」下の「コマンドプロンプト」をクリックして下さい。
↓
・「コマンドプロンプト」が起動し、
C:\Users\PCUser>が表示されます。
cd DownLoadsと入力後、Enterキー押下でカレントディレクトリーがDownLoadsへ移動。
concfile入力後、Enterキー押下で連結用バッチファイルが起動、終了すれば連結終了で1年分のファイルが完成です。
次はファイルの整備です。
ファイル整備
不要データ削除
・項目行削除
エクセルのデータタブを選択し、シート全体を選択した上で、日時項目昇順で並び替え。
下の方は項目行になりますから削除
・ASKデータが不必要の場合は削除
日時項目分割
日時データを日付と時刻に分割する作業手順です。
2016年1月16日以前(旧FXネオデータ)と2016年1月18日以降(新FXネオデータ)とでは日時の格納形式が異なっています。
1.2016年1月16日以前(旧FXネオデータ)の場合
日時は20XX0102070000というような日付と時刻が連結された状態で格納されています。
左8桁が日付、右6桁が時刻です。
これを日付と時間に分割します。
作業手順としては、まず他年度のファイルの日付も変換できるように1年分のデータ用の日付返還用ファイルを作成し、そのファイルを利用して分割作業を進めていきます。
・ファイルを新規作成し、
B1セルに =TEXT(LEFT(A1,8),”0000!/00!/00″)*1
C1セルに =TIMEVALUE(TEXT(MID(A1,9,6),”00!:00!:00″))
と打ち込みます。
↓
・B列とC列を下方向にコピーします。
1年分となると行数はかなり多くなりますので、38万行位までコピーしておきましょう。
そのくらいしておけばその他の年度ファイルでも未変換は発生しないと思います。
38万行目までコピーするとします。
最初にB列とC列の38万行目になんでもいいのでデータを入れておきます。
1行目に戻りB1とC1を選択。
Ctrlキー + Shiftキー + ↓キーで38万行目まで選択後、Ctrlキー + Dキーで38万行目までコピーされます 。
(VBAを使用して計算式をセルに入力することもできますが手作業以上に処理に時間がかかってしまいます。)
↓
・次に書式設定でB列を日付にC列を時刻に設定します。
↓
・このファイルを例えば「クリック日付変換旧ネオ用」等の名前で保存して下さい。旧ネオ用日付返還ファイルの完成です。
↓
・EURJPY_20XX_1min.csvのA列をコピーし、変換用ファイルのA列にコピーし再計算。
↓
・変換用ファイルのB列とC列の変換後データをコピー、EURJPY_20XX_1min.csvの先頭列に挿入後、値の貼り付け、元の日時列(C列)を削除後上書き保存でファイル整備完了です。値の貼り付けを忘れると計算式が残ってしまいますので要注意です。
2.2016年1月18日以降(新FXネオデータ)の場合
2016年1月18日以降のデータの日時はyyyy/m/d h:mmという形式で格納されていますので、別途に新FXネオデータ用の日付変換用ファイルを作成します。
・新規ファイルを作成後、
B1に =TEXT(A1,”yyyy/mm/dd hh:mm:ss”)
C1に =LEFT(A1,10)
D1に =RIGHT(A1,8)
とそれぞれ入力して下さい。
↓
・旧FXネオの場合と同様の方法で39万行目までコピーします。
↓
・次に書式設定でC列を日付にD列を時刻に設定します。
↓
・このファイルを例えば「クリック日付変換新ネオ用」等の名前で保存して下さい。新ネオ用日付返還ファイルの完成です。
↓
・変換対象ファイルのA列をコピーし、変換用ファイルのA列にコピーし再計算。
↓
・変換用ファイルのC列とD列の変換後のデータをコピー、EURJPY_20XX_1min.csvの先頭列挿入後、値の貼り付け、元の日時列(C列)を削除後上書き保存でファイル整備完了です。値の貼り付けを忘れると計算式が残ってしまいますので要注意です。
ファイル確認
全データの日時が日付と時刻に分類され、かつ正しく変換されているか等を確認、OKであればファイル整備完了です。
他の時間足ファイル作成
さて、1分足があればその他の足は関数やVBAで作成可能ですが、作成は面倒という場合には便利なフリーソフトがありますので、ここではそのソフトを使用して他の時間足ファイルを生成していきます。
使用ソフトはご存知の方も多いのではないかと思いますがotk様のCandleStickEditorというソフトです。
あっと言う間に希望の時間足ファイルを作成してくれます。素晴らしい!otk様に感謝です。
手順ですが、
・「フルレバ50倍でFXシステムトレード」サイトでCandleStickEditorをダウンロード後、解凍します。
↓
・CandleStickEditor.exeを起動。
↓
・ファイル指定エリアに記述がある場合は「リストクリア」クリック。「ファイルを開く」クリックで上記で作成した1分足csvファイルを指定します。
↓
・以下詳細設定については画面の指示通りに設定して下さい。
例として、
作成するファイルは5分足と日足、
時間表示は開始時刻採用、
1日の開始時間は7:00
というファイルを作成する場合の設定は次のようになります。
作成時間足:5,1440
時間足のまとめ:0時0分選択
DATEフィールド:1番目
タイムゾーン:0
時刻形式:hh:nn:ss(なぜmmではなくnnなのかは不明)
日付の区切:/
基準区切り時刻:7:00
時刻のフィールド削除:チェック
自動上書き:チェック
直前の終値でのバー形成:チェック
月曜7:00~土曜7:00で書き出し
特殊設定:無
↓
・実行すると、1分足の他に、5分足、日足それぞれのファイルが作成されます。
通常は10秒もかからず処理終了となりますが、もととなるファイルの内容が指定された内容と異なっているとなかなか処理が終わりません。
その場合は内容を再度確認後再トライしてみて下さい。
まとめ
以上、GMOクリック証券のFXヒストリーデータから各種時間足データを作成する方法をご紹介させていただきました。
現在はフリーソフトが充実していますから、複数ファイルの凍結を同時に行えるソフトもあるようですので、本サイトの方法はかなり原始的という感じも否めませんが、、、
長期データを作成することはかなり面倒ですが、取り敢えず1分足データファイルさえきっちり作ってしまえば後は楽、バックテストの大きな武器になるかと思います。
シストレは当然として、裁量トレードの際も過去データの分析は不可欠です。
EXCELと信頼できる過去データさえあれば、各通貨ペアーの波動の特徴をある程度把握できます。
是非、使い勝手の良い過去データベースを作成し、あ~だこうだと分析してみて下さい。必ず次の戦いの際に生きてくると思います。
まだGMOクリック証券の口座をお持ちでない方、GMOクリック証券のHPはこちらです。