ボリンジャーバンドに基づくトレンドフォロー戦略


作成日: 2024-02-22 17:21:42 最終変更日: 2024-02-22 17:21:42
コピー: 0 クリック数: 745
1
フォロー
1617
フォロワー

ボリンジャーバンドに基づくトレンドフォロー戦略

概要

この戦略は,ブリン帯の指標に基づくトレンド追跡戦略である.これは,ブリン帯の上下線を判断してトレンド追跡を実現する.価格がブリン帯の上下線を突破するときに多行し,価格がブリン帯の下下線を突破するときに空白し,ストップ・ロスはブリン帯の中間軌道に設定される.

戦略原則

この戦略は,ブリン帯の指標を使用して価格の傾向を判断する. ブリン帯は,上線,下線,中線の3つの線で構成されている. 上線は価格の上昇の限界を表し,下線は価格の低下の限界を表し,中線は価格の移動平均を表します. 価格が下線から上線を突破すると,上昇傾向が始まることを示し,価格が上線から下線を突破すると,下降傾向が始まることを示します.

具体的には,この戦略は,長期ポジションの入場を判断する時,以下の2つの条件を同時に満たす必要があります: 1) 現在のK線の閉盘価格がブリン帯の軌道上より高い; 2) 前回のK線の閉盘価格がブリン帯の軌道上より低い.これは,価格が軌道上を突破し,上昇傾向を開始し,より適していることを示している. 短期ポジションの入場を判断することも同様で,現在のK線の閉盘価格がブリン帯の軌道下より低い,前回のK線の閉盘価格がブリン帯の軌道下より高い,空き時間の成熟を示している.

この戦略のストップ方式は,長ポジションのストップがブリン帯の中央軌道に設定され,短ポジションのストップも中央軌道に設定されます.これは,中央軌道が価格の移動平均を表すため,トレンドが変化するかどうかを判断する重要な位置だからです.

戦略的優位性

この戦略の最大の優点は,価格の傾向を明確に判断し,ブリン帯の指標の特性を利用してトレンドを追跡し,波動市場から誤導されないことである.他の指標と比較して,ブリン帯は突破判断により信頼性が高く,偽突破の確率を減らす.

さらに,この戦略は同時に多空条件を設定し,双方向取引を行い,価格の上下波動を最大限に利用して利益を得る.中軌道を止損位として採用することで,止損精度が向上し,タイミングで止損場を離れるのが戦略の利益の鍵である.

戦略リスク

この戦略の主なリスクは,ブリン帯のパラメータ設定である。ブリン帯の中軌道期と標準の大きさの差が,上下軌道位置に直接影響する。パラメータ設定が不適切であれば,偽突破の確率が増加する可能性がある。

さらに,中道はストップポイントとしてリスクも存在します.市場情勢が大きく波動すると,価格は中道から直接落ちてストップを引き起こす可能性があります.このとき,大傾向が変化しているかどうかを評価し,必要に応じてストップ範囲を適切に拡大することができます.

戦略の最適化

この戦略は以下の点で最適化できます.

  1. ブリン帯のパラメータを最適化し,異なる周期の累積経験データと組み合わせて最適なパラメータ組み合わせを設定する.

  2. 取引量の判断指標を増加させ,低量の偽突破を避ける.取引量が近期平均値を超えるように設定して操作をトリガーすることができる.

  3. 最適化されたストップ・メカニズム,市場の波動度に応じてストップ・レベルを動的に調整できる.大きな波動時にストップ・範囲を適切に放宽し,小さな波動時にストップ・トラッキング価格を緊縮する.

  4. MACD,KDJなどの他の指標判断を追加し,より多くの要因と組み合わせて,入場タイミングを決定し,操作の正確性を向上させる.

要約する

この戦略は,全体として,より実用的なトレンド追跡戦略である. ブリン帯の指標を使用してトレンドの方向を判断し,価格の突破上下軌道によって操作信号を発信し,両方向の取引により価格の変動を最大限に捉える.戦略の最適化スペースは大きい.パラメータ最適化,ストップ損失最適化などの手段によってよりよい効果を得ることができる.

ストラテジーソースコード
/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © Valente_F
//@version=4
strategy(title="Strategy: Trend Following Bollinger Bands", shorttitle="Strategy: Trend Following Bollinger Bands", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity)

//Inputs
//Bollinger Bands Parameters
length = input(defval=20, minval=1, title= "Length")
stddev = input(defval=2, minval=0.5, title= "StdDev")

// STRATEGY INPUTS
//Entry and Exit Parameters
checkbox1 = input(true, title="Enable Long Entrys")
checkbox2 = input(true, title="Enable Short Entrys")


//Bollinger Bands Calculation

[middle, upper, lower] = bb(close, length, stddev)

//Long Conditions

bulls1 = close > upper
bulls2 = close[1] < upper[1]
bulls = bulls1 and bulls2

//Short Conditions

bears1 = close < lower
bears2 = close[1] > lower[1]
bears = bears1 and bears2

// Plots of Bollinger Bands
plot(upper, title = "Upper Band", color = color.aqua)//, display = display.none)
plot(middle, title = "MA", color = color.red)//, display = display.none)
plot(lower, title = "Lower Band", color = color.aqua)//, display = display.none)

neutral_color = color.new(color.black, 100)
barcolors = bulls ? color.green : bears ? color.red : neutral_color

//Paint bars with the entry colors
barcolor(barcolors)

//Strategy


//STRATEGY LONG
long_entry = bulls and checkbox1

long_entry_level = high

strategy.entry("Long", true, stop = long_entry_level, when = long_entry)
strategy.cancel("Long", when = not long_entry)

strategy.exit("Stop Long", "Long", stop = middle)

//STRATEGY SHORT
short_entry = bears and checkbox2

short_entry_level = low

strategy.entry("Short", false, stop = short_entry_level, when = short_entry)
strategy.cancel("Short", when = not short_entry)

strategy.exit("Stop Short", "Short", stop = middle)