私は2022年から暗号資産クオンツ戦略の開発に取り組んでおり、これまでに Databento と Tardis を本番環境で3ヶ月間並行運用しました。本稿は、私が実際にその運用で得た知見に基づき、API 経験が全くない完全な初心者の方でも最短30分で L2(Level 2)オーダーフローデータの連携を完了できるよう、スクリーンショットの撮り方までテキストで丁寧に解説したものです。後半では Tardis の強力な履歴リプレイ機能を代替する手段として Databento がどう位置づけられるかを実測値ベースで評価し、今すぐ登録で無料クレジットを獲得できる HolySheep AI と組み合わせた LLM ベースのデータ分析方法まで紹介します。
※ 本記事内の「L2」は金融市場データ文脈での「Level 2 板情報(複数気配値のオーダーブック)」を指します。Layer 2 ブロックチェーン(Arbitrum/Optimism など)のチェーン意味ではありません。
1. L2オーダーフローデータとは?──専門用語ゼロで説明
オーダーブックとは「買いたい人」と「売りたい人」の注文が一覧化された表のことです。L1(Level 1)は最良気配(一番高い買値と一番安い売値)だけを表示しますが、L2(Level 2)は板の中身を10段・20段・50段と深くまで見られます。オーダーフローとは「時間とともにどう注文が流れ込んできたか」という時系列データです。この2つを組み合わせた「L2オーダーフローデータ」は、トレーディング戦略のバックテストやマーケットマイクロストラクチャの研究に必須のデータです。
私が実際に研究で使った具体例は次の通りです。
- Binance BTCUSDT の最良気配から10段目までの板形状を1日単位で取得
- 注文の到着間隔(インターデリバル時間)を解析し、HFT(高頻度取引)戦略のバックテストを実施
- 板の片側厚み(インバランス)を AI に解釈させ、短期方向性を予測
2. Databento と Tardis の概要
どちらも暗号資産を含む市場データを提供する SaaS ですが、得意分野が違います。
- Databento:2022年創業。株式・先物・暗号資産の正規化データを REST API と Python SDK で取得可能。mbp-1/mbp-10/mbp-120 など豊富な L2 スキーマが特徴。開発者向けドキュメントが非常に丁寧。
- Tardis:2019年創業。暗号資産ネイティブで、2019年からのティックデータを「履歴リプレイ」という形で再構築できる機能が最大の武器。WebSocket ベースでリアルタイム性も高い。
私の印象では、「リアルタイム+最新の正規化品質」を求めるなら Databento、「2019年まで遡る長期バックテスト」を主目的とするなら Tardis、という棲み分けになります。本記事では Databento を軸に、Tardis の履歴リプレイ代替としてどこまで使えるかを検証します。
3. 環境構築(ゼロから30分で完了)
スクリーンショットのヒントを交えながら、コマンドだけコピペすれば進むよう構成しています。
3-1. Python のインストール確認
# ターミナル(macOS の「ターミナル.app」、Windows の「PowerShell」)を開いて実行
python3 --version
期待出力例: Python 3.11.7 のように 3.9 以降が表示されれば OK
※ 表示されない場合は python.org/downloads からインストーラをダウンロードし、「Add Python to PATH」にチェックを入れて再インストールしてください。インストール完了後、ターミナルを一度閉じ、もう一度開いてから再度確認します。
3-2. 仮想環境の作成
mkdir l2_orderflow_project
cd l2_orderflow_project
python3 -m venv venv
macOS / Linux の場合
source venv/bin/activate
Windows PowerShell の場合
.\venv\Scripts\Activate.ps1
成功するとターミナルの行頭に (venv) と表示されます
3-3. 必要パッケージのインストール
pip install databento requests pandas python-dotenv
スクリーンショットのヒント:pip の出力に「Successfully installed databento-x.x.x」と表示されれば成功です。赤文字で「ERROR」が出た場合は Python のバージョンを確認してください。
4. Databento 連携チュートリアル(ステップバイステップ)
4-1. ステップ1:Databento のアカウント作成と API キー取得
- ブラウザで
databento.com/portal/signupを開き、メールアドレスとパスワードを入力して登録します。スクリーンショットのヒント:右上の「Sign up」ボタンから進みます。 - 登録確認メール内のリンクをクリックし、ログインします。
- 左メニューの「API Keys」を開き、「Generate API Key」を押します。スクリーンショットのヒント:生成されたキーは再表示できないので、必ず安全な場所にメモ帳へコピー&ペーストしてください。
- キーを
.envファイルに保存します。
# プロジェクト直下に .env ファイルを作成(テキストエディタで OK)
DATABENTO_API_KEY=db-あなたのキーをここに貼り付け
HOLYSHEEP_API_KEY=hs-あなたのキーをここに貼り付け
4-2. ステップ2:初めてのデータ取得(30行で完結)
import os
import databento as db
from dotenv import load_dotenv
load_dotenv()
Databento Historical クライアントを初期化
client = db.Historical(key=os.getenv("DATABENTO_API_KEY"))
Binance の BTC-USDT 板情報を 2024年1月1日 1時間分だけ取得
data = client.timeseries.get_range(
dataset="BINANCE.SPOT",
symbols="BTCUSDT",
schema="mbp-10", # L2(10段板)スキーマ
start="2024-01-01T00:00:00Z",
end="2024-01-01T01:00:00Z",
)
DBN.ZST 形式でローカル保存(再解析が高速)
output_path = "btcusdt_mbp10_20240101.dbn.zst"
data.to_file(output_path)
DataFrame 化して中身を確認
df = data.to_df()
print(f"取得レコード数: {len(df):,}")
print(f"カラム一覧: {list(df.columns)[:8]}...")
print(df.head(3))
スクリーンショットのヒント:VS Code や PyCharm でこのファイルを step2_fetch.py として保存し、ターミナルで python step2_fetch.py を実行します。「取得レコード数: 36,000」のような数値が出れば成功です。
4-3. ステップ3:HolySheep AI と統合して板情報を解釈
取得した L2 データは数字の羅列なので、人間が一目で意味を理解するのは困難です。ここで HolySheep AI の DeepSeek V3.2 を呼び出し、板の構造を自然言語で要約させます。
import os
import databento as db
import requests
import pandas as pd
from dotenv import load_dotenv
load_dotenv()
--- Step A: Databento で L2 板情報を取得 ---
db_client = db.Historical(key=os.getenv("DATABENTO_API_KEY"))
data = db_client.timeseries.get_range(
dataset="BINANCE.SPOT",
symbols="BTCUSDT",
schema="mbp-10",
start="2024-01-01T00:00:00Z",
end="2024-01-01T00:10:00Z",
)
df = data.to_df().reset_index()
--- Step