TradeviewのPineコードでのスプレッド参照フィルターについて

「Pineコードでのスプレッド参照フィルター(TradingView)」は、
TradingViewという“本来スプレッドが見えにくい環境”で、
どうやってスプレッド概念を再現・代用し、フィルターとして使うか
という設計思想+実装テクニック
の話になります。

結論から言うと:

Pine Scriptでは「本物のスプレッド」を直接取得できないことが多い
→ だから“擬似スプレッド”を構築して使う

これが前提です。


目次

① TradingView × スプレッドの現実

できること/できないこと

❌ できない(多くの環境)

  • ブローカーの
    • 実Bid
    • 実Ask
    • リアルタイムスプレッド

⭕ できる

  • OHLCデータ
  • ティック近似
  • 複数シンボル参照
  • 時系列の相対変化

👉
Pineは“約定環境”ではなく
“価格構造”を扱う言語


② それでもスプレッドフィルターを作る理由

なぜ無理にやるのか?

  • EAの前段で
    **「危険時間を排除」**したい
  • フェイクブレイク・歪み検出を
    視覚化・事前検出したい
  • TradingViewで
    裁量判断の補助をしたい

👉
精密再現ではなく
「使える近似」が目的


③ スプレッド参照の3つの実装アプローチ


アプローチ①

高値−安値レンジ代用型(最もシンプル)

発想

  • スプレッドが広がると
    ローソクのヒゲ・瞬間レンジが不自然に広がる

擬似スプレッド

pseudo_spread = high - low

Pine例

ps = high - low
ps_ma = ta.median(ps, 20)
spread_ratio = ps / ps_ma

使い方

  • spread_ratio > 1.3 → 危険
  • spread_ratio < 0.8 → 安定

✔ 軽い
❌ 指標初動と区別が必要


アプローチ②

ティック密度・時間歪み型(上級)

発想

  • スプレッド拡大時は
    価格更新が飛び飛びになる

擬似指標

  • 1本あたりの
    • 実体
    • レンジ
    • 変化回数

Pine例(疑似)

range = high - low
body  = math.abs(close - open)
density = body / range
  • density が急低下
    → ティック歪み・スプレッド不安定

✔ フェイク検出向き
❌ 少し抽象的


アプローチ③

複数シンボル乖離型(最も実戦的)

発想

  • 同一通貨ペアでも
    提供元が違うと歪み方が違う
  • 歪みは
    乖離として観測できる

  • EURUSD(FXCM)
  • EURUSD(OANDA)

Pine例

p1 = request.security("FX:EURUSD", timeframe.period, close)
p2 = request.security("OANDA:EURUSD", timeframe.period, close)

diff = math.abs(p1 - p2)
diff_ma = ta.ema(diff, 20)
spread_ratio = diff / diff_ma

✔ 最もスプレッド挙動に近い
❌ シンボル依存


④ 動的フィルターとしての使い方

基本構造

trade_allowed = spread_ratio < 1.2

応用(3段階)

if spread_ratio < 0.8
    mode = "aggressive"
else if spread_ratio < 1.2
    mode = "normal"
else
    mode = "block"

👉
Pineでは「入る/入らない」だけで十分価値がある


⑤ トレンド vs スプレッド矛盾の組み合わせ

trend = ta.adx(14) > 25
spread_bad = spread_ratio > 1.3

contradiction = trend and spread_bad
  • contradiction == true
    → ブレイク狙い無効
    → フェード警戒

⑥ 時間帯フィルターと組み合わせる

hour = hour(time, "Asia/Tokyo")
liquid_time = hour >= 21 and hour <= 23

allow = liquid_time and spread_ratio < 1.2

👉
Pineは「時間×構造」の可視化が最強


⑦ よくある誤解(重要)

❌ Pineで実スプレッドが取れる
取れない前提で設計する

❌ EA並みの精度を求める
危険回避フィルターと割り切る


⑧ 向いている使い方

  • 裁量トレードの
    入らない判断
  • EAの
    事前監視
  • フェイクブレイク検出
  • 時間帯×歪み可視化

⑨ まとめ(本質)

  • Pineは
    スプレッドそのものではなく
    “歪みの影”を見る
  • 相対値で作る
  • フィルター用途に徹する

\ Tradeviewは業界最小スプレッドで取引手数料が安い! /

目次