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

Bollinger Bands Trend Divergence に基づいた多レベル量的な取引戦略

作者: リン・ハーンチャオチャン開催日:2024年12月27日 15:52:41
タグ:BBエイマSMAstdevBBDIVトレンド

img

概要

この戦略は,ボリンジャーバンドのトレンドディバージェンスと動的帯域幅変化に基づいた多レベル量的な取引システムである.この戦略は,ボリンジャーバンドの幅ダイナミクス,価格ブレイクアウト,EMA200の調整をモニタリングすることによって完全な取引決定枠組みを構築する.適応性波動性追跡メカニズムを使用して,市場のトレンドターニングポイントを効果的に把握する.

戦略の原則

戦略は次の主要な要素に基づいています.

  1. 20 期間の移動平均値と 2 つの標準偏差を用いたボリンジャー帯の計算
  2. 連続した3つの時間点における帯域幅の変化によるトレンド強さの決定
  3. カンデルのボディと帯域幅の比率を用いたブレークアウト検証
  4. 中長期トレンドフィルターとして EMA200
  5. 価格が帯域幅拡大条件で上位帯を超えると長引入
  6. 価格が帯域幅が縮小する低帯域を下回る場合の退出

戦略 の 利点

  1. 潜在的トレンドターニングポイントを識別する前向き信号システム
  2. 複数の技術指標のクロスバリダーションは,誤った信号を減らす
  3. 帯域幅変化率指標は市場の変動に適しています
  4. 明確なエントリーと出口論理,プログラミングで実装しやすい
  5. 総合的なリスク管理メカニズムは,引き上げを効果的に制御します

戦略リスク

  1. 異なる市場で頻繁な取引を生む可能性があります
  2. 突発的な動向変化による潜在的な遅延
  3. パラメータの最適化には 過適性リスクがあります
  4. 市場波動性の高い時期における滑りリスク
  5. 帯域幅指標の有効性を常に監視する必要があります

戦略の最適化方向

  1. 適応性パラメータ最適化メカニズムを導入する
  2. 検証のための容量および他の補助指標を追加する
  3. ストップ・ロストとテイク・プロフィートの条件を最適化
  4. 傾向強さの評価のための定量基準の改善
  5. 追加的な市場環境フィルターを組み込む

概要

この戦略は,ボリンジャーバンドのトレンドディバージェンスとダイナミックな帯域幅変化を通じて堅牢な取引システムを構築する.トレンド市場では優れたパフォーマンスを発揮しているが,市場範囲とパラメータ最適化には改善が必要である.全体的に,この戦略は良い実用的な価値と拡大の余地を示している.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("BBDIV_Strategy", overlay=true)

// Inputs for Bollinger Bands
length = input.int(20, title="BB Length")
mult = input.float(2.0, title="BB Multiplier")

// Calculate Bollinger Bands
basis = ta.sma(close, length)
deviation = mult * ta.stdev(close, length)
upperBB = basis + deviation
lowerBB = basis - deviation

// Calculate Bollinger Band width
bb_width = upperBB - lowerBB
prev_width = ta.valuewhen(not na(bb_width[1]), bb_width[1], 0)
prev_prev_width = ta.valuewhen(not na(bb_width[2]), bb_width[2], 0)

// Determine BB state
bb_state = bb_width > prev_width and prev_width > prev_prev_width ? 1 : bb_width < prev_width and prev_width < prev_prev_width ? -1 : 0

// Assign colors based on BB state
bb_color = bb_state == 1 ? color.green : bb_state == -1 ? color.red : color.gray

// Highlight candles closed outside BB
candle_size = high - low
highlight_color = (candle_size > bb_width / 2 and close > upperBB) ? color.new(color.green, 50) : (candle_size > bb_width / 2 and close < lowerBB) ? color.new(color.red, 50) : na

bgcolor(highlight_color, title="Highlight Candles")

// Plot Bollinger Bands
plot(upperBB, title="Upper BB", color=bb_color, linewidth=2, style=plot.style_line)
plot(lowerBB, title="Lower BB", color=bb_color, linewidth=2, style=plot.style_line)
plot(basis, title="Middle BB", color=color.blue, linewidth=1, style=plot.style_line)

// Calculate EMA 200
ema200 = ta.ema(close, 200)

// Plot EMA 200
plot(ema200, title="EMA 200", color=color.orange, linewidth=2, style=plot.style_line)

// Strategy logic
enter_long = highlight_color == color.new(color.green, 50)
exit_long = highlight_color == color.new(color.red, 50)

if (enter_long)
    strategy.entry("Buy", strategy.long)

if (exit_long)
    strategy.close("Buy")

// Display profit at close
if (exit_long)
    var float entry_price = na
    var float close_price = na
    var float profit = na

    if (strategy.opentrades > 0)
        entry_price := strategy.opentrades.entry_price(strategy.opentrades - 1)
        close_price := close
        profit := (close_price - entry_price) * 100 / entry_price * 2 * 10 // Assuming 1 pip = 0.01 for XAUUSD
        label.new(bar_index, high + (candle_size * 2), str.tostring(profit, format.mintick) + " USD", style=label.style_label_up, color=color.green)


関連性

もっと