BOT入門STEP 6 / 10
BOT入門 Step 3: バックテストの作成
データ整形から売買ロジック、可視化までをつなぎ、戦略の手応えを定量で確認します。
対象読者
思いついた戦略を数字で検証したい人
読むとできること
最低限のバックテストを組み、改善ポイントを見つけられる
前提知識
Notebook の操作に慣れていること
所要時間
12分
シリーズ進捗
BOT入門シリーズ
環境構築からバックテスト通りの実装まで、既存4ステップをそのまま使って進めます。
概念
バックテストは、過去データに戦略ルールを当てて、どの程度機能したかを確認する工程です。重要なのは「儲かるか」だけでなく、どこで崩れるかを見つけることです。
最初は複雑にしすぎず、データの準備、シグナル生成、損益計算、可視化の4段階に分けると把握しやすくなります。
実例
# データ準備
import pandas as pd
df = pd.read_csv('trades.csv')
df['timestamp'] = pd.to_datetime(df['timestamp'])
df = df.set_index('timestamp')
# シグナル生成
df['sma_short'] = df['price'].rolling(window=10).mean()
df['sma_long'] = df['price'].rolling(window=30).mean()
df['signal'] = 0
df.loc[df['sma_short'] > df['sma_long'], 'signal'] = 1
df.loc[df['sma_short'] < df['sma_long'], 'signal'] = -1
見るべき点
- 手数料とスリッページを抜かない
- 欠損値や期間偏りを見逃さない
- 損益だけでなくドローダウンも確認する
次の行動
JupyterLite 上でバックテストの流れを試す場合は、サンプルノートブックを利用できます。
- シグナルと損益カーブを一度最後まで出す
- 過学習や見落としを減らすため、結果をメモ付きで残す
- 次ページで、そのロジックを実運用コードへ移す考え方を確認する
次の行動