【無料】SuperTrend×BB フィルター戦略 各種通貨で検証

スーパートレンドbb+さむね (1) FX手法

このページでは、以前海外で紹介されていた手法をもとに、トレーディングビュー用のオリジナルインジケーターを作って使いやすくしたものを紹介しています。

今回はSuperTrend(スーパートレンド)とボリンジャーバンドを組み合わせたシンプルなトレンドフォロー手法です。

SuperTrendとボリンジャーバンドの組み合わせ手法

SUPERTRENDBB

以前、海外のYouTubeで紹介されていた手法で、現在は動画が非公開になっています。

基本的なコンセプトはシンプルで、

  • SuperTrendでBUY/SELLのシグナルを取る
  • ボリンジャーバンドの中心線(SMA)でトレンド方向をフィルタリングする

という2ステップだけです。

 

SuperTrendは一般的なインジケーターで、ATR(真の値幅)をベースにしたトレンド追従型のラインを引いてくれます。価格がラインを上抜けたらBUY、下抜けたらSELLというシンプルな構造です。

ただ、SuperTrend単品だとレンジ相場でダマシにつかまることが多いです。

 

そこでボリンジャーバンドの中心線(SMA50)をフィルターとして使います。

SMAより上ならBUYシグナルだけ、SMAより下ならSELLシグナルだけを有効にする、という考え方ですね。

 

エントリールール

BUYの場合:

  • ローソク足がボリンジャーバンドの中心線(SMA)より上にある
  • SuperTrendが上昇に転換(BUYシグナル点灯)
  • そのままエントリー

SELLの場合はその逆です。

 

損切りはATRベースで自動設定、リスクリワードは1:1.5です。

SuperTrend BB Filter [STB] について

元の手法をベースに、バックテストもアラートも全部入りのオリジナルインジを作りました。

名前はSuperTrend BB Filter [STB]です。

 

設定項目

設定はグループごとにまとまっています。

 

SuperTrend

  • ATR期間:10(デフォルト)
  • 乗数:3.0(デフォルト)

乗数を上げるとラインが広くなってシグナルが減り、下げると逆に増えます。

 

ボリンジャーバンド

  • BB期間:50(デフォルト。SMAフィルターの期間にもなります)
  • BB乗数:2.0(デフォルト)

 

リスク管理

  • SLのATR倍率:1.5(デフォルト)
  • RR比率:1.5(デフォルト。SL幅の1.5倍をTPに設定)

 

チャートに貼ると、SuperTrendラインとボリンジャーバンドが表示されて、シグナル時に「BUY」「SELL」のラベルが出ます。

アラートについて

アラート条件は3つ用意しています。

  • BUY/SELL統合(1枠で両方拾える)
  • BUY単独
  • SELL単独

アラートメッセージには通貨名と時間足が自動で入るので、複数ペアに設定してもどの通貨のどの足かすぐわかります。

バックテスト結果

GOLD 5分足

STBGLD5分

短い足だと手数料負けが激しいですし、ダマシにもあって成績が全く良くありません。

1~4時間足も同じ感じ。

GOLD 1日足

STBGLD一日足

ただ、1日足みたいな大きな足になると結果は右肩上がりですね。

プロフィットファクターも1.4.

GOLD 一週間足

STBGLD週足

一週間足も結果は今のところプラスですね。プロフィットファクターも1.8。

かなり長い目で見ることになると思いますが、現状はいい結果といえるのではないでしょうか。

BTC 5分足

STBBTC5

短い足は他の通貨も関係なく成績が悪いですね。

BTC 1日足

STBBTC1日足

ビットコインはGOLDと違って可もなく不可もなく。ということは使えないということですね。

上下が大きいと結果もジグザグになるようです。

BTC 一週間足

STBBTC1週足

BTC一週間足はまだサンプルになるローソク足が少ないので、一応大きくプラスプではありますが、先が全く読めませんね。

そのほか人気通貨

他にも

  • EUR/USD
  • USD/JPY
  • GBP/USD
  • AUD/USD
  • USD/CAD

で調べましたが、

STBGBP1週間足

GBPの一週間足が唯一右上に向かっているかなという結果に。

何にしても大きな足前提ですね。

5分や、〇時間足はどれも結果が良くありませんでした。

Pine Scriptコード(無料・コピペOK)

Pine Script v6で書いたオリジナルコードです。バックテスト機能つきなので、TradingViewのStrategy Testerでそのまま検証できます。

トレーディングビューでも SuperTrend BB Filter [STB] という名前で無料公開しています。

ただ説明文が英語なので、日本語が良い方は下のコードで使ってください。

 

//@version=6
strategy("SuperTrend BB Strategy [STB]",
     overlay           = true,
     commission_type   = strategy.commission.percent,
     commission_value  = 0.05,
     default_qty_type  = strategy.fixed,
     default_qty_value = 1,
     initial_capital   = 100000)

// ─── SuperTrend設定 ──────────────────────────────────────────
st_atr  = input.int  (10,  "ATR期間",  minval=1,   group="SuperTrend")
st_mult = input.float(3.0, "乗数",     minval=0.1, step=0.1, group="SuperTrend")

// ─── ボリンジャーバンド設定 ──────────────────────────────────
bb_period = input.int  (50,  "BB期間(SMAフィルター)", minval=1,   group="ボリンジャーバンド")
bb_mult   = input.float(2.0, "BB乗数",                 minval=0.1, step=0.1, group="ボリンジャーバンド")

// ─── リスク管理 ──────────────────────────────────────────────
sl_atr_mult = input.float(1.5, "SLのATR倍率", minval=0.1, step=0.1, group="リスク管理")
rr_ratio    = input.float(1.5, "RR比率",      minval=0.1, step=0.1, group="リスク管理")

// ─── 計算 ────────────────────────────────────────────────────
[st_line, dir] = ta.supertrend(st_mult, st_atr)

bb_mid   = ta.sma(close, bb_period)
bb_dev   = ta.stdev(close, bb_period)
bb_upper = bb_mid + bb_mult * bb_dev
bb_lower = bb_mid - bb_mult * bb_dev

atr14    = ta.atr(14)

// ─── シグナル(確定足のみ) ──────────────────────────────────
st_up   = dir == -1 and dir[1] == 1
st_down = dir ==  1 and dir[1] == -1

buy_signal  = barstate.isconfirmed and st_up   and close > bb_mid
sell_signal = barstate.isconfirmed and st_down and close < bb_mid

// ─── エントリー・エグジット ──────────────────────────────────
if buy_signal and strategy.position_size == 0
    sl = close - atr14 * sl_atr_mult
    tp = close + (close - sl) * rr_ratio
    strategy.entry("Long",  strategy.long)
    strategy.exit ("Long Exit",  "Long",  stop=sl, limit=tp)

if sell_signal and strategy.position_size == 0
    sl = close + atr14 * sl_atr_mult
    tp = close - (sl - close) * rr_ratio
    strategy.entry("Short", strategy.short)
    strategy.exit ("Short Exit", "Short", stop=sl, limit=tp)

// ─── 表示 ────────────────────────────────────────────────────
plot(st_line, "SuperTrend", dir < 0 ? color.teal : color.red, linewidth=2)

p_upper = plot(bb_upper, "BB Upper", color.new(color.blue, 70), linewidth=1)
p_mid   = plot(bb_mid,   "BB Mid(SMAフィルター)", color.orange, linewidth=1)
p_lower = plot(bb_lower, "BB Lower", color.new(color.blue, 70), linewidth=1)
fill(p_upper, p_lower, color.new(color.blue, 90))

plotshape(buy_signal,  "BUY",  shape.labelup,   location.belowbar,
     color=color.new(color.teal, 0), text="BUY",  textcolor=color.white, size=size.small)
plotshape(sell_signal, "SELL", shape.labeldown, location.abovebar,
     color=color.new(color.red,  0), text="SELL", textcolor=color.white, size=size.small)

// ─── アラート ────────────────────────────────────────────────
alertcondition(buy_signal or sell_signal,
     title   = "STB BUY/SELL",
     message = "{{ticker}} {{interval}} | BUY/SELLシグナル発生")
alertcondition(buy_signal,
     title   = "STB BUY",
     message = "{{ticker}} {{interval}} | BUYシグナル")
alertcondition(sell_signal,
     title   = "STB SELL",
     message = "{{ticker}} {{interval}} | SELLシグナル")

 

コピーしてTradingViewのPineエディタに貼り付けるだけで使えます。

バックテスト結果と感じたこと

結果を見て一番強く感じたのは、足の大きさで明確に明暗が分かれるということです。

 

5分足や数時間足はどのペアも成績が悪く、手数料負けとダマシが重なってほぼ使い物になりませんでした。

人気の通貨では調べましたが、目的は人それぞれだと思うので、興味のある方は無料なので使ってみてください。

 

あくまで個人的な感想なので、まずはご自身でバックテストして感触を確かめてみてください。

 

※ 本インジケーターおよびバックテスト結果は情報提供を目的としたものであり、将来の利益を保証するものではありません。実際のトレードにおける損益についての責任は負いかねますので、ご自身の判断のもとでご利用ください。

コピペで使えるインジケーターについて

TradingViewへの追加の仕方がわからない方は

≫【画像で簡単】TradingViewオリジナルインジケーター追加方法

コチラの記事を参考にしてください。慣れると簡単ですよ。

 

もし「こんなインジケーターが欲しい」という希望があれば、コメント欄にどうぞ。

トレーディングビュー用限定になってしまいますが、可能な範囲で作りますのでお気軽に

投資についての免責事項

当ブログで紹介する情報は、あくまで個人的な見解や分析結果であり、投資を推奨するものではありません。実際の投資判断は、ご自身の責任において行っていただきますようお願いいたします。
詳しくは免責事項をご覧ください。

FX手法
シェアする
Shiroiをフォローする

コメント

タイトルとURLをコピーしました