hatunina’s blog

メモと日記です

bitflyerから日付を指定して約定履歴を取得するスクリプトを改良しました

これの続きです。

hatunina.hatenablog.com

追加したところ

・データ取得開始日だけでなく取得終了日(時間)まで指定できるようになりました。
・取得したデータを1分足、1時間足、日足のHLOC(高値、安値、始値終値) + 出来高に変換できるようになりました。
・変換したHLOC + 出来高を描画できるようになりました。

使い方

必要ライブラリは変わらずです。

pip install pandas
pip install progressbar2

gitからクローン後、プロジェクト直下にdata, log, hlocディレクトリを作成します。
で、各々のモジュールを実行するとデータ取得したり変換したり描画したりします。

getbtc.py

データ取得開始と取得終了日を指定してデータを保存します。

こんな感じで実行します。

python src/getbtc.py -s 2018-01-01-00:00:00 -f 2018-04-11-23:14:00

この場合は上記の期間でデータを取得します。

-fオプションは省略できます。

python src/getbtc.py -s 2018-01-01-00:00:00

省略された場合は取得開始日からモジュール実行時の時刻までを取得します。

generatehloc.py

getbtc.pyで取得したデータをHLOCと出来高に変換します。
変換結果はhlocディレクトリへ出力されます。

コマンドはこんな感じ

python src/generatehloc.py -d ./data -t one_minute

-dオプションで変換するデータがあるパスを指定します。
getbtc.pyを実行した流れで-d ./dataとすると、取得した全データを変換するので、小分けにしたいとかいう場合は別ディレクトリへファイルを移動して引数を変えるとかしてください。
データ取得に比べるとそんなに時間はかかりません。
一つのファイルを変換するのに、たぶん30秒ぐらいだと思います。

-tオプションで変換する足を指定します。
1分足、1時間足、日足しかないですごめんなさい。
各足の指定方法は下記の通りです。

1分足 -> one_minute
1時間足 -> one_hour
日足 -> one_day

plotchart.py

引数で指定されたファイルを描画します。

python ./src/plotchart.py -f ./hloc/hloc_one_day_2018-01-01-00:00:00_2018-04-09-00:00:00.csv

-fオプションでファイルを指定します。
変換したデータがの雰囲気が知りたい時とかに使ってあげてください。

こんな感じで描画されます。

f:id:hatunina:20180415221401p:plain

詳しくはREADMEを読んでください

ついでにスター押してもらえると喜びます。

github.com

ちゃんと作り込んでない箇所

HLOCへの変換が1分足、1時間足、日足までしか対応していません。
個人的に1時間足と日足があれば事足りそうなので、簡単に作れるとこまでしかやっていません。
一手間加えれば多分作れると思うのでどなたかにお任せします。

ただ、そもそもbitflyerの日足って0時ジャストで更新なんですか?
とりあえず0時で区切ってますが正しいのかな。。。
朝9時とか8時とかだった気がしなくもない、、、

あと、描画モジュールがテキトーです。
チャートの雰囲気が見れればいいやぐらいの軽い気持ちで作ってあるので厳密なものはあまり期待しないでください。

分析します

これでデータが準備できたので、何かしら分析にかけてみようかと思います。
というより、kaggleで議論されているのを発見したので、とりあえずここのカーネルを眺めようかな。
なんなら、データセットも公開されてるやんけ。。。

Bitcoin Historical Data | Kaggle

参考

HLOC変換と描画に関して参考にさせていただきました。
www.madopro.net