ボリンジャー・モメンタム・ブレイクアウト戦略

作者: リン・ハーンチャオチャン, 日付: 2023-12-22 13:09:32
タグ:

img

概要

この戦略は,ボリンジャーバンドを活用し,RSIインジケーターを組み合わせて市場トレンド方向を決定し,ブイシシグナルをフィルタリングし,上昇を追いかけて落下を阻止するモメンタム・ブレイクアウト操作を実施する.基本的な考え方は,価格がボリンジャー上部バンドを突破すると,ロング;価格がボリンジャー下部バンドを突破すると,ショート.

戦略原則

  1. ボリンジャーバンド指標が上帯を通過する価格ブレイクを決定すると,市場は上昇傾向に入ることを示します.この時点で,フィルタリングのためにRSI指標を使用します.RSIが60を超えると購入信号を生成します.BB指標が下帯を通過する価格ブレイクを決定すると,市場は下降傾向に入ることを示します.この時点で,フィルタリングのためにRSI指標を使用します.RSIが40未満の場合,販売信号を生成します.

  2. 市場に入るとストップロスを設定し,さらなる損失を回避します.

  3. 出口基準は,価格がBBの中央帯を下回るとロングポジションを閉じるし,価格がBB中央帯を下回るとショートポジションを閉じる.

利点分析

  1. ボリンジャー・バンド指標は,主要市場傾向を決定し,転換点を捕捉することができます. RSIフィルターと組み合わせると,信号の信頼性が向上します.

  2. 追いかけるのは高額で 倒れるのは低額です

  3. ストップ・ロスを設定することで リスクを制御できます

リスク分析

  1. BB指標は,誤った信号を生む可能性のある横向市場を判断するのに有効ではありません.

  2. 誤ったストップ損失設定によりさらなる損失が発生する可能性があります.

  3. 高い取引頻度は,取引コストとスリップによって影響されます.

  4. ブレイクシグナルを タイムリーに更新する必要があります さもないと 最良のエントリー機会が 逃れられることがあります

オプティマイゼーションの方向性

  1. BBブレイクシグナルの信頼性を判断するために,ボリューム,移動平均等などの他の指標と組み合わせます.

  2. BBパラメータを動的に調整し,インジケーターのパフォーマンスを最適化します.

  3. ストップ・ロスのポジションを最適化します.例えば,ストップ・ロスの後退や ストップ・ロスの割合などで,不要な損失を減らす.

概要

この戦略は,市場動向をBBを通じて決定し,モメントトレンドを追求するためにRSIをフィルタリングしたシグナルを使用する明確な論理を持っています.高運用頻度,急速な利益/損失サイクル,過剰なリターンを追求するトレーダーにより適しています.しかし,高取引頻度は取引コストも増加し,厳格な資本管理と感情制御が必要です.パラメータ最適化とストップ損失最適化によってさらなるパフォーマンスと安定性の向上を達成することができます.


/*backtest
start: 2023-11-21 00:00:00
end: 2023-12-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=4
strategy(title="Bollinger Band Breakout", shorttitle = "BB-Stoxguru",default_qty_type = strategy.percent_of_equity,default_qty_value = 100, overlay=true)
source = close
start = timestamp (2007, 1,1,0,0) 
end = timestamp (2021,11,05,0,0)
stop_level = (high[1]-low[1])
profit_level = (high[1]-low[1])
length = input(20, minval=1, title = "Period") //Length of the Bollinger Band 
mult = input(2, minval=0.001, maxval=50, title = "Standard Deviation") 

basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev
band=upper-lower
stop_loss=low-atr(14)
if time >= start 
// and time < end
    strategy.entry("Long", strategy.long, when = crossover(source, upper) and rsi(close,14)>=60 and rsi(close,14)<=70)
    // strategy.entry("Long", strategy.long, when = crossover(source, upper) and rsi(close,14)>60 and band<200)
    // strategy.exit("SL", "Long", stop=stop_loss)
    strategy.close(id="Long", when=crossunder(close, basis))
    strategy.entry("Short", strategy.short, when = crossunder(source, lower) and rsi(close,14)<=40 and rsi(close,14)>=35)
    strategy.close(id="Short", when=crossover(close, basis))
    // strategy.entry("Short", strategy.short, when = crossunder(source, lower) and rsi(close,14)<40 and band<200)
    // plot(upper-lower, color=color.purple,title= "DIFF",style=plot.style_linebr)
plot(basis, color=color.red,title= "SMA")
p1 = plot(upper, color=color.blue,title= "UB")
p2 = plot(lower, color=color.blue,title= "LB")
// fill(p1, p2)
BW = ((upper - lower)) / basis * 100

plot(BW, title="Bollinger bandwidth", color=color.red)


もっと