本稿では、取引所(CEX)への資金流入、パーペチュアルのファンディングレート、USDT供給の変化という三つの観測変数を組み合わせ、ビットコイン(BTC)の短期リバーサル(過熱からの反転・売られ過ぎからの戻り)を狙う合成シグナルを構築します。初心者でも再現できるように、定義・データ取得・正規化・ルール化・検証・運用まで、順序立てて説明します。
1. 戦略の骨子:三因子で「行き過ぎ」を測る
市場が一方向に過熱すると、短期的には需給が偏り、反対方向に戻る力が働きやすくなります。本戦略はこの「行き過ぎ」を、以下の三因子で可視化して捉えます。
- CEX資金流入(Exchange Netflow):ネット入金が急増すると売り圧力が高まる仮説。逆にネット出金が続けば売り圧力の低下を示唆します。
- ファンディングレート(FR):先物の買い過熱は正のFRとして表れ、過度に高いときはショート・リバーサルを、過度に低い(負の)ときはロング・リバーサルを狙う根拠になります。
- USDT供給変化(ΔUSDT):USDT(等のステーブル)の流通量はリスク資産への潜在的な買付余力のProxyです。短期で急増する局面では押し目が浅くなりがち、縮小局面では戻りが鈍くなりがちです。
これらを同一スケール(標準化)に揃え、合成スコアとして一つの指標にまとめることで、売られ過ぎ・買われ過ぎ局面をスクリーニングします。
2. 指標の定義と取得の考え方
2-1. CEX資金流入
対象は主要CEXのビットコイン入出金フローのネット値です。定義は「取引所アドレスの受取額 − 送金額」。値がプラスに大きいほど入金過多=売り圧想定、マイナスに大きいほど出金過多=売り圧低下の示唆です。日次または4時間足で十分実用的です。
2-2. ファンディングレート
取引所毎に決済間隔が異なります(例:8時間毎や1時間毎)。直近24時間の加重平均をとり、年率換算の目安を出して過熱度を比較します。
年率目安 ≈ 直近24h平均FR × (24hの決済回数) × 365
たとえば8時間決済なら1日3回、1時間決済なら24回です。絶対値が大きいほど偏りが強いと解釈します。
2-3. USDT供給変化
日次の発行量変化(増減)や流通量のトレンドを使います。短期の増加が続くほど「ドライパウダー(買付余力)」が膨らむと解釈できます。逆に減少トレンドでは、上値追いが空振りになりやすいので慎重に扱います。
3. 標準化と合成スコア
三つの生データは単位・分布が異なるため、そのまま足し合わせるのは不適切です。ここではロバストなスケーリングとして中央値・MAD(Median Absolute Deviation)を用いたZスコア化を推奨します。
Z_i = (x_i − Median) / (1.4826 × MAD)
得られた3つのZスコアを以下のように合成します。
SCORE = w1 × Z_netflow + w2 × Z_FR − w3 × Z_ΔUSDT
- ネット入金急増(Z_netflow ≫ 0)=過熱売り圧→ショート寄りに働くので正号。
- FRの正の過熱(Z_FR ≫ 0)=ロング過多→ショート寄りに働くので正号。
- USDT供給の急増(Z_ΔUSDT ≫ 0)=買付余力増→下値を支えやすいので逆符号で減点。
初期値は等重み(w1=w2=w3=1)で構いません。のちに検証で最適化します。
4. 取引ルール(例)
以下は4時間足ベースの一例です。ご自身のスタイルに合わせて周期を調整してください。
- エントリー:SCOREが+2.0超で監視→次足始値でショート。SCOREが−2.0未満で監視→次足始値でロング。
- エグジット:SCOREが0に回帰、または固定利確(+1.5σ相当)・固定損切(−1.0σ相当)のどれか最初に達した条件。
- リスク管理:1トレードあたり口座の0.5〜1.0%を最大損失に設定。レバレッジは必要証拠金を抑えるための手段であって、リスク許容を超えるポジションサイズ拡大の口実にしないこと。
- フィルター:イベント前後(例:重要経済指標や半減期・大型アップグレード)は一時停止。また、ボラティリティが極端に低い時期は見送りを選択。
5. 検証の進め方
- サンプル期間:少なくとも2〜3年分のデータを対象にし、上昇・下落・レンジの各局面を含めます。
- 前処理:三因子の欠損補間、外れ値処理(MADで±5σをカットなど)。
- ロールリング正規化:各指標は直近N本(例:90本)のロール窓でMedian/MADを更新してZ化。
- ルール適用:SCOREの閾値で売買、スリッページ・手数料・資金調達コストを控えめに想定。
- 評価:累積損益、最大ドローダウン、Sharpe、勝率、平均損益比、連敗数、プロフィットファクターを算出。
- ロバスト性検証:閾値(±1.5〜±2.5)、窓長(60〜120)、重み(w)をメッシュで走らせ、過剰最適化に注意して広い範囲で崩れにくい設定を選びます。
6. 架空データでのケーススタディ
例として、ある週の4時間足で以下が観測されたとします。
- ネット入金が連続で+2σ付近。
- FRが年率換算で+60%相当。
- USDT供給が過去90本対比でやや減少。
この場合、SCOREは+2.5前後になりやすく、ショートでのリバーサル狙いが候補になります。反対に、ネット出金が強くFRがマイナス年率、USDT供給が増加トレンドであれば、ロング側のシグナルが点灯しやすくなります。
7. 実装のヒント
7-1. Googleスプレッドシート例
// 直近N本の中央値・MADでZ化する擬似式(概念)
// Z = (X - MEDIAN(過去N本)) / (1.4826 * MEDIAN(ABS(過去N本 - MEDIAN(過去N本))))
// SCORE = Z_netflow + Z_FR - Z_ΔUSDT
7-2. Python擬似コード
import pandas as pd
def z_mad(s, n=90):
roll = s.rolling(n)
med = roll.median()
mad = (s - med).abs().rolling(n).median()
return (s - med) / (1.4826 * mad)
df["z_nf"] = z_mad(df["netflow"])
df["z_fr"] = z_mad(df["funding"])
df["z_usdt"] = z_mad(df["delta_usdt"])
df["score"] = df["z_nf"] + df["z_fr"] - df["z_usdt"]
7-3. 運用オペレーション
- 毎朝(または4時間毎)にデータを更新し、SCOREの極値だけを監視。
- シグナル発生から次足始値で淡々と執行。裁量は「スリッページの最小化」に限定。
- 週次でKPIレポート(勝率・PF・最大DD・手数料/資金調達コスト比率)を確認し、ルール逸脱の有無を点検。
8. リスクと落とし穴
- イベントドリブンの破綻:大規模清算・テザー周辺のニュース・チェーン停止等では統計的関係が壊れます。
- データ歪み:取引所アドレスのラベリング誤差やブリッジ経由資金の混入でネットフローがノイジーになります。
- FRの非対称性:プラス過熱の方が頻出する市場では、ショート側に機会が偏る一方、上昇相場では踏み上げも発生しやすいです。
- 過剰最適化:パラメータを一点に合わせ込むと将来成績が劣化します。レンジで安定する設定を採用してください。
- 手数料・コスト:建玉回転が増えるとコストがパフォーマンスを侵食します。手数料率とFRを常に記録し、コスト比率をKPI化します。
9. ルール要約(運用チェックリスト)
- SCORE ≥ +2.0 → ショート候補(次足執行)。SCORE ≤ −2.0 → ロング候補。
- ExitはSCORE回帰 or 固定利確/損切の先着。
- 1トレード最大損失は口座の0.5〜1.0%。
- イベント前後は停止。極端な低ボラ時は見送り。
- 週次でKPIレビュー(PF≥1.2、最大DD≤資金の8〜12%等を目安に)。
10. まとめ
CEX資金流入・ファンディングレート・USDT供給の三因子を標準化して合成するだけで、過熱の可視化と規律ある逆張りが可能になります。重要なのは、データ処理の一貫性とリスク管理の徹底、そして検証でロバストなパラメータ帯を採用することです。裁量を減らし、淡々と継続できる仕組みに落とし込めば、再現性の高い短期戦略として機能しやすくなります。
コメント