統合脱退戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-31 15:08:46
タグ:

img

概要

この戦略は,価格が収縮期にあるかどうかを判断するためにボリンジャーバンド指標を使用し,入口と出口を決定するためにブレイクアウトを使用する.全体的に,この戦略は主に利益を得るために価格収縮によってもたらされる暴力的な動きを利用する.

戦略の論理

ストラテジーは,まず,閉値の20日間の単純な移動平均値をボリンジャー帯の中央帯として計算し,標準偏差を帯幅の2倍に計算する.上部帯の上の閉盤は上部帯のブレイクアウトを示し,下部帯の下の閉盤は下部帯のブレイクアウトを示します.

価格がボリンジャー帯の上位と下位の間にあるとき,それは統合期間とみなされます. ブレイクシグナルが検出されたとき,ロングに行く.価格が再び下位帯を下回ると,ポジションを閉じる.ショートに行くことは同様に機能します.

ストップロスはATRインジケーターの2倍に設定されます.

利点分析

この戦略の主な利点は以下の通りです.

  1. 価格調整によってもたらされる暴力的な動きを活用して 潜在的に巨額の利益を得ること
  2. ボリンジャー・バンド指標は直感的でパラメータを最適化するのが簡単です
  3. 主要なトレンドを踏まえ,上部を買わず下部を売る

リスク分析

リスクもあります:

  1. 破裂信号は誤った破裂で 損失を引き起こす可能性があります
  2. ストップロスの設定が幅が大きすぎて,大きな損失になる.
  3. ボリンジャー・バンドのパラメータが正しく設定されず,有効性が低下

対策:

  1. 誤差を検知するために音量フィルターを追加する
  2. 損失を制限するためにストップ損失範囲を最適化
  3. BBのパラメータをテストして,最適な値を見つけます.

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

戦略を改善する方法:

  1. 誤った信号を避けるために検出規則を統合するためにより多くの指標を追加します
  2. トレンド指向に基づいて長/短を決定するトレンドフィルターを追加する
  3. ストップ・ロスの方法を改善し,リスクをより良くコントロールする

結論

戦略は単純で直線的であり,統合中にエネルギー蓄積から利益を得ています.リスクを制御しながらより安定した利益を得るために,エントリールール,ストップ損失方法などに膨大な最適化空間があります.


/*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")



もっと