ボリンジャー・バンドス・モメンタム・ブレイクアウト戦略

作者: リン・ハーンチャオチャン, 日付: 2023-12-19 16:24:24
タグ:

img

概要

ボリンジャーバンドスモメントブレイクアウト戦略は,ボリンジャーバンドス指標を使用して誤った株価を特定する典型的な定量的な取引戦略である.この戦略は,ボリンジャーバンドスの上下帯を使用して,株価が過大評価か過大評価か判断し,株価の移動平均を組み合わせて取引信号を生成する.価格が上部帯を突破すると,株価が過大評価され,購入信号が形成される.価格が下部帯を突破すると,株価が過大評価され,売却信号が形成される.

原則

ボリンジャー帯は,中帯,上帯,下帯から構成される.中帯はn日間の単純な移動平均線である.上帯と下帯は,それぞれ中帯の上と下の2つの標準偏差である.株価が上帯に近いときは過大評価され,下帯に近いときは過大評価されていると考えられる.

この戦略は,まず20日間の中間,上間,下間ボリンジャー帯を計算する.その後,株価が中間帯より高く,または低く,判断する.中間帯より高くなった場合,購入信号が形成される.中間帯より低くなった場合,販売信号が形成される.同時に,株価が上帯を突破した場合,閉じる信号として機能し,価格が下帯を突破した場合,閉じる信号としても機能する.

利点

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

さらに,移動平均は,この戦略における補助判断指標として使用される. 株式価格による移動平均の実際の突破も強いトレンド信号である. ボリンジャーバンドの過大評価と過小評価の判断と組み合わせると,戦略信号はより正確である.

リスク

この戦略の最大のリスクは,ボリンジャーバンド指標自体にある.株価が異常な波動を起こしたとき,ボリンジャーバンドの範囲もそれに応じて変化する.この時点で,株価が明らかに過大評価または過小評価されている状況が起こり得るが,ボリンジャーバンドの上下線に達していない.その結果,戦略は取引信号を与えることができない.

さらに,株の基本面を考慮せずに技術指標のみを頼る場合も,いくつかのリスクが伴う.例えば,利益が低下しているが,価格が過小評価されている株,または収益が高速に成長しているが,価格が比較的高い株など.これらの場合,戦略信号と実際の株価の間に一定の偏差がある可能性があります.

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

この戦略は,次の側面で最適化できます.

  1. ストップ・ロスのメカニズムを追加します. 株価が購入価格と比較して一定の割合で下がると,ストップ・ロスの強制退出です. これは戦略の最大損失を効果的に制御することができます.

  2. 基本的指標と技術的指標を組み合わせ PEとPB比率などの判断ルールを追加し,すでに過大評価されている株式を購入しないようにします.

  3. パラメータを動的に調整する. サイクルの長さや標準偏差倍数などのボリンガーバンドのパラメータを異なる株の変動に応じて動的に調整する. これにより,ボリンガーバンドは株価変動により適性的に適応することができます.

結論

ボリンジャーバンドのモメントブレイクアウト戦略は,雑音信号を効果的にフィルタリングできる補助判断指標で取引シグナルを発行することで,盲目取引のリスクを回避する.同時に,異常波動の影響を完全に回避できない特定の制限があります.将来,ストップ損失,基本要素を組み合わせ,パラメータを動的に調整して戦略をより安定かつ信頼性のあるものにするなどの側面で最適化することができます.


/*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)

もっと