仮想通貨のデータを取得して分析したいときに、Pythonとオープンソースライブラリ「CCXT」を使えば簡単に取引所からのデータを取得できます。本記事では、仮想通貨取引所「Coincheck」からデータを取得する方法を紹介します。必要なデータにアクセスして、リアルタイムの価格取得やローソク足データの作成まで、Pythonでサクッとやる方法を見ていきましょう。
必要なライブラリ
仮想通貨のデータを取得するために使うライブラリは、以下のものです。
- ccxt: 多くの取引所のAPIを簡単に使えるライブラリです。
- pandas: データフレームを扱うためのPythonライブラリです。
- numpy: 数値計算を効率的に行うためのライブラリです。
インストール方法は以下の通りです:
pip install ccxt pandas numpy
Binanceからビットコインの最新価格を取得
まずは、仮想通貨取引所「Binance」に接続して、ビットコイン(BTC/JPY)の最新価格を取得する簡単な例を見てみましょう。
import ccxt
# Binance取引所に接続
exchange = ccxt.binance()
# ビットコインの最新価格を取得
ticker = exchange.fetch_ticker('BTC/JPY')
print(ticker['last']) # 現在のBTC価格
このコードでは、Binance取引所に接続し、ビットコインの現在価格を取得しています。fetch_ticker
関数を使うことで、指定した取引ペアの最新の価格情報に簡単にアクセスできます。
Coincheckでサポートしている取引ペア一覧を取得
次に、Coincheck取引所から利用可能な取引ペアの一覧を取得する方法を紹介します。
import ccxt
# Coincheck取引所に接続
coincheck = ccxt.coincheck()
# 市場情報をロード
markets = coincheck.load_markets()
# シンボル一覧を取得
print(coincheck.id, coincheck.symbols)
load_markets
メソッドを使うことで、Coincheckがサポートしている取引ペア(シンボル)の一覧を簡単に取得できます。coincheck.symbols
でそれらのシンボルを表示します。
Coincheckから取引データを取得し、ローソク足(OHLC)を作成
最後に、取引データを取得し、それをもとにローソク足データ(Open, High, Low, Close)を計算する方法を見ていきましょう。
import ccxt
import pandas as pd
import numpy as np
from datetime import datetime, timedelta
# コインチェックのインスタンスを作成
exchange = ccxt.coincheck()
# 取引ペアを指定(例:BTC/JPY)
symbol = 'BTC/JPY'
# 時間枠の長さ(例:1分足は60秒)
timeframe_seconds = 60 # 1分足の例
# トレードデータを取得
trades = exchange.fetch_trades(symbol, limit=100)
# トレードデータをDataFrameに変換
df = pd.DataFrame(trades)
# タイムスタンプを人間が読める形式に変換
df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')
# タイムスタンプを指定した時間枠で切り捨て(例:1分足)
df['timestamp'] = df['timestamp'].dt.floor(f'{timeframe_seconds}S')
# ローソク足(OHLC)の作成
ohlc = df.groupby('timestamp').agg({
'price': ['first', 'max', 'min', 'last'], # Open, High, Low, Closeの計算
'amount': 'sum' # 取引量の合計
})
# カラムの名前を変更
ohlc.columns = ['open', 'high', 'low', 'close', 'volume']
# データを表示
print(ohlc)
このコードでは、Coincheckから取引ペア(例:BTC/JPY)のトレードデータを取得し、pandas DataFrameに変換しています。その後、トレードのタイムスタンプを1分足に揃えて、ローソク足データ(OHLC)を作成します。
結果として、ohlc
には、各時間枠におけるOpen, High, Low, Closeと取引量(Volume)が計算されたデータが含まれます。
まとめ
この記事では、Pythonとccxtライブラリを使って仮想通貨取引所「Coincheck」と「Binance」からデータを取得する方法を紹介しました。最新のビットコイン価格を取得したり、取引データを使ってローソク足を生成したりすることで、仮想通貨の価格分析を始めるための第一歩を簡単に踏み出せます。
今回のコード
今回使用したコードはこちらのGoogleColabで確認できます。