UWダマシ検知(Flow Validator)¶
概要¶
Flow Validator は、Unusual Whalesのフローが「攻め(Speculation)」なのか「守り(Hedge)」なのかを判別するモジュールです。
問題の背景
機関投資家が「現物買い+プット買い(プロテクティブ・プット)」のヘッジとして行うケースが多々あり、これをそのまま「弱気」と捉えると痛い目を見る。
Geminiからの提言¶
フローだけでは「ダマシ(大口のヘッジや誤情報のフロー)」に巻き込まれるリスクがあります。 Unusual Whalesで異常値を検知した後、即エントリーするのではなく、テクニカル条件を満たすまで待機するロジックを組み込むことを提案します。
判定基準¶
1. Ask/Bid Side判定¶
アグレッサー判定: 積極的な買いかどうかを判定
def is_aggressive_order(flow: OptionFlow) -> bool:
"""
Ask(売り板)を叩いて買っているか?
→ 急いで買いたい = 攻め
"""
return flow.side in ['ASK', 'ABOVE_ASK']
| Side | 意味 | 判定 |
|---|---|---|
ASK |
売り板で約定 | ✅ 攻め |
ABOVE_ASK |
売り板より高く約定 | ✅ 強い攻め |
BID |
買い板で約定 | ❌ 受動的 |
BELOW_BID |
買い板より安く約定 | ❌ 投げ売り |
2. Spot Confirmation(株価連動確認)¶
フロー発生後の株価変動を確認
def check_spot_confirmation(
flow: OptionFlow,
current_price: float,
threshold: float = 0.0005 # 0.05%
) -> bool:
"""
フロー発生からn分間の株価変動を確認
- Callフロー後に株価上昇 → 確認OK
- Callフロー後に株価下落 → ヘッジの可能性
"""
price_change = (current_price - flow.underlying_price) / flow.underlying_price
if flow.put_call == 'CALL':
return price_change > -threshold # 下落していない
else: # PUT
return price_change < threshold # 上昇していない
待機時間
Gemini推奨: 5〜15分が妥当。フロー発生時の現物価格を基準とし、5分後の価格が「フロー方向」に動いているかを確認。
3. Vol/OI比率(建玉変化推測)¶
新規ポジションか既存ポジションの決済かを推測
def estimate_oi_change(flow: OptionFlow) -> str:
"""
Vol/OI比率でOI変化を推測
- Vol/OI > 1.0 → 新規ポジション確実
- Vol/OI < 0.3 → 既存ポジションの決済可能性
"""
if flow.volume and flow.open_interest:
ratio = flow.volume / flow.open_interest
if ratio > 1.0:
return "OPENING" # 新規
elif ratio < 0.3:
return "CLOSING" # 決済
return "UNKNOWN"
4. GEX整合性チェック¶
GEXレジームとフロー方向の整合性
def check_gex_alignment(flow: OptionFlow, gex_data: dict) -> bool:
"""
GEXとフロー方向の整合性をチェック
- Put買いの場合、強力なPut Wall付近ならエントリー見送り
"""
if flow.put_call == 'PUT':
nearest_support = gex_data.get('major_negative_gamma_levels')
if nearest_support:
distance = abs(flow.underlying_price - nearest_support) / flow.underlying_price
if distance < 0.005: # サポートまで0.5%以内
return False # 突っ込み売り禁止
return True
総合判定ロジック¶
def validate_flow_quality(
flow: OptionFlow,
current_price: float,
gex_data: dict
) -> tuple[bool, str]:
"""
フロー品質を総合判定
Returns:
(is_valid, reason)
"""
# 1. プレミアムフィルター($50k未満は無視)
if flow.premium < 50000:
return False, "PREMIUM_TOO_SMALL"
# 2. アグレッサー判定
if not is_aggressive_order(flow):
return False, "PASSIVE_ORDER"
# 3. Spot Confirmation
if not check_spot_confirmation(flow, current_price):
return False, "SPOT_DIVERGENCE"
# 4. GEX整合性
if not check_gex_alignment(flow, gex_data):
return False, "GEX_CONFLICT"
return True, "VALIDATED"
ヘッジの典型パターン¶
カバードコール¶
判別法: OI(建玉)推移を確認 - OIが増加していない(Closing)→ 利確か損切り - OIが増加(Opening)→ 新規
プロテクティブ・プット¶
判別法: Spot Confirmation - Put買いフロー後に株価上昇 → ヘッジの可能性大
実装ファイル¶
core/flow_validator.py¶
class FlowValidator:
"""UWフロー品質検証エンジン"""
def __init__(self, config: FlowValidatorConfig = None):
self.config = config or FlowValidatorConfig()
self._flow_cache: Dict[str, List[OptionFlow]] = {}
def validate(
self,
flow: OptionFlow,
market_data: MarketSnapshot,
gex_data: GammaProfile
) -> FlowValidationResult:
"""フロー品質を検証"""
checks = []
# 1. プレミアムチェック
premium_ok = flow.premium >= self.config.min_premium
checks.append(("PREMIUM", premium_ok))
# 2. アグレッサーチェック
aggressive_ok = self._is_aggressive(flow)
checks.append(("AGGRESSIVE", aggressive_ok))
# 3. Spot Confirmation
spot_ok = self._check_spot(flow, market_data.price)
checks.append(("SPOT", spot_ok))
# 4. GEX整合性
gex_ok = self._check_gex(flow, gex_data)
checks.append(("GEX", gex_ok))
is_valid = all(ok for _, ok in checks)
return FlowValidationResult(
is_valid=is_valid,
checks=checks,
confidence=sum(1 for _, ok in checks if ok) / len(checks)
)
ダッシュボードでの表示¶
Filter Analyticsセクションでフロー検証結果を表示:
| 検証項目 | 通過率 | 説明 |
|---|---|---|
| PREMIUM | 85% | $50k以上のフロー |
| AGGRESSIVE | 72% | Ask Side約定 |
| SPOT | 68% | 株価連動確認 |
| GEX | 91% | GEX整合性 |
バックテストでの使用¶
# バックテストサマリーに追加される統計
{
"flow_validation_stats": {
"total_flows": 1250,
"validated": 456,
"rejected": 794,
"rejection_reasons": {
"PREMIUM_TOO_SMALL": 312,
"PASSIVE_ORDER": 245,
"SPOT_DIVERGENCE": 187,
"GEX_CONFLICT": 50
}
}
}
ログ出力例¶
[TSLA] フロー検証:
プレミアム: $125,000 ✅
Side: ABOVE_ASK ✅
Spot Confirmation: +0.12% ✅
GEX整合性: ✅
結果: VALIDATED (信頼度: 100%)
関連ファイル¶
| ファイル | 役割 |
|---|---|
core/flow_validator.py |
フロー検証エンジン |
core/unusual_whales.py |
UW APIクライアント |
core/scanner.py |
DynamicScanner統合 |
scripts/run_paper_trading.py |
ペーパートレード統合 |
更新履歴¶
| 日付 | 変更内容 |
|---|---|
| 2025-11-29 | Gemini分析に基づき実装 |
| 2025-11-29 | プレミアムフィルター追加($50k) |
| 2025-11-29 | Spot Confirmation閾値調整(0.1% → 0.05%) |