モメント・ウェーブ ボリンガー・バンド トレンド戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-17 17:33:37
タグ:

img

概要

Bollinger Bands (ボリンジャーバンド) をベースとしたトレンドフォロー戦略である.Bollinger Bandsの上下帯を使用して価格傾向を決定し,買取・売却シグナルを生成する.具体的には,閉じる価格が上帯を超えるとロング,閉じる価格が下帯を超えるとショートする.

戦略の論理

この戦略はトレンドを決定するためにボリンジャーバンドの上下帯を使用する.ボリンジャーバンドの中間帯は,n期間の閉値の単純な移動平均である.バンドの幅は,n期間の閉値の標準偏差のk倍である.公式は:

中間帯:SMA (近) 上部帯:中部帯 + k * STDEV ((近部,n) 下帯: 中帯 - k * STDEV ((近,n)

価格が上部帯を超えると,価格は中部帯の周りの通常の変動範囲を超えており,上昇傾向を示します.価格が下部帯を下回ると,価格は正常範囲を超えて下落しており,下落傾向を示します.

戦略は,これに基づいて,次のことを決定します.

  1. 閉じる価格が上位帯を突破するとロングする.
  2. 閉じる価格が下帯を下回るとショート

中期から長期間のトレンドにはうまく機能します.

利点分析

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

  1. トレンドを決定するためにボリンジャーバンドを使用することは信頼性があります.ボリンジャーバンドは変動を考慮し,ターニングポイントをよく判断することができます.

  2. 戦略のルールは シンプルで明快で 分かりやすく 実行できます

  3. 価格とボリンジャー帯の関係を追跡するだけです 操作が簡単です

  4. 信号は帯間断で生成され 機会を逃さずに タイミングでトレンドシフトを捉えます

リスク分析

この戦略にはいくつかのリスクもあります:

  1. ボリンジャー・バンドは価格変動を完全に予測できない. 波紋の破裂後,トレンドは持続しない可能性があり,ウィップソーも可能である.

  2. 価格が波動し 複数の小さな損失を引き起こす可能性があります

  3. パラメータの設定が不十分である場合も,信号が不良になる可能性があります. n が小さすぎると,帯域が頻繁に変化し,信号が発信されることがあります. k が大きすぎると,信号が遅くなる可能性があります.

  4. 市場の動向は 個々の株に影響を与え,システムリスクを引き起こす可能性があります.

対応するリスク管理措置:

  1. nとkを適度に調整し,感度を均衡させる.
  2. シングルトレードで損失をコントロールするためにストップを使用します.
  3. シグナルをフィルターに他の指標のフィルターを追加します.

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

戦略はいくつかの方法で最適化できます.

  1. n を最適化し,異なる設定をテストします.また,k を変動性に基づいてダイナミックにします.

  2. MACDやKDJなどの他の指標を用いたフィルターを追加し,買い/売る信号をフィルタリングし,誤った信号を減らす.

  3. ストップ・ロスのメカニズムを追加します 例えば価格ベースや波動性ベースのストップです

  4. 価格変動を決定し,ポジションサイズを調整するためにボリンガー帯域幅を使用します.より広い帯域はより高い変動を示しますので,サイズを小さくします.

  5. トレンド決定指標と組み合わせ,既知のトレンドへのエントリー信号に帯を使用する.

概要

概してこれは信頼性の高いトレンドフォロー戦略である.トレンドを決定するためにボリンジャーバンドを使用し,操作が簡単である.主な利点は,トレンドの変化を把握するタイムリーな信号である.しかし,いくつかのウィップソーやパラメータ最適化困難があります.パラメータ最適化,フィルターを追加するなどの方法はリスクを制御し,安定性を向上させることができます.中程度のトレンド精度ニーズがあり,高い操作頻度を好む投資家に適しています.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Bollinger Bands Trend Strategy", shorttitle="BB Trend", overlay=true)
source = close
length = input(8, minval=1)
mult = input(1.00, minval=0.001, maxval=50)

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

upper = basis + dev
lower = basis - dev

buyEntry = crossover(source, upper)
sellEntry = crossunder(source, lower)

if (crossover(source, upper))
    strategy.entry("BBandLE", strategy.long, stop=upper, oca_name="BollingerBands",  comment="BBandLE")
else
    strategy.cancel(id="BBandLE")

if (crossunder(source, lower))
    strategy.entry("BBandSE", strategy.short, stop=lower, oca_name="BollingerBands", comment="BBandSE")
else
    strategy.cancel(id="BBandSE")

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)


もっと