ボリンジャーバンド重複ゾーン戦略 (Bollinger Bands Repetitive Zona Strategy) は,ボリンジャーバンドに基づいた定量的な取引戦略である.この戦略は,ボリンジャーバンドの上下帯間の価格範囲を使用して,市場の変動の範囲を決定し,潜在的なエントリーと出口点を特定する.
この戦略は主に以下の判断指標に基づいています.
Bollinger Middle Band: 単純な移動平均SMA,市場全体の傾向を表す.
ボリンガー上帯: 中間 + N × 標準偏差.上帯は市場の変動の上限を表します.
ボリンガー下帯: 中間 - N × 標準偏差.下帯は市場の変動の下限を表します.
閉じる価格が下鉄線より高く,開く価格が下鉄線より低くなった場合,それは潜在的底と潜在的なエントリーポイントとして判断されます.閉じる価格が上鉄線より高く,開く価格が上鉄線より低くなった場合,それは上鉄線上からの潜在的ブレイクシグナルとして判断され,また市場に参入することができます.
閉値が上線より低く,開値が上線より高くなった場合,ボリンジャー帯の上部に入ると判断され,出口を検討すべきである.閉値が開値より高く,上線と下線間の距離が中間線の2倍を超えると,波動性が増加したと判断され,出口も検討されるべきである.
ダブルレール判断の組み合わせは信号の正確性を向上させる.閉値と開値の組み合わせは,いくつかの誤った信号をフィルタリングすることができます.
変動幅は標準偏差に基づいて計算され,市場の変化に自動的に適応します.固定価格幅を手動で設定する必要はありません.
中間線の傾向判断と組み合わせて 傾向のない市場での繰り返しショックを回避します
傾向の逆転点を決定するためにミドルレールの突破を使用します. タイミングで潜在的な機会を把握することができます.
中期運用戦略は長期投資には適していません. 適時ストップ損失をするために市場状況を注意深く監視する必要があります.
ボリンジャー帯は一定の時間枠内でのみ有効です. パラメータの設定が正しくない場合,誤った信号が容易に発生します.
範囲限定市場では,中間線が大きく変動し,上下レールの相次ぐ起動がより頻繁になる可能性があります.この時点で,ポジションサイズを減らすか,一時的に取引を停止する必要があります.
長い時間サイクルに適応するためにパラメータを調整する.サイクル長さを増加させ,指数移動平均を使用するなどの方法は,ミドルレールアルゴリズムを最適化することができます.
偽の突破をさらに避けるため,ATRなどの変動指標を追加します.ATRのプリビルド値はフィルタリング条件として設定され,変動が一定の範囲を超えるとのみ取引信号が生成されます.
バリーフィルター効果を達成するために他の指標を組み合わせます.例えば,トランザクションボリューム判断ルールを追加します.トランザクションボリュームが拡大するときにのみ動作します.
ボリンジャー帯重複ゾーン戦略は,価格チャネルを潜在的な取引機会として定義するために,市場の潜在的な極端を自動的に識別する.中期価格逆転を捕捉するのに非常に適しており,トレンド追跡戦略を補完することができます.合理的な最適化によって,リスクを効果的に制御し,収益性を向上させることができます.
/*backtest start: 2023-02-13 00:00:00 end: 2024-02-19 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("BB Strategy", shorttitle="BB", overlay=true) length = input.int(55, minval=1) maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) src = input(close, title="Source") mult = input.float(1., minval=0.001, maxval=50, title="StdDev") ma(source, length, _type) => switch _type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) basis = ma(src, length, maType) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // Entry conditions enterCondition = (close > lower and open < lower and close > open) or (close > upper and open < upper and close > open) // Exit conditions exitCondition = (close < upper and open > upper) or (close > open and (upper - lower) > 2 * basis) or (close < lower) strategy.entry("Long", strategy.long, when=enterCondition) strategy.close("Long", when=exitCondition) // Plotting offset = input.int(0, "Offset", minval = -500, maxval = 500) plot(basis, "Basis", color=#FF6D00, offset = offset) p1 = plot(upper, "Upper", color=#2962FF, offset = offset) p2 = plot(lower, "Lower", color=#2962FF, offset = offset) fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))