Pythonで本気の為替分析【準備編】

記事
IT・テクノロジー

準備編でやること


今回からは「準備編」と銘打って、少しずつデータ分析の内容に踏み込んでいきましょう。
しばらくは技術的なコラムが続きますので、プログラミングに興味のない方にとっては退屈な内容が続くかもしれません(p_-)
主にデータの分析にたどり着くまでの環境構築や、初歩的なコードなど、調べたことを載せていくつもりです。
ゆくゆくはもっと本格的なバックテストや分析もしていく予定ですので、今は面白く感じない方も、ときどきふと思い出してブログをチェックしてくだされば嬉しいです(´∀`*)
もしよかったらフォローやいいねをくださるとたいへん励みになります<(_ _)>

前回の記事はこちら↓

為替データのダウンロード

為替のデータはほとんどのトレード業者さんが公開されてると思うのですが、その多くは最短でも1分足のデータかと思います。
バックテストなどのデータ分析や自動売買ツールを開発する場合、1分足データではほとんど役に立たないでしょう(長期のロジックなら別ですが)。
Dukascopyという会社がティックデータを提供していますので、確か登録は必要だと思うのですが無料で手に入れられると思います。

またtickstoryというソフトをダウンロードすることで、わりと簡単にDukascopy社のティックデータを手に入れることができます。こちらのソフトも無料の範囲で使用することができます。

tickstoryのダウンロード

tickstory.comでググれば出てきますので、上部のdownloadメニューを押して、tickstory liteという無料バージョンをインストールします。
2-1.png

データのダウンロード

ダウンロードしたい通貨ペアを右クリックし、「ダウンロード」を押します。
とりあえずテストで使う分には1日分のデータがあれば充分ですので、開始日と終了日を選択してOK.
年単位のデータをダウンロードすると平気で数ギガとか超えちゃうんでご注意ください(;'∀')
2-2.png

csvファイルにエクスポート

ダウンロードが終わったら、csvファイルにエクスポートします。
先ほどダウンロードした通貨ペアを右クリックし、「ファイルへエクスポート」を選択。
開始日・終了日は先ほどと同じ日付にしておき、後の設定はいじらなくていいです。自分は時間帯だけ日本時間にしておきましたが、MT4とかで使いたい場合は「なし」か、夏時間の「UTC+02:00」のどちらかだと思います。
OKを押すと、tickstoryのインストールフォルダにusdjpy.csvが格納されていました。2日分のデータでも4MB、なかなかのボリュームです。
2-3.png

pythonで開く

適当にforexpyというプロジェクトフォルダを作り、usdjpy.csvはその階層化のdataというフォルダに入れておくことにしました。
pandasを使いたいのでインストールします。
pipenv install pandas

pandasで確認

sample.pyに以下のような感じでコードを書く。
import pandas as pd

fn = 'data/usdjpy.csv'

data = pd.read_csv(fn, index_col=0, parse_dates=True)
data.info()
tail = data.tail()
average = data['Bid price'].mean()

print(tail)
print(average)

2-4.png
実行してみます。
python sample.py
無事に表示できましたね(´∀`*)
.tail()はデータ末尾の5行を抜き出し、.mean()は平均を割り出します。
105.41696225639444とあるのは、2日間のBidの値の平均値ということですね。

まだまだ分析とは言えないですが、とりあえずデータを開くことができました。次回も引き続き、このデータを使ってpandasの基礎的な使い方を学んでいきたいと思います!


サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す