資源の読み込みに... 荷物...

ボリンジャー・バンドのブレイクアウト戦略は,長時間だけ動力を追求する戦略です.

作者: リン・ハーンチャオチャン開催日: 2024-01-29 11:05:29
タグ:

img

概要

ボリンジャーバンドのブレイクアウト戦略は,長時間のみのモメンタムを追求する戦略である.ボリンジャーバンドの上下帯を使用して価格のモメンタムを判断し,価格が上部帯を超えるとロングになり,価格が下部帯または移動平均を下回るとポジションを閉じる.

戦略の論理

戦略は,まずベースラインとしてN日移動平均を計算し,その後,ベースライン上の標準偏差をK倍加減し,上下帯を構成し,ボリンジャー帯を形成する.価格が上帯を超えると,上向きのブレイクをシグナルします.これはゴールデンクロス信号です.戦略はこの信号でロングポジションを開きます.価格が下帯または移動平均を下回ると,これはダウン逆転をシグナルします.この戦略はこの信号でポジションを閉じる.

ボリンジャー帯の上下帯は,価格データの分布の大半を動的に含めることができるため,現在の市場価格の合理的な変動範囲を表しています.価格がこの合理的な変動範囲を突破すると,それは市場で異常な何かが起こっていることを意味し,それに応じてポジションを調整する必要があります.これは戦略の基本的な論理です.

利点分析

この戦略には以下の利点があります.

  1. 価格動向を効果的に把握し,市場動向を適時に追いかける
  2. 異常なブレイクを判断するためにボリンジャー帯を使用し,偽ブレイクを避ける
  3. 明確で実行し,自動化しやすいルール
  4. 市場変動に応じてパラメータを最適化して戦略を改善できます

リスク分析

この戦略にはいくつかのリスクもあります:

  1. 極端な波動が起きるとボリンジャーバンドは失敗する可能性があります.
  2. 実際の市場動向を判断できない.高値で買い,低値で売るかもしれない.
  3. 時間が遅れている
  4. 取引コストを無視すると,実際の業績は割引されます.

このリスクを制御するために MACD のようなトレンドインジケーターを組み込むか 悪い信号を減らすために ボリンジャー帯を狭めるようにパラメータを適切に調整することができます

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

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

  1. 実際のブレイクを判断するために取引量を組み込む
  2. パラメータを動的に最適化するために適応ボリンジャー帯を使用する
  3. 単一の損失を制御するストップ損失メカニズムを追加する
  4. ポジション管理を強化し,市場の状況に基づいてポジションを動的に調整する

上記の最適化によって 戦略の安定性をさらに向上させ 取引リスクを削減できます

結論

概要すると,ボリンジャーバンドブレイクアウト戦略は,かなり古典的なトレンド追いかける戦略です. 明確な論理と簡単な自動化があります. しかし,まだいくつかの欠陥があり,複雑な変化する市場環境に適応するためにさらなる最適化が必要です. 他の指標とメカニズムと適切に組み合わせると,結果は大幅に改善できます.


/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
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/
// © Senthaamizh

//@version=4
strategy(title="Bollinger Band Breakout", shorttitle = "BB-BO", 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 
exit = input(1, minval=1, maxval=2,title = "Exit Option") // Use Option 1 to exit using lower band; Use Option 2 to exit using moving average

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

upper = basis + dev
lower = basis - dev

if (crossover(source, upper))
    strategy.entry("Long", strategy.long, qty=1)

if(exit==1)
    if (crossunder(source, lower))
        strategy.close("Long")

if(exit==2) //basis is good for N50 but lower is good for BN (High volatility)
    if (crossunder(source, basis))
        strategy.close("Long")

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)


もっと