ボリンジャーバンド反転トレンド戦略


作成日: 2023-12-07 16:08:05 最終変更日: 2023-12-07 16:08:05
コピー: 0 クリック数: 620
1
フォロー
1619
フォロワー

ボリンジャーバンド反転トレンド戦略

概要

この策略は,ブリン帯の上線,中線,下線と200日移動平均との関係によってトレンドの方向を判断する.多頭トレンドでは,価格がブリン帯の下線に触れたときに多行;空頭トレンドでは,価格がブリン帯の上線に触れたときに空行.

原則

  1. 判断トレンド:ブリンが軌道上と軌道下を同時に200日移動平均より大きいときは多頭トレンド;ブリンが軌道上と軌道下を同時に200日移動平均より小さいときは空頭トレンド
  2. 入場:多頭トレンドでは,価格がブリン帯下線に触れたときに多頭する.空頭トレンドでは,価格がブリン帯上線に触れたときに空頭する
  3. 出場:多頭持仓時,価格がブリン帯を軌道上または250日単行移動平均を下破したときの平仓;空頭持仓時,価格がブリン帯を軌道下または300日単行移動平均を下破したときの平仓

利点

  1. ブリン帯を使ってトレンドの方向を判断し,方向が明確でないときに重複取引を避ける
  2. トレンドの方向が明確であるとき,ブリン帯の波動範囲を利用して適切な入場と出場を判断する
  3. 意外な損失を避けるために,移動平均の補助判断を追加しました.

リスクと解決

  1. ブリン帯のパラメータが正しく設定されておらず,判断の誤りが生じます. 最適な周期長さを探すためにブリン帯のパラメータを調整する必要があります.
  2. 移動平均getParameter不適切,頻繁に停止または予想外の損失が発生する:異なるパラメータをテストして,最も安定したパラメータを見つける
  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")