ボリンジャーバンドトレンドスイングトレード戦略


作成日: 2023-11-23 10:48:58 最終変更日: 2023-11-23 10:57:10
コピー: 3 クリック数: 551
1
フォロー
1617
フォロワー

ボリンジャーバンドトレンドスイングトレード戦略

概要

この戦略は,ブリン帯の指標に基づいて市場のトレンド方向を判断し,トレンド方向の転換時に逆操作を行います.多頭市場では,価格がブリン帯を下回ったときに多行し,空頭市場では,価格がブリン帯を突破したときに空行します.同時に,戦略は,移動平均線を長期的なトレンドの判断基準として設定し,戦略をより安定させます.

戦略原則

この策略は,ブリン帯の中軌,上軌,下軌を用い,市場トレンドの方向を判断する.ブリン帯中軌はn周期の指数移動平均で,ブリン帯上軌と下軌は,それぞれ中軌+2.3倍標準差と中軌-2.3倍標準差である.価格が下軌を突破するときは,現在多頭市場にあることを示し,価格が上軌を突破する時は,現在空頭市場にあることを示している.

さらに,戦略は,長期のトレンド判断指標として200周期単行移動平均smaを設定しています. ブリン帯の指標とsmaの指標が同方向である場合にのみ,取引信号を発信します. これは,一部の偽突破を効果的にフィルターすることができます.

取引の論理は以下の通りです.

  1. 多頭トレンドを判断する:ブリン帯上線>sma,中線>sma,下線>=sma
  2. 空頭トレンドを判断する:ブリン帯上線
  3. 多条件:多頭トレンド+ブリン帯下落
  4. 出場条件:価格がブリン帯を突破して軌道に乗る
  5. 空気条件:空気トレンド+価格突破 ブリン帯が軌道上
  6. 出発条件: ブリン帯の中間軌道から下落するか,230周期移動平均の上に戻る

優位分析

  1. ブリン帯は,トレンドの方向を判断し,突破の機会を効果的に捉えます.
  2. 長期移動平均のフィルターで,偽突破のリスクを減らすことができます.
  3. 論理が明快で操作が分かりやすい
  4. 空頭出場条件はより厳格に設定され,損失を減らすことができます.

リスク分析

  1. ブリン帯と移動平均の取引シグナルで,大きな滑り場が発生する可能性があります.
  2. 空頭条件が厳しすぎると空頭収益が低くなる
  3. パラメータを正しく設定しない場合,取引頻度は高すぎたり低すぎたりします.
  4. 突破型戦略は大きな損失を招く

改善方法:

  1. ブリン帯のパラメータを最適化し,取引頻度を低下させる
  2. ストップポイントを設定し,大きな損失を避ける
  3. 取引量指標のフィルターを追加して,突破効果を確保

要約する

この戦略は全体的に比較的単純で分かりやすく,ブリン帯判定傾向を使用して,転換点で逆操作を行う.同時に,長期短期判断指標を加え,信号を効果的にフィルターすることができる.戦略の最適化スペースは大きく,適切なパラメータの調整,量エネルギー指標の追加などによりさらに改善することができる.

ストラテジーソースコード
/*backtest
start: 2023-10-23 00:00:00
end: 2023-11-22 00:00:00
period: 1h
basePeriod: 15m
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("布林趋势震荡单", overlay=true,initial_capital=10000,default_qty_type=strategy.fixed, default_qty_value=1 )
bollL=input.int(20,minval=1,title = "长度")
bollmult=input.float(2.3,minval=0,step=0.1,title = "标准差")
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 = "趋势分界线")
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) 
shortEXIT=ta.crossunder(close,basis) or ta.crossover(close,ta.sma(close,230)) 

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

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

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

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