資源の読み込みに... 荷物...

ボリンジャー・バンドス ブレイク量的な取引戦略

作者: リン・ハーンチャオチャン,日付: 2024-02-04 14:52:52
タグ:

img

概要

この戦略は,ボリンジャーバンドの上帯,中帯,下帯を計算し,Kラインの閉値を組み合わせてボリンジャーバンドのブレイクアウト取引戦略を実装する.価格は上帯を突破すると長になり,価格が下帯を突破すると短くなります.ストップ・ロストとテイク・プロフィート価格も設定されています.

戦略原則

  1. Bollinger Bands の 中間帯 SMA を 60 期で計算し,価格動向の中間帯を表します.

  2. ボリンジャー帯の上帯と下帯を計算する.上帯は中帯+2倍標準偏差,下帯は中帯-2倍標準偏差である.帯幅は倍数で制御される.

  3. 閉じる価格が上位帯より大きいとき,ロングに行く.閉じる価格が下位帯より低いとき,ショートに行く.

  4. ストップ・ロスト・メカニズムを設定します.ストップ・ロストの割合は1.5%で,プロフィートの割合は6%です.

  5. 価格がボリンジャー・バンドに戻り,ストップ・ロスト/テイク・プロフィート価格に達すると,閉じる.

利点分析

  1. ボリンジャー・バンドの指標は 突破によるトレンド判断の 強い能力を持っています

  2. シンプルな戦略論理 そして理解し実行しやすい

  3. 損失を止め 利益制御のリスクを冒します

リスク分析

  1. ボリンジャー・バンドのブレイクアウトは 価格トレンドの逆転点を 正確に判断できず 誤ったブレイクアウトのリスクがあります

  2. 不合理なストップ・ロストとテイク・プロフィートの設定は,より大きなリスクをもたらす可能性があります.

  3. 取引の頻度が高い場合,取引コストの影響を受けることがあります.

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

  1. 誤った信号をフィルタリングするために他の指標と組み合わせます.例えば,トレンドのKDJとディバージェンスのMACDです.

  2. 適正な帯幅を計算するために,市場の変動に基づいてボリンジャー帯のパラメータを動的に調整します.

  3. ストップ・ロスの戦略を最適化し,利益を取ること,例えば,ストップ・トレイルや部分的な閉鎖.

  4. トランザクションコストの影響を考慮し,保持期間を調整する.

結論

この戦略は,ボリンジャーバンドのブレイクアウトの傾向に従っており,いくつかのポジティブな効果があります.しかし,偽ブレイクアウトはより大きなリスクをもたらす可能性があります.他の指標と組み合わせ,パラメータを最適化し続けることで,リスクを制御し,収益性を向上させることができます.


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

//@version=5
strategy("Fuera Bolinga", overlay=true)

length = input.int(60, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)
take_profit_percentage = 6.0

basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev

stop_loss_percentage = 1.5

// Determinar si la vela cierra por fuera de las bandas
above_upper_band = close > upper
under_lower_band = close < lower

// Pintar las velas que cierran por fuera de las bandas
barcolor(above_upper_band ? color.new(#2cee32, 0) : na)
barcolor(under_lower_band ? color.new(#e02c2c, 0) : na)

// Entrada larga con stop loss y take profit
if (ta.crossover(close, upper))
    strategy.entry("BBandLE", strategy.long, oca_name="BollingerBands",  comment="BBandLE")
else
    strategy.cancel(id="BBandLE")

// Entrada corta con stop loss y take profit
if (ta.crossunder(close, lower))
    strategy.entry("BBandSE", strategy.short, oca_name="BollingerBands",comment="BBandSE")
else
    strategy.cancel(id="BBandSE")

//// Salida de operación larga
if ((ta.crossunder(close, upper) or ta.crossunder(close, lower)) and (strategy.opentrades != 0))
    strategy.close("BBandLE")

// Salida de operación corta
if ((ta.crossover(close, lower) or ta.crossover(close, upper)) and (strategy.opentrades != 0))
    strategy.close("BBandSE")
	
// Plot de las bandas de Bollinger
plot(upper, color=color.new(#2cee32, 0), title="Upper Bollinger Band")
plot(lower, color=color.new(#e02c2c, 0), title="Lower Bollinger Band")


もっと