[Python] bitFlyerFX 1分足OHLCを3年分集める

こんにちは、みるくちょこです。
今回はPythonでbitFlyerFXの1分足OHLCを3年分集めて見たいと思います。
(既出ネタでしたらすみません^^;)
3年分のOHLCデータがあれば様々なことに活用できると思います。

1. Botのバックテスト
長く通用するBotを作りたい方へ。様々な出来事のあったビットコインの値動きにどれくらい対応できるか検証できます。

2. チャートサービス
新しくチャートを表示させたり、出来高を使って何かサービスを公開したい場合にどうぞ。

今回は2016年1月1日00:00:00までのデータを集めてみましょう。
Lightchartの動作をチェックしたところ、
https: //lightchart.bitflyer.com/api/ohlc
という場所にデータがあるようです。


pipで必要なパッケージをインストール(必要に応じて)

pip install requests


get-ohlc .py

随分乱暴なプログラムですがご勘弁ください。
適宜、休憩を入れてbitFlyerに迷惑のかからないようにしましょう。

import requests, json, os
from time import sleep
from datetime import datetime

r = requests.get("https://lightchart.bitflyer.com/api/ohlc?symbol=FX_BTC_JPY&period=m").json()
time = r[0][0]

if not os.path.isdir("ohlc_files"):
    os.makedirs("ohlc_files")

while True:
    r = requests.get("https://lightchart.bitflyer.com/api/ohlc?symbol=FX_BTC_JPY&period=m&before="+str(time)).json()

    for i in range(0, len(r)):
        r[i][0] = int(str(r[i][0])[:10]) #タイムスタンプのミリ秒を削除
        print(r[i][:6])

        # CSVに変換する
        data = str(r[i][:6]).replace(' ', '')
        data = data.replace('[', '')
        data = data.replace(']', '')

        # 取得した最古のデータの時間
        last = r[i][0]
        # タイムスタンプの変換
        date = str(datetime.fromtimestamp(last))

        # 書き込み
        f = open('ohlc_files/ohlc' + date[:7] + '.csv','a')
        f.write(date + "," + data + "\n" )
        f.close()

        if date == "2016-01-01 00:00:00":
            exit()

    time = str(last-60)+"000"
    sleep(1)

実行が終わるには数分かかります。

どうでしょうか。うまく行けば、「ohlc_files」というフォルダの中にデータが溜まっているのを確認できます。

少しでも何かの役に立てば幸いです。

この続きをみるには

この続き:0文字

[Python] bitFlyerFX 1分足OHLCを3年分集める

みるくちょこ

333円

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

20

みるくちょこ

面白いことがあれば、たまにノート書いて行きます。プログラミングは全くできません。

仮想通貨

1つ のマガジンに含まれています
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。