市場センチメントの使い方

先物プレミアムの計算方法を理解し、よくある二つの読み違いを避け、戦略に組み込む。

最終更新 2026-09
要点まとめ
  • 市場センチメント(MS)は、Binance USDT 建て無期限先物の終値から Binance インデックス価格を引いた価格差に 1 日ローリング中央値を取り、その銘柄の直近 30 日に対する z スコアにしたものです。
  • 計算しているのは USDT 建ての絶対的な価格差で、パーセントではありません。30 日以内に価格が 2 倍になれば、同じ比率のプレミアムでも USDT では 2 倍になり、値が押し上げられます。
  • 高い・低いはその銘柄の直近 30 日との比較です。プレミアムが長く続く銘柄は値が 0 付近に戻るため、0 はプレミアムがないという意味ではなく、マイナスでもディスカウントとは限りません。
  • 先に 1 日の中央値を取るため、日単位のゆっくりしたシグナルです。現在、市場センチメントを使う公式戦略はなく、本記事の使い方はすべて例示でバックテストしていません。

先物が現物より高ければ、市場は楽観的なのでしょうか。市場センチメントは Binance 無期限先物がインデックス価格をどれだけ上回っているかを見ますが、使うのは USDT 建ての価格差で、比較対象はその銘柄自身の直近 30 日だけです。この二点が最も読み違えやすいポイントです。

市場センチメントとは?

市場センチメント(Market Sentiment、MS)は Blave の先物プレミアム指標です。Binance USDT 建て無期限先物と Binance インデックス価格の終値の差を、その銘柄の直近 30 日に対する z スコアに換算します。インデックス価格は Binance が複数取引所の現物価格を加重して算出したもので、単一取引所の現物価格ではありません。計算は三段階です。

ステップ計算内容
1. 価格差5 分ごとに、無期限先物の終値からインデックス価格の終値を引きます。単位は USDT。0 より大きければプレミアム、小さければディスカウントです。
2. 平滑化価格差に 1 日ローリングの中央値を取り、短時間の跳ねを取り除きます。
3. 標準化直近 30 日の平均と標準偏差で z スコアに換算し、最終的な値にします。

z スコアなので値に上限・下限はなく、銘柄同士を同じ物差しで比べられます。プラスは価格差が直近 30 日の平常時より大きい、つまり買い方が先物でより高い価格でも参入していることを示します。データに参加者数やポジションは含まれません。Studio の状態バッジは次のしきい値で分類します。

値Studio のバッジ意味
≥ +3過度に楽観価格差が直近 30 日の平常時を大きく上回る極端な値
+2 ~ +3高度に楽観価格差が平常時を明確に上回る
+0.5 ~ +2楽観価格差が平常時を上回る
−0.5 ~ +0.5中立直近 30 日の平常時とほぼ同じ
≤ −0.5悲観/高度に悲観/過度に悲観プラス側と対称で、しきい値は −0.5、−2、−3。価格差が平常時を下回り、先物がインデックスに対して弱い

最も重要な二点:USDT 建ての価格差で、比較相手は自分自身

計算するのは USDT 建ての絶対的な価格差で、パーセントではない

市場センチメントの材料は「先物価格 − インデックス価格」の USDT 建ての差額で、計算の途中で価格による割り算はしていません。そのためプレミアム率が変わらなければ、同じ銘柄の価格が上がるほど USDT 建ての価格差は大きくなります。銘柄どうしでは、それぞれ自分自身を基準に標準化するため、価格水準の高低は影響しません。

仮の例で考えます。ある銘柄が 30 日前に約 1 USDT で、先物がインデックスより 0.001 USDT 高い(プレミアム 0.1%)とします。その後価格が 2 USDT に上がり、プレミアムは同じ 0.1% でも、価格差は 0.002 USDT になります。プレミアム率はまったく変わっていないのに、価格差が直近 30 日の平均を上回るため、市場センチメントは押し上げられます。30 日以内に価格が大きく下がった場合は逆に押し下げられます。

高い・低いは直近 30 日との比較で、絶対水準ではない

z スコアが比べるのは、その銘柄自身の直近 30 日の平均です。先物がインデックスをほぼ同じ幅で上回る状態が 2 か月続いた銘柄は、平均が引き上げられて市場センチメントは 0 付近に戻ります。このときの 0 は「直近 30 日と同程度」という意味で、「プレミアムがない」という意味ではありません。

逆に、大きなプレミアムから小さなプレミアムに縮んだ銘柄は、価格差が直近 30 日の平均を下回って値がマイナスになることがありますが、先物は依然としてインデックスより高い状態です。同じ +2 でも、銘柄や月が違えば実際の価格差は大きく異なり得ます。

値を読む前に二つ確認してください。その銘柄の価格は直近 30 日で大きく動いたか(USDT 建ての価格差を拡大・縮小させる)。長くプレミアムやディスカウントの状態が続いていないか(平均を押し上げ・押し下げる)。どちらの答えでも、同じ数値の意味が変わります。

市場センチメントで戦略をどう作る?

現在、市場センチメントを使う公式戦略はないため、以下の三つの使い方はすべて例示で、バックテストしていません。コード中の ±0.5 と 3 は Studio のバッジのしきい値を出発点として借りたもので、パラメータスキャンの結果ではありません。実際に使う前に必ず自分でバックテストしてください。

1. しきい値+バッファ:価格差が大きい間は保有

最も素直な書き方です。市場センチメントがエントリーのしきい値を上回ったらロング、エグジットのしきい値を下回ったらノーポジションにします。二つのしきい値の間にバッファを置くことで、値が一つの水準付近を行き来するときの頻繁な売買を防ぎます。

ENTRY_TH = 0.5    # 例示:「楽観」バッジのしきい値を借用
EXIT_TH  = -0.5   # 例示:「悲観」バッジのしきい値を借用

def compute_signals(df, entry_th=ENTRY_TH, exit_th=EXIT_TH):
    # df['MS'] = その銘柄の市場センチメントの値
    signal = pd.Series(np.nan, index=df.index)
    signal[df['MS'] > entry_th] = 1.0   # 価格差が平常時より大きい → ロング
    signal[df['MS'] < exit_th]  = 0.0   # 価格差が平常時より小さい → ノーポジション
    return signal

値はすでに 1 日の中央値なので、このシグナルは日単位の価格差の変化に沿って動き、数分以内の価格の跳ねには反応しません。バックテストはしていないため、しきい値と方向(順張りか逆張りか)は自分でスキャンして検証してください。

2. 極端値をリスク管理に:過度に楽観・過度に悲観のときは新規エントリーを見送る

値が ±3 に達するのは、価格差が直近 30 日と比べて非常に極端だということです。控えめな使い方として、これをエントリーシグナルにはせず、既存戦略のエントリー条件に加えて、極端なときは新規ポジションを見送る方法があります。

# 例示:|MS| ≥ 3(過度に楽観または過度に悲観)のときはエントリーしない
too_hot = df['MS'].abs() >= 3
entry = compute_entry(df) & ~too_hot

これは反転シグナルではなく、バックテストもしていません。Blave は ±3 の後に価格が反転することも、極端値を避けると成績が改善することも検証していません。ここでは「価格差がすでに極端」という状態を、新規エントリーを一時停止する条件として使うだけです。±3 は直近 30 日との相対値なので、価格差が長く安定している銘柄では小さな変動でも ±3 に達します。compute_entry は既存戦略のエントリー条件に置き換えてください。

3. フィルター:遅い市場センチメントで方向、速い指標でタイミング

市場センチメントは日単位の遅いシグナルなので、背景のフィルターに向いています。値が 0 より大きいときだけ、短い窓の指標(例えばテイカー強度)が出したロングシグナルを採用し、市場センチメントが 0 以下に戻ったらノーポジションにします。以下は構造の例示で、compute_fast_entry は自分の条件に置き換えてください。

ms = fetch_market_sentiment(SYMBOL, INTERVAL, START, END, hdrs)
df['MS'] = ms['alpha']
regime_long = df['MS'] > 0              # 例示:価格差が直近 30 日の平均を上回るときだけロング
fast_entry = compute_fast_entry(df)     # 例:短い窓のテイカー強度の条件
signal = pd.Series(np.nan, index=df.index)
signal[regime_long & fast_entry] = 1.0
signal[~regime_long] = 0.0

この組み合わせはバックテストしておらず、しきい値 0 は例示にすぎません。実際に使う前にパラメータをスキャンし、手数料控除後の成績を確認してください。

足の期間はどう選ぶ?

市場センチメントの設定は足の期間(period)だけで、5min、15min、1h、4h、8h、1d から選べ、最短は 5 分です。ホエールハンターのような集計窓のパラメータはありません。どの期間を選んでも値は 1 日の中央値を取った後の結果なので、期間が決めるのは値を読む頻度だけで、土台にある 1 日中央値の平滑化がなくなるわけではありません。

期間Studio の既定表示範囲注意
5min / 15min5min:3 日、15min:7 日最も細かく描かれるが、見えるのは日単位で平滑化された変化。短期のタイミング取りには向かない
1h / 4h1h:14 日、4h:30 日数時間ごとにチェックする戦略向け
8h / 1d8h:60 日、1d:180 日ある程度の期間のセンチメントの流れを見るのに向く

期間は戦略がどれくらいの頻度でチェックするかで選び、短い期間なら短期の値動きを捉えられると期待しないでください。データは 2020-01-01 から(後から上場した銘柄は上場日から)です。z スコアには 30 日分のサンプルが必要なので、意味のある値はおおよそ 2020-01-31 から始まり、新規上場銘柄の最初の 30 日も同じです。

Studio ではどこで見る?

ページ表示内容
概要全体センチメントの半円メーター(全銘柄の市場センチメントを未決済建玉の金額(USDT 建て)で加重平均した値)と、楽観・悲観の二つのランキング。列は銘柄、24 時間騰落率、指数、状態です。
セクターセクター別の市場センチメントのランキング。セクターの値は、そのセクター内の銘柄を未決済建玉の金額で加重平均したものです。
履歴単一銘柄の市場センチメントの棒グラフを価格に重ねて表示し、5min~1d の期間を選べ、stat 欄も付きます。Pro 以外のユーザーは直近 7 日分のデータが遅れて表示されます。

どの指標と組み合わせる?

以下は組み合わせの考え方で、検証済みの結論ではありません。

組み合わせ目的
MS + ホエールハンター価格差が広がったとき、ホエールハンターで未決済建玉が同時に異常に増えているかを確認し、プレミアムの裏に新規ポジションがあるかの判断材料にします。
MS + テイカー強度市場センチメントは反応が遅いため、テイカー強度で短い窓の積極的な売買を見て、見えない短期の動きを補います。

API や Blave Agent でデータを取るときの注意点は?

API エンドポイントは GET /market_sentiment/get_alpha で、パラメータは symbol、period と開始・終了日(start_date、end_date)です。Blave Agent では fetch_market_sentiment が対応します。対象は Binance USDT 建て無期限先物のみで、他の取引所は含みません。返されるのは確定済みの足だけで、項目は timestamp、alpha、stat で価格は含みません。開始日を指定しなければ直近 365 日、365 日を超える期間は自動で切り詰められます。

stat オブジェクトは最新の値を説明しますが、名前と中身は完全には一致しません。

項目実際の計算
up_prob直近 365 日のデータで学習したロジスティック回帰モデルが、市場センチメントから 24 時間後の上昇・下落を予測し、上昇する確率を出したもの。学習データに現在の期間が含まれるため、サンプル内の推定値であり、サンプル外の勝率ではありません。
avg_up_return /
avg_down_return
直近 365 日で「24 時間後に上昇/下落」したすべての時点の平均リターン。市場センチメントの水準は区別しません。
exp_valueup_prob × avg_up_return +(1 − up_prob)× avg_down_return。小数であり、パーセントではありません。
is_data_sufficientその銘柄のデータが 365 日より前から存在するかどうか。「この水準のサンプルが十分か」ではありません。
忘れないでください:市場センチメントは参考データであり、売買シグナルではありません。対象は Binance のみ、計算するのはパーセントではなく USDT 建ての価格差、「高い・低い」は直近 30 日との比較で、stat もサンプル内の推定です。どのしきい値も自分のバックテストで検証してください。