この戦略は,価格が収縮期にあるかどうかを判断するためにボリンジャーバンド指標を使用し,入口と出口を決定するためにブレイクアウトを使用する.全体的に,この戦略は主に利益を得るために価格収縮によってもたらされる暴力的な動きを利用する.
ストラテジーは,まず,閉値の20日間の単純な移動平均値をボリンジャー帯の中央帯として計算し,標準偏差を帯幅の2倍に計算する.上部帯の上の閉盤は上部帯のブレイクアウトを示し,下部帯の下の閉盤は下部帯のブレイクアウトを示します.
価格がボリンジャー帯の上位と下位の間にあるとき,それは統合期間とみなされます. ブレイクシグナルが検出されたとき,ロングに行く.価格が再び下位帯を下回ると,ポジションを閉じる.ショートに行くことは同様に機能します.
ストップロスはATRインジケーターの2倍に設定されます.
この戦略の主な利点は以下の通りです.
リスクもあります:
対策:
戦略を改善する方法:
戦略は単純で直線的であり,統合中にエネルギー蓄積から利益を得ています.リスクを制御しながらより安定した利益を得るために,エントリールール,ストップ損失方法などに膨大な最適化空間があります.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Consolidation Breakout Strategy", shorttitle="CBS", overlay=true) // Parameters length = input(20, title="Bollinger Bands Length") mult = input(2.0, title="Bollinger Bands Multiplier") risk = input.float(1, title="Risk per Trade (%)") / 100 // Calculate Bollinger Bands basis = ta.sma(close, length) dev = mult * ta.stdev(close, length) upper = basis + dev lower = basis - dev // Entry Conditions consolidating = ta.crossover(close, upper) and ta.crossunder(close, lower) // Exit Conditions breakout = ta.crossover(close, upper) or ta.crossunder(close, lower) // Risk Management atrVal = ta.atr(14) stopLoss = atrVal * input.float(2, title="Stop Loss Multiplier", minval=0.1, maxval=5) // Entry and Exit Conditions longEntry = breakout and close > upper shortEntry = breakout and close < lower if (longEntry) strategy.entry("Long", strategy.long) if (shortEntry) strategy.entry("Short", strategy.short) if (longEntry and close < basis - stopLoss) strategy.close("Long Exit") if (shortEntry and close > basis + stopLoss) strategy.close("Short Exit") // Plot Entry and Exit Points plotshape(consolidating, style=shape.triangleup, location=location.belowbar, color=color.rgb(30, 255, 0), title="Entry Signal") plotshape(breakout, style=shape.triangledown, location=location.abovebar, color=color.rgb(255, 0, 0), title="Exit Signal")