bitFlyer Private APIから全約定履歴を取得する[python][SQLite3]

こんにちわ、ニッケルメッキです。
最近ポジション管理を約定履歴をもとにAPIをコールせず、ローカルで自計する自炊と呼ばれる方法が話題となりましたので、全約定履歴を取得するコードを書きましたのでシェアしたいと思います。

仕様としては、bitFlyer Private APIのgetexecutionsをコールし取得した最古のIDをbeforeへ指定しつつ過去にさかのぼり、SQLiteのexecutions.dbへINSERTしていき、APIより空配列が返るまでコールします。2回目起動時はafterへ前回取得時の最新IDをbeforeと共に指定し、betweenによるページングを行います。(差分アップデート)
DBを初期化して取り込みを開始したい場合は、下記の行をコメントアウトアウトすることで初期化後取り込みが開始されます。
# self.db.delete('executions')
DBのインデックスですが、IDが重複するためプライマリーキーは設定していません。
各種ライブラリのインストールとAPI KEY、SECRETをconfig.iniへ設定のうえmain.pyを実行することで動作します。
※自作APIラッパーの都合上asyncioを使用していますが意味はありません。気にとめないでください笑


取引量の多いかたは取り込み切れないとおもいますので、初回取込み時にafterへ手頃なID(ポジション0地点等)でも指定頂ければとおもいます。
ちょっとコードを分割してしまい長いためファイルを添付しました。
なにかの参考になれば幸いです。


この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

9

ニッケルメッキ

相場好きです!それだけ。
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。