BBケルトナー・スクリーズ (BB Keltner Squeeze) トレーディング戦略は,ボリンジャーバンドとケルトナーチャネル間の圧縮を探してトレンド逆転を特定する.これは短期的なトレード戦略である.この戦略は,ボリンジャーバンドをベース指標とケルトナーチャネルとして使用し,シグナルを確認する.価格がボリンジャーバンドを突破すると,ケルトナーチャネルとの圧縮はトレンド逆転をシグナルする.
この戦略の基本原則は以下のとおりです.
ボリンジャー帯は価格の変動を測定する.価格が変動状態にあるかどうかを識別するために上,中,下帯があります.
Keltner Channels はボリンジャー信号を検証する. Keltner Channels は価格の変動も測定する.価格がボリンジャーバンドに近づくと,Keltner と圧縮すると波動性が高まり,潜在的逆転を意味する.
トレードシグナルは圧縮に基づいて生成される. ボリンガー上帯の上部のブレイクアウトで,ケルトナー信号の下部の狭窄はロング. ボリンガー下帯下部のブレイクアウトで,ケルトナー信号上部の狭窄はショート.
中央帯はトレンド方向を示します. 中央帯の上の価格が上昇傾向を示し,下の価格が下落傾向を示します.
入口と出口は中帯方向に基づいています.中帯方向の確認信号で圧縮で長/短;方向が転じた場合は平らします.
この戦略は,逆転点を特定するために,ボリンジャー帯とケルトナーチャネルを補完します.これは平均逆転取引戦略を例示しています.
この戦略の主な利点は以下の通りです.
2つのインジケーターを組み合わせることで,単一のインジケーターから誤った断裂を避けるため,信号の信頼性が向上します.
中央帯を用いて 明確なトレンドを識別します リアルタイムトレンドを直感的に追跡します
中間帯マッチに基づいた柔軟なエントリー/エグジット論理.トレンドに反して取引を避ける.
短期間の取引に適し 短期間のブレイクや圧縮を把握して 迅速な利益を得ます
直感的なビジュアルは圧縮,中間帯,MACDヒストグラムなどを強調します. 清潔なグラフィック表現.
シンプルな論理と構成可能なパラメータにより 簡単に導入できます
考慮すべき主なリスクは:
引き下げリスクは 伸びた動きによるものです 引き下げは 強いトレンドの間 失敗する取引の連続を 引き起こす可能性があります
失敗したブレイクリスク 初期ボリンジャーブレイクは短命の偽物かもしれない
パラメータの最適化リスク 帯やチャンネルを正しく調節しないと性能が低下します 厳格なテストが必要です
牛市リスク 長期上昇傾向で引き起こす過剰なショート 牛市期間の投資を避ける
高頻度取引リスク 短期性により,手数料やスライドによるコストが増加する可能性があります
指示器の故障リスク 極端な条件では信号が停止する可能性があります
ストップ損失,ポジションサイズ,パラメータ調整,そして堅牢な予期せぬ計画による リスクの積極的な管理が必要です
戦略を改善する方法は以下の通りです.
信号を強化するために追加指標を組み込み 勝利率を向上させます
ストップ・ロスのメカニズムを追加します トレイリング・ストップやATR・ストップなどです
厳格なテストを通じてバンドとチャンネルのパラメータを最適化します
市場状況とトレンド強度に基づいてポジションサイズを調整する.
パラメータ最適化,信号強化,適応のために機械学習を適用する.
強い方向性バイアスのとき,反トレンド取引を減らす.
ボリュームとモメントインジケーターを補完して 信号の多様性を強化します
継続的な改善によって 戦略は様々な市場で 堅牢で一貫した短期取引システムになることができます
BBケルトナー・スクリーズ戦略は,ボリンジャー帯とケルトナーチャネル間の圧縮を通じて価格逆転をキャピタライズする.高確率信号のための二重指標を組み合わせ,トレンド方向を測定するためにミドルバンドを使用し,絞り込みを通じて差し迫った逆転を特定する.この戦略は,頻繁な機会を求める短期トレーダーに適しています.しかし,引き下げ制御とパラメータチューニングは不可欠です.継続的な強化により,持続可能な短期取引戦略になる可能性があります.
/*backtest start: 2023-09-17 00:00:00 end: 2023-09-24 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("BB Keltner Squeeze Strategy", overlay=true, initial_capital=10000, currency='USD') length = input(title="Length", type=input.integer, defval=20, minval=0) src = input(close, title="Source") bband(length, mult) => sma(close, length) + mult * stdev(close, length) keltner(length, mult) => ema(close, length) + mult * ema(tr, length) //BB B2mult = input(2.0, minval=0.001, maxval=50, title="Band 1 StDev") B2basis = sma(src, length) B2dev = B2mult * stdev(src, length) B2upper = B2basis + B2dev B2lower = B2basis - B2dev plot(B2basis, color=color.blue) p1 = plot(B2upper, color=#00ffff, linewidth=2, title="Band 2SD upper") p2 = plot(B2lower, color=#00ffff, linewidth=2, title="Band 2SD lower") //Keltner useTrueRange = input(true) Kmult = input(1.5, title="Keltner Range") Kma = ema(src, length) Krange = useTrueRange ? tr : high - low Krangema = ema(Krange, length) Kupper = Kma + Krangema * Kmult Klower = Kma - Krangema * Kmult p5 = plot(Kupper, color=color.yellow, linewidth=2, style=plot.style_circles, title="Keltner upper") p6 = plot(Klower, color=color.yellow, linewidth=2, style=plot.style_circles, title="Keltner lower") e1 = (highest(high, length) + lowest(low, length)) / 2 + sma(close, length) osc = linreg(close - e1 / 2, length, 0) diff = bband(length, 2) - keltner(length, 1) osc_color = osc[1] < osc[0] ? osc[0] >= 0 ? #00ffff : #cc00cc : osc[0] >= 0 ? #009b9b : #ff9bff mid_color = diff >= 0 ? color.green : color.red fromYear = year > 2014 toYear = year < 2016 direction = 0 squeeze = Kupper > B2upper midc = 0 midc := squeeze ? 0 : close > B2basis ? 1 : 2 midcolor = midc == 0 ? #666666 : midc == 1 ? #00ff00 : #ff0000 direction := midc[1] plot(B2basis, color=midcolor, linewidth=4, title="BB Mid") bgcolor(midc == 0 ? #333333 : #000000, transp=75) if direction == 0 if midc[1] == 0 and midc == 1 strategy.entry("LONG", strategy.long) direction := 1 else if midc[1] == 0 and midc == 2 strategy.entry("SHORT", strategy.short) direction := 2 else if direction != midc strategy.close_all() direction := 0