ボリンジャーボリュームブレイクアウト戦略


作成日: 2023-12-19 16:24:24 最終変更日: 2023-12-19 16:24:24
コピー: 0 クリック数: 707
1
フォロー
1621
フォロワー

ボリンジャーボリュームブレイクアウト戦略

概要

ボリンジャー・ペイジメント・ブレイクストラテジーは,ボリンジャー・バンドの指標を用いて株価を識別する典型的な量的な取引戦略である.この戦略は,ボリンジャー・バンドの上線と下線を使用して,株価が過大評価されているか過小評価されているかを判断し,株価の移動平均と組み合わせて取引シグナルを発信する.価格が上線を突破すると,株価が過大評価されていると考えられ,買取シグナルを形成し,価格が下線を突破すると,株価が過大評価されていると考えられ,販売シグナルを形成する.

原則

ボリンジャー帯は,中軌道線,上軌道線,下軌道線で構成されている. 中軌道線は,n日の単純移動平均であり,上下軌道線は,中軌道線上下2つの標準差の位置である. 株価が上軌道に近づくと,株価が過大評価されていると考えられ,下軌道に近づくと,株価が過小評価されていると考えられる.

この戦略は,まず,20日の株価の中軌道線,上軌道線,下軌道線を計算する.次に,株価が中軌道線より上または下であるかを判断する.中軌道線より上なら買い信号,中軌道線より下なら売り信号である.同時に,株価が上なら上軌道線を平仓信号として,株価が下なら下軌道線を平仓信号として穿越する.

利点

この戦略の最大の利点は,株式価格の高低評価を判断するボリンジャー帯を利用し,盲目取引の問題を回避することです.株式価格が高く評価された場合,戦略は売り信号を発信し,株式価格が低評価された場合,戦略は買い信号を発信します.これによって,いくつかのノイズを効果的にフィルターし,入る取引信号の質が高くなります.

さらに,この戦略は,移動平均を補助判断指標として加えた. 株価が実際に移動平均を突破することは,強いトレンド信号である. ボリンジャー帯の高低評価判断と組み合わせると,戦略信号をより正確にすることができる.

リスク

この戦略の最大のリスクは,ボリンジャー・バンド指数そのものにある. 株式価格が異常な波動を起こすと,ボリンジャー・バンドの範囲もそれと共に変化する. このとき,株式価格が明らかに過大評価されているか過小評価されていることが起こり得るが,ボリンジャー・バンドの上下軌道には触れない. これにより,戦略が取引信号を与えられないという問題が生じます.

また,株式の基本情報を考慮せず,技術指標にのみ依存すると,一定のリスクがあります.例えば,利益が下がっているが,株価が過小評価されている株式,または業績が高速に成長しているが,株価が偏高している個人株式など.これらの場合,戦略信号は,株価の実際の価値と一定の偏差がある可能性があります.

最適化の方向

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

  1. 追加ストップ・メカニズム。 株価が買取価格に比べて一定比率が下落したときに強制ストップ・レジュート・アウト。 これは戦略を効果的にコントロールできる最大の損失。

  2. 株式の基本面と技術指標を組み合わせる.PE,PBなどの基本面指標の判断ルールを加え,実際に過大評価されている株式を購入することを避ける.

  3. 動的調整パラメータ. 周期長さ,標準差倍数などのパラメータを異なる株の変動率に応じて動的に調整する. これは,Bollinger Bandを個々の株の価格変動により良く適応させる.

要約する

ボリンジャー動量突破策は,指数判断を補助して取引信号を発信し,盲目取引のリスクを回避し,ノイズ信号を効果的にフィルターすることができる.同時に,一定の制限があり,異常波動の影響を完全に回避することはできません.将来的には,ストップ損失,基本面,動的パラメータ調整などの面で最適化することができ,戦略をより安定して信頼できます.

ストラテジーソースコード
/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="NoScoobies Bollinger Bands", overlay=true)
source = close
length = input(20, minval=1, title = "Period") //Length of the Bollinger Band 
mult = input(1.5, minval=0.001, maxval=50, title = "Standard Deviation") // Use 1.5 SD for 20 period MA; Use 2 SD for 10 period MA 

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

upper = basis + dev
lower = basis - dev

long=crossover(source, basis)
short=crossunder(source, basis)
close_long=crossunder(source, upper)
close_short=crossover(source, lower)

if long
    strategy.entry("Long", strategy.long)
    strategy.close("Long", when = close_long)

if short
    strategy.entry("Short", strategy.short)
    strategy.close("Short", when = close_short)

plot(basis, color=color.red,title= "SMA")
p1 = plot(upper, color=color.blue,title= "UB")
p2 = plot(lower, color=color.blue,title= "LB")
fill(p1, p2)