スポンサーリンク

Forex Testerに導入するヒストリカルデータの時間軸修正と質向上に関する考察3

その2のつづきです。


 前回記事では質の良いヒストリカルデータをForex Tester2に上書きする方法について記しました。

 本記事では、前回手法では満足できなかった「冬時間が6本になる問題」の対応策について説明します。

スポンサーリンク

前回までの対策パターンと本対策パターンの比較

 表1に前回までの記事で記した対策パターン(1~3)と、本記事に記す対策パターン(4, 5)の良し悪しの比較を示します。

表1 各パターンにおける良し悪し一覧

 データ導入手法の行における手法1は1つ目の記事、手法2は2つ目の記事、手法3が本記事に記した内容を示しています。

 パターン4, 5では、パターン1~3において課題となっていた「週あたりの日足の本数」が年間通して5本になり、短期時間足の質も合わせて出来る限りの中で最高水準だと思える検証用データを作成できると考えています。

 反面作業時間はこれまでの対策に対して相当な時間を要するため、自身のトレードスタイルに合わせて最適なパターンを選択して欲しいと思います。

冬時間の日足を週5本にするための対策

Dukascopy Japan社におけるヒストリカルデータのダウンロード

「時間範囲」に工夫

 前回記事では、取得できる期間を一度に全部ダウンロードしていましたが、今回は冬時間を週5本にするために夏時間帯、冬時間帯をわけてダウンロードを行います。結果的にダウンロードを行うための作業量が膨大に増えてしまいます(1年分を2回に分けてダウンロードする必要があるため、10年分なら20回)。何か別作業をしながら気長に行えばと思います。

 ダウンロード前の設定(プラットフォームの時間など)は前記事と同様EET(UTC+2時間)です。ダウンロードの作業工程は前記事を参照願います。

Dukascopy Japan社における夏、冬時間の境目(USDJPY基準)

 「夏時間と冬時間の境目」は国(地域)ごとに異なります。

 例えばヨーロッパの大半国における定義では、3月の最終日曜日午前1時~10月最終日曜日午前1時までを夏期間、10月の最終日曜日1時~翌年3月の最終日曜日1時までを冬時間と定義しているようです(UTC基準)。

 ただ、問題はヒストリカルデータ(Dukascopy Japan社データ)上において「どの期間が夏時間でどの期間が冬時間か」であるため、ドル円(USDJPY)チャートにて、夏時間を日足週5本にする設定をしたときの、週5本と6本に分かれる境目を調べました。

 USDJPYでは、下図1に示す期間がDukascopy Japan社のヒストリカルデータにおける夏時間と冬時間の境目となっていましたので、ダウンロードの際の時間範囲設定(図2参照)の参考にしていただければと思います。

 各ファイル名における前半部分が「開始日時」、後半部分が「終了日時」です。

※期間の調査は慎重を期して行ったつもりですが、データに間違いのある可能性があることをご留意願います。また別通貨において同様である保証もいたしかねますのでご注意ください。

図1 Dukascopy Japan社の夏時間と冬時間の期間(USDJPY)

図2 時間範囲設定画面(時間範囲を「カスタム」にすると表示)

どうせなら全通貨ペアDLしてしまいたい

 Dukascopy Japan社では、全48通貨ペアを取引することができます。よって、ダウンロードできるヒストリカルデータも全部で48通貨ペアあり、分析および検証作業が非常に捗ります。

 ヒストリカルデータの取得において、通貨ペア(銘柄)をチェックしてしまえばダウンロードできてしまうため、本手法のように期間を細かく設定する場合、全通貨ペアを一度にダウンロードしておいたほうが、後々欲しくなったときの手間が省けると思います。

 なお前記事でも書きましたが、通貨ペアによってはデータ期間が短いため、存在しない期間をダウンロードしようとした際に図3のような画面が出てきます。その場合は、画面に表示されている通貨ペアのチェックを外せば問題ありません。

図3 存在しないデータ範囲をDLしようとした際に出る画面例

 また、全通貨ペアの全範囲をダウンロードすると、膨大なファイル数(約1200ファイル、図4参照)と容量(約9GB)になるため、注意が必要です。

図4 全通貨ペア、全範囲ダウンロードした場合のファイル群

Forex Testerにおけるデータの導入法

一旦データを空にする→タイムシフトを+3に

 Forex Testerに前もって読み込み済のデータがあれば、一旦空にする必要があります。データが残ったまま作業を行うと、読み込み済のデータが残る可能性がある(日足が週6本のままになる)からです。

 データセンター画面を表示し(下図5参照)、ヒストリー内のデータ消去ボタンをクリックし削除します。対象通貨ペアの取り込んだ1分足データが「no data」になっていれば完了です。

 また、タイムシフトを+3に設定します(設定済みならそのまま)。

図5 取り込んだ1分足データの削除とタイムシフト設定

ダウンロードしたデータを読み込む

 夏時間、冬時間で分割してダウンロードしたファイルを順に読み込んでいきます。

 読み込む際に気をつけることとして
① 夏時間のヒストリカルデータを読み込む時は「時間のシフト」を3にする
② 冬時間のヒストリカルデータを読み込む時は「時間のシフト」を2にする
③ 時間のシフトを変更した際に勝手にチェックが付くので必ずチェックを外す

の3点が挙げられます。

 特に③を忘れると途中まで読み込んでいたデータが全部消えるので、図6の赤枠部は読み込む度に毎回確認する必要があります。

図6 チェックが入った状態(チェックは外してから次へをクリックする)

 次へをクリックしたあとに出るプレビュー画面(図7)で、時間のシフトが正しく設定できているかを簡易的に確認できます。

 正しく設定できている場合、図7(a)のようにプレビューの最初の時間帯が0時になっています。

 正しく設定できてない場合、図7(b)や(c)のように0時ではなく1時であったり23時になっています。

 また、ヒストリカルデータのダウンロードの際に日付指定を誤っている場合(夏時間の範囲を設定しているつもりのファイルに、冬時間が混じっているような場合)、0時と表示されない可能性があります。

(a) 夏時間帯のデータに時間のシフト+3(正しい設定)

(b) 夏時間帯のデータに時間のシフト+2(誤った設定)

(c) 冬時間帯のデータに時間のシフト+3(誤った設定)

図7 プレビュー画面で設定の確認

 この読み込み作業をファイル数の分だけ繰り返すことになるため、表1のパターン4, 5は他のパターンと比べて相当時間がかかることになります。EURJPY(約15年分)で30分くらいかかりましたので、目安としては1通貨ペア1年あたり2分前後くらいかと思います。

forexite社のデータを必要としない場合、これで作業完了です。

 結果例として、EURJPYの2016年度冬時間、2017年夏時間(8/24まで)を上記方法で導入した際の日足チャートを図8に示します。

 日足週6本のときに存在した出来高の隙間がなくなり、冬時間帯、夏時間帯ともに日足が週5本になっています。

図8 EURJPY日足チャート(日足週5本)

最後にforexite社データを加える(パターン5)

 Dukascopy Japan社からダウンロードしたヒストリカルデータを全部読み込んだあと、必要であればforexiteのデータをダウンロードします(サーバーからデータ更新)。

 データ範囲の指定は「日付を指定してダウンロード」を選択し、終了日は読み込み済データの一番古い日付の前日を指定してダウンロードします(Dukascopy社のヒストリカルデータを読み込んだ際に空とされている隙間の部分にデータが入ってしまう可能性があるため)。

図9 forexite社のデータ読み込み

「究極」を目指す方に

クリスマスと元旦のデータをどうするか

 以上の操作で完璧な検証用チャートデータが完成した…と思ったのですが、図10のように元旦やクリスマス(12/25)にレート変化0、出来高0のデータが入り混じっている年が見受けられました。

 おそらくブローカーとして非営業日であるにもかかわらずデータとして入ってしまっているためだと考えられます。

図10 不要なチャートデータ(EURJPY, 1時間足)

 このデータを消すには、冬時間帯のヒストリカルデータをダウンロードする際に、より細かく範囲を指定してダウンロードする必要があると考えられます。

 図10の場合だと、①冬時間スタートから12/24まで、②12/26から12/31まで、③1/2から冬時間終了まで、という具合です。

 私は悩んだ挙句この作業はしませんでしたが、USDJPYチャートにて図10のような不要なデータが入っている箇所を調べましたので参考までに紹介します。

※下記以外の日にも同様のデータがある可能性、他通貨ペアだとこのようなデータがない可能性がありますので、その点ご注意願います。

レート変化0、出来高0を確認した時間帯(2017年9月時点、USDJPY 1時間足)

・2016/1/1 0:00~23:59
・2015/12/25 10:00~23:59
・2015/1/1 0:00~23:59
・2014/12/25 10:00~23:59
・2014/1/1 0:00~23:59
・2013/12/25 9:00~22:59
・2013/1/1 2:00~23:59

おわりに

 本記事では、「最高環境のチャートデータを構築した」だけであり、この作業を行ったからといって取引スキルが向上するわけではありません。

 最高の環境で検証を始めるスタートラインに立っただけでしかない、ということを忘れてはいけません(やや自戒の念を込めて)。

 私自身、理想に近いデータを取得できたことで、これから検証を毎日行ってトレードスキルを上げていきたいと思っています。

「csv」ファイルを使えば…?

 今回はhstファイルを使った例ですが、csvファイル形式でダウンロードすれば、ダウンロード後にExcel等で手動で時刻や不要データ削除などの修正を行えるのではないか…?と内心思っていますが、今回はその検証は行わないでおこうと思います。

謝辞

  • トレードスキルの向上のための最高のソフトを作成していただいたForex Tester開発者の皆様

  • 検証のための膨大な期間のヒストリカルデータを無料提供していただいているforexite関係者の皆様

  • 非常に質の高いヒストリカルデータを多くの通貨ペアで提供していただき、かつ透明性の高いトレード環境を提供されているDukascopy Japan社

 最後になりましたが改めて御礼申し上げます。



コメント

  1. 地上 より:

    初めまして
    FT3のGMTオフセットを一つのプロジェクトで夏/冬時間の二つを設定できず、何か手はないかと考えていて、こちらにたどり着きました。
    色々と有益な情報をありがとうございます。
    結論として、ティックデータを使いたい場合は夏と冬でプロジェクトを分けるしか無く、1分足単位で良ければ夏/冬時間を調整したデータを読み込ませることで対応可能と知りました。
    ティックを必要とする様なテストでは夏/冬時間の差は必要ないでしょうが、ティックデータを一度手放すと、VIPデータを再購入する必要があるので、悩ましいです。
    ティックデータを保存する方法があればよいのですが。

    ところで、本ページではDukascopyのヒストリカルデータを分割してGMTをずらしながら読み込ませる方法をご紹介されていますが、同等のデータをTickStoryで一括で入手可能ですので、ご報告します。
    私はアメリカ式の夏/冬切り替え日で、GMT+2/+3のデータをこの方法で読み込ませました。
    TickStoryでは夏/冬切り替え日を有無も含めて時間帯調整で設定できるので、東部標準時でファイル出力します。
    FT3読み込み時には、冬時間をGMT0にするため、シフト+5で読み込ませます。
    プロジェクト作成時にGMT+2/+3にするため、タイムゾーンGMT+2に設定します。
    なお、1分足データはTickStoryのFree版で出力可能です。
    宜しければお試しください。

    • MC より:

      はじめまして。
      アクセスいただきましてありがとうございます。参考になったということで嬉しく思います。

      私はティックデータレベルまでの読み込みを想定としていなかったため、
      ティックデータも所有している方からするとまだこの方法では問題があるということを今回初めて知りました。
      さらなる対策が必要ですね…教えていただきありがとうございました。

      TickStoryというサイトに早速アクセスしてみましたが、英語ページということで立ち止まってしまいました(笑)
      雰囲気だけ読んでみると、Dukascopy社のデータを利用しているというようなことが書いてあるように見えましたので、質は同等なのかなと思いました。
      もし夏時間冬時間を気にせず一発で数年分のデータをForex Testerに読み込めるとなると、TickStoryを使って読み込む手法が最善になるかもしれませんね。
      現状はこのスカスカなホームページに手を入れることを優先したいため、後々手順化できるか確認して、できそうなら記事にさせていただきたいと思います。

      今後ともよろしくお願いします。

  2. 地上 より:

    こんばんは。
    私の調べた限りでは、ファイルから取り込みは1分単位が最小であり、サーバーから取り込むデータは冬/夏の区別なしとの事なので、ティックの冬/夏切り替えは難しい様です。
    今現在の最良の妥協案は生涯ライセンスを購入してティックデータとTickStoryデータを自由に入れ替える事かなと思いますが、結構高額なので躊躇うところです。

    TickStoryはお調べの通り、Dukascopy社のデータをダウンロードする、或いはMT4にティックデータを読み込ませるアプリになります。
    私はDukascopy社のアカウントを有していないので不明ですが、恐らくDukascopy社のデータと同等レベルと思います。
    以前、MT4に入れて、Axioryとかなりの精度でマッチしている事を確認しています。

    TickStoryの使い方であれば、少しはお伝えできると思いますので、不明な点があればメールでご連絡いただければ対応可能です。
    勿論、MCさんの都合に合わせて、ご対応ください。

    プライスアクション、サイクルトレードにも非常に興味があるので、これからも勉強させていただきます。
    こちらこそ、今後ともよろしくお願いします。

    • MC より:

      お疲れ様です。

      私は、秒単位のスキャルピングトレードをしようと思わない限り、ティックレベルのデータは不要かなと思います。
      1分足レベルのデータでも5分足で考えれば、(ほぼ)正確な20ティック分の動きが再現できるので(始値、安値、高値、終値の4つのデータが1分ごとにあるため)、
      それで十分というか、それで十分になるような手法を考えるのが理想かなと思います(発想がケチに聞こえるかも知れませんが^^;)。

      TickStoryの情報ありがとうございます。
      次の冬時間突入時にデータ取りで動き出すかも知れませんので、その際に困ったら助け舟を出させていただくかも知れません。
      それまではコンテンツのほうを充実させていきたいと思っています。

      今後ともよろしくお願いします。