ボリンジャー・バンドの逆転傾向戦略

作者: リン・ハーンチャオチャン開催日:2023年12月7日16時08分05秒
タグ:

img

概要

この戦略は,トレンド方向を決定するために,ボリンジャーバンドの上帯,中帯,下帯と200日移動平均の関係を使用します. 上向きのトレンド中に価格が下向きに触ると長値になり,下向きのトレンド中に価格が上向きに触ると短値になります.

原則

  1. トレンドを決定する.ボリンジャーバンドの上下両帯が200日間の移動平均以上である場合,上向きです.両帯が下向きである場合,下向きです.
  2. 入場: 上向きのトレンドで価格が下の帯に触るとロング. 下向きのトレンドで価格が上向きに触るとショート.
  3. エクジット: 価格が上位帯に触れたり,または250日間の単純な移動平均を下回ったときのロング・クローズポジション. 価格が下位帯に触れたり,または300日間の単純な移動平均を下回ったときのショート・クローズポジション.

利点

  1. 明確な方向性のない反復的な取引を避け,トレンド方向性を決定するためにボリンジャー帯を使用します.
  2. トレンド方向が明確であれば ボリンジャーバンドの波動性範囲に基づいて適切なエントリーと出口をします
  3. 移動平均値でフィルタリングを加え,予期せぬ損失を回避します

リスク と 解決策

  1. Bollinger Bands パラメータの設定が正しくない場合,判断が間違える.最適な期間の長さを見つけるためにパラメータを調整します.
  2. 不適切な移動平均パラメータが過剰な取引または望ましくない損失につながります.最も安定したパラメータを見つけるために異なるパラメータをテストします.
  3. 主要なニュースイベントによる急激な市場変化が異常を引き起こします.

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

  1. 最適なパラメータを見つけるため,異なるパラメータ期間における戦略のパフォーマンスをテストする.
  2. ストップ・ロスのメカニズムを追加して 不正な市場状況で大きな損失を回避します
  3. 他の指標を組み込み 勝利率を上げるため 入力シグナルを確認します

結論

この戦略は,まずボリンジャーバンドでトレンド方向を決定する.その後,ボリンジャーバンドの波動性範囲を移動平均値と組み合わせて,方向的正確性と適正な利益のロックを保証する取引システムを形成する. パーマータ選択とストップ損失のいくつかの問題がまだあり,最適化やメカニズム追加によりより良いパフォーマンスを達成するためにさらに改善することができます.


/*backtest
start: 2023-11-29 00:00:00
end: 2023-12-06 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Aayonga

//@version=5
strategy("boll trend", overlay=true,initial_capital=1000,default_qty_type=strategy.fixed, default_qty_value=1 )
bollL=input.int(20,minval=1,title = "length")
bollmult=input.float(2.3,minval=0,step=0.1,title = "mult")
basis=ta.ema(close,bollL)
dev=bollmult*ta.stdev(close,bollL)
upper=basis+dev

lower=basis-dev

smaL=input.int(200,minval=1,step=1,title = "trend")
sma=ta.sma(close,smaL)
//多头趋势
longT=upper>sma and basis>sma and lower>=sma
//空头趋势
shortT=upper<sma and basis<sma and lower<=sma

//入场位
longE=ta.crossover(close,lower)

shortE=ta.crossover(close,upper)

//出场位

longEXIT=ta.crossover(high,upper) or ta.crossunder(close,ta.sma(close,300))
shortEXIT=ta.crossunder(low,lower) or ta.crossover(close,ta.sma(close,250)) 

if longT and longE 
    strategy.entry("多long",strategy.long)

if longEXIT
    strategy.close("多long",comment = "close long")

if shortE and shortT 
    strategy.entry("空short",strategy.short)

if shortEXIT
    strategy.close("空short",comment = "close short")

もっと