FX用に過去の経済指標を取得してみる

データを取得する

FXで経済指標は重要なポイントと考えられています。「重要指標の発表がある日はトレードしない。発表前に手仕舞う。逆に発表時にトレードする。」など様々な意思決定に利用されています。

直近や翌月までの指標を取得するのは簡単だったのですが、直近データだけでは参考にならないと考えたので過去データを取得することにしました。

参考にならないと考えた理由は、例えば「雇用統計の時は危ないからトレードしないようにしよう。」と考えた時に、何を根拠に危ないと考えているのかがよくわからないからです。(もちろんリスク回避の点ではとても参考になります。)
「ボラティリティが大き過ぎる、スプレッドが広過ぎる」など一般的な理由で不利だとも言えますが、それは使っている戦略(自動売買含む)にもよると思いますので、一概にトレードしないのが正しいとも言い切れません。

過去の経済指標を取得して戦略との組み合わせで検証すれば、戦略Aは「雇用統計前やFOMC前で手仕舞う!」、「戦略Bはそのまま動かす!」といったことをデータを基に判断できるようになるのではないかと思います。

検証可能な形に辿り着くまでが思ったより大変だったので、備忘録を兼ねて概要だけ残しておきます。

データ取得の流れ

データの取得や整形が楽にできるPythonを使用します。

PCに生データを保存

色々な業者の経済指標を確認して自分のPCにHTMLとして保存します。
検証で利用する過去の指標は動的に値が変わるものではないので、何度も業者のページにアクセスせずに一度ローカルPCに保存してから作業したほうが良いです。

業者によって週単位や月単位でデータを提供しているのですが、週単位では取得回数が多くなってしまうので月単位で取得できる業者の方が良いと思います。あとはURLと保存ファイルを変えながらちまちま頑張るか、URLに関連性があればループで回しながら取得(推奨)していきます。

整形前HTML

使える形に変換

持ってきた生データはそのままでは使えないことが多いので、色々と編集する必要があります。もしそのまま使えそうなデータであればこの処理を行う必要はありません。


整形後HTML

解析しやすい形に変換

HTMLの形式ではデータを扱いづらいので扱いやすい形に変換します。CSV(カンマ区切り)がメジャーですが、私はTSV(タブ区切り)好きなのでTSVにしました。 区切り文字とファイルの拡張子(.csv部分)を変えるだけなので好みのものを利用すれば良いと思います。


TSVに変換

データ統合

バラバラになっているファイルを1つに統合します。さらに「日付」や「指標の重要度」がそのままでは利用しづらかったので変換しています。

処理は色々と書いてありますが、取得してくる業者によって処理の中身が異なりますので、あくまでも一例と考えてください。

※全て日本時間になっているので、GMT+3に変更しています。

次回以降も簡単に利用できるようにファイルにも出力しておくと良いかもしれません。

dfmaster.to_csv(‘./data/economic_all.tsv’, sep=’\t’, index=False)


必要なデータを取り出してみる

これで2008年3月~2019年1月31日までのデータが解析可能な形で取得できましたので、いくつか試しに取得してみます。

※データ量が多いので画像は一部抜粋したものになります。

[USDの重要イベントのみ取り出す]
dfmaster[(dfmaster.IMPORTANCE==3) & (dfmaster.CURRENCY==’usd’)]

USDの重要度「高」

[雇用統計]
dfmaster[dfmaster.EVENT.str.contains(‘非農業部門雇用者数変化’)]

雇用統計

[FOMC]
dfmaster[(dfmaster.EVENT.str.contains(‘FOMC’)) & (dfmaster.EVENT.str.contains(‘終了後政策金利発表’))]

FOMC

[ECB政策金利]
dfmaster[(dfmaster.EVENT.str.contains(‘ECB’)) & (dfmaster.EVENT.str.contains(‘政策金利’))]

ECB政策金利

[BOE金利]
dfmaster[(dfmaster.EVENT.str.contains(‘BOE’)) & (dfmaster.EVENT.str.contains(‘金利’))]

BOE金利

最後に

経済指標を解析可能な形に変換するのにかなりの手間がかかりました。普通に考えれば業者からCSV形式でダウンロードできてよさそうなデータにもかかわらず、何故かできるところが1つもありませんでした。

隠しておくようなデータでもないですし、業者側は全てデータベースに保持しているはずなので簡単に抽出できると思うのですが。。。

とはいえ、今回収集したデータをMT4/MT5に読み込ませることで、「EA(自動売買ツール) + 指標」の解析が可能になりましたので、時間ができたタイミングで検証してみようと思います。

EAの運用に関しては「重要指標発表時に止めるか?止めないか?」という議論が常にあり、最終的には自己判断ということになりますが、例えば「2009年~2019年にXXX指標発表時に動かしていた場合の結果」と「動かさなかった場合の結果」を比較すれば、必然的にどちらを選択するべきか判断できるようになるのではないでしょうか。