python bitmex ローソク足データを月毎のファイルに自動保存する方法 ( 旧:指定した年月のローソク足データをファイル出力して保存する方法)
ローソク足データ ( ohlcv : open, high, low, close, volume ) データを取得する方法はいくつかあり、いろいろなサイトで説明されているのですが、一長一短だったり、思った通りの期間・足の長さで取得する方法が載っていなかったため、記載します。
bitmex の XBTUSD のローソク足データを取得する方法は
cryptowatch から取得
bitmex api の fetch_ohlcv を利用 ( ccxt の 関数 )
bitmex udf/history を利用
の3種類あります。
しかし、
cryptowatch から取得
→ 価格がそもそも bitmex のものと一致していない。取得可能期間も短い
bitmex api の fetch_ohlcv を利用 ( ccxt の 関数 )
→ 取得できる期間が短い ( 3分足150本程度が限界 )
bitmex udf/history を利用
→ fetch_ohlcv より期間が長い ( 10080本足 )
となっていますので、 udf/history を期間を調整しつつ使うのがよさそうです。
有名なアカガミ氏も udf を利用されているようです。
そこで、指定した月で、指定した足の長さでデータを取得して csv に落とすpython スクリプトを作成しました。
なお、udf を使用しても 10080 本しか取得できないため、上限を超えないようリクエストを分割・繰り返し処理して、マージした結果をファイルに保存します。(ここが欲しい機能なのに、この機能を実装している参考サイトが少ない気がします。。。)
これでCSVファイルを作成すれば、バックテストに役立つデータが手軽に作れます。
開発を続けるのであれば今後も常にデータは必要になるので、あって損はないはずです。
※ 2018-05-20 追記 ※
月を指定してわざわざ取得するのではなく、
初回起動時→2018-01-01から1分足データを月毎に生成
次回以降 →最新のCSVの末尾以降のデータを自動で追記
するように変更してみました。
上記を利用して、 cloud 9 環境で1日一回自動で起動して、ローソク足データを常に更新し続けることが可能です。
(自動起動させなくても、たまに起動するだけで前回起動時以降のデータが追記されます)
(WindowsPCの方も、たまーに起動してあげれば前回起動時以降のデータが追記されるので、便利かなと思います)
また、ローソクの長さも指定できるようにしています。(1分足~1時間まで)
自動保存するための python コードと、 cloud9 で自動実行する方法を載せます。
以下コードです。
ここから先は
¥ 700
この記事が気に入ったらサポートをしてみませんか?