![見出し画像](https://assets.st-note.com/production/uploads/images/41392624/rectangle_large_type_2_01500a277bcb5839754805d2fee83eae.jpeg?width=1200)
仮想通貨の短期足(1分など)価格推移データを取得する方法
・仮想通貨の短期の価格データが欲しいけど、ネット上では日足データまでしか見つからなかった
・ビットコインの売買アルゴリズムの検証(バックテスト)をしたいけど、手頃な過去データが無い
このような悩みを持つ方向けに、今回は指定した時間間隔でビットコインの価格データを収集するPythonプログラムを公開します。
このプログラムを実行することで、今すぐに望むデータを取得することができます。
(関連ブログ記事)
・仮想通貨の自動売買に使いやすい取引所ランキング
・ビットコイン裁定取引のシミュレーション用Pythonコード
仮想通貨のデータ取得プログラムの概要
今回のコードがやることは超シンプル。
・一定時間ごとにコインチェックのAPIを利用して最新の仮想通貨価格を取得
・取得したデータをcsvファイルに吐き出す
これだけです。実行すると↓みたいなファイルがゲット出来ると思います。
ちなみに、ブログで公開している「ボリンジャーバンドを考慮して、仮想通貨の取引注文を自動で行うPythonコード」の記事とは異なり、今回のコードではコインチェックに口座開設してなくても誰でもそのまま実行可能です。
価格データ取得プログラム本体
さて、それではコード本体です。
from coincheck import market,order,account
import time
import pandas as pd
import datetime
#データ収集を行う時間(秒数)
working_time=30
#何秒足(何秒ごと)のデータを取得するか
interval_sec=5
m1=market.Market()
price_dict={}
for i in range(int(working_time/interval_sec)):
# price_list.append(m1.ticker()["last"])
print(m1.ticker()["last"])
print(m1.ticker())
price_dict[datetime.datetime.now()]=m1.ticker()["last"]
time.sleep(interval_sec)
print(price_dict)
#さっき集めたデータをpandasのデータフレーム化
df = pd.DataFrame(list(price_dict.items()),columns=["time","price"])
#取得データを保存
df.to_csv("data.csv")
たったこれだけです。
サンプルコードでは、5秒ごとに価格データを収集していますが、ここを自分が好きな時間足に書き換えればOKですです。
なお、事前に必要なライブラリをインストールしておいてください(そんなにないですが……)。
coincheckのAPI操作のライブラリも含め、全部普通にpipで入ったはず。
(正確な所は↑で貼ったブログ記事に書いたはずなので、各自確認よろしくです)
なお、「コピペすら面倒い……」というヤバい人の為に、一応コードファイルをアップしておきます。
noteはこういうのもできるからいいね!
ビットコイン過去データ収集時の注意点
最後に今回の方法の注意点をいくつか。
・あまりに頻繁に価格データを収集しない
コインチェックのサーバーに負荷がかかるのでやめましょう。
たしか1秒になんどもAPIにデータを要求するとブロックされる仕様だったような。
・データ取得時間には少しズレがある
当然、数学的に厳密な意味で指定した時間ごとの価格データが得られる訳ではありません。
ズレの影響は、時間足が短くなればなるほど大きくなります。
とはいえ、一分間隔とかのデータが欲しい時はあまり意識する必要は無いでしょう(たぶん)
というワケで、今回の記事が誰かの役に立てば幸いです!
投げ銭くれ(投げやり)
ご覧いただきありがとうございます! 少しでもサポートいただければモチベーションになります!