ボリンジャー・バンドのブレイクアウト戦略

作者: リン・ハーンチャオチャン, 日付: 2024-02-20 15:53:12
タグ:

img

概要

ボリンジャーバンドのブレイクアウト戦略は,ボリンジャーバンド指標に基づいた単純な定量的な取引戦略である.この戦略は,ボリンジャーバンドの上下帯によって提供される動的なサポートとレジスタンスレベルを利用し,価格がバンドを突破するとロングポジションへのエントリールールを設定し,価格がバンドを突破すると退出ルールを設定し,価格動向にトレンドを伴う機会を把握することを目的としている.

戦略の論理

ボリンジャーバンド指標は,ジョン・ボリンジャーによって1980年代に開発された.これはn期間の移動平均値と,その上下を m × 標準偏差で構成される.移動平均値は中間点として作用し,標準偏差は変動を計測する.高い標準偏差値は変動の増加を示し,低い値は変動減少を示します.

この戦略の入場条件は: 閉じる価格がボリンジャーバンドの下位を下回るときにロングポジションを取ること. 閉じる価格がボリンジャーバンド上位を下回るときにショートポジションを取ること. 出口ルールは: 既存のロングポジションでは,閉じる価格が上位を下回るときに清算すること; 既存のショートポジションでは,閉じる価格が下位を下回るときにカバーすること.

これはトレンドフォロー戦略です.ボリンジャー帯の破裂によって示されたトレンド継続を捕捉することで,持続的な方向性価格動きから利益を得ることを目指します.

利点

  1. 固定価格の代わりにボリンジャー帯を動的サポート/レジスタンスレベルとして使用することで,戦略は市場の状況の変化に適応できます.

  2. 決定は価格レベルと変動条件の両方に基づいており,いくつかの誤った信号を避ける.

  3. 簡単に操作できます

  4. パラメータの柔軟な調整により 戦略は製品や市場に適応できます

リスク

  1. 指標のパラメータ調節が不十分である場合,取引が頻繁すぎたり,不要なコストが発生したりします.

  2. ブレイクシグナルは 持続的なトレンドではなく 短期的な価格変動かもしれません

  3. ストップロスの欠如は 戦略を制御不能な損失リスクにさらします

  4. 純粋に技術的なシステムでは 根本的な傾向の逆転が見えません

  5. 性能は調整なしに異なる製品によって異なります.

増進 の 機会

  1. パラメータを最適化して 頑丈性を高める

  2. 損失を制限するためにストップ・ロスの命令を組み込む.

  3. 意思決定を改善するために 多時間枠システムを構築する

  4. 偽信号を避けるために音量フィルターを追加します.

  5. より良い時間エントリとサイズポジションの基本を補完します

  6. 適応性をテストするために より多くの製品に対する戦略を評価します

概要

ボリンジャー帯のブレイクアウト戦略は,指標ベースのブレイクアウトによって示されるモメンタムを乗せて,シンプルなトレンドフォローアプローチを提供します.その強みはトレンド継続のダイナミックな識別にあります.適切なリスク制御と強度向上は,実行可能な体系的な戦略に改善することができます.


/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands Strategy", overlay=true)

length = input.int(20, title="Bollinger Bands Length", minval=1)
maType = input.string("SMA", title="Basis MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(2.0, title="StdDev Multiplier", minval=0.001, maxval=50)
offset = input.int(0, title="Offset", minval=-500, maxval=500)

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 + offset
lower = basis - dev - offset

// Define strategy entry and exit conditions
strategy.entry("Buy", strategy.long, when=close < lower)
strategy.close("Buy", when=close > upper)

strategy.entry("Sell", strategy.short, when=close > upper)
strategy.close("Sell", when=close < lower)

// Plotting the Bollinger Bands
plot(basis, color=color.blue, title="Basis")
plot(upper, color=color.red, title="Upper Band")
plot(lower, color=color.green, title="Lower Band")


もっと