ボリンジャー・バンド追跡戦略

作者: リン・ハーンチャオチャン,日付: 2024-02-27 16:11:44 詳細はこちら
タグ:

img

概要

この戦略は,トレンドトラッキング取引を実装するために,ストップロスの追跡と組み合わせたボリンジャーバンド指標を使用しています.価格は上部レールを破ると短く,価格は下部レールを破ると長くなります.ストップロスを設定し,利益を取ることで利益をロックすることができます.一方,この戦略はオプションの逆転エントリー選択も提供しています.これは価格がバンドに戻ると逆転オーダーを行うことを意味します.

戦略原則

この戦略では,まずボリンジャー帯の中間線,上間線,下間線を計算する.中間線は,レンの長さのWMAであり,上間線と下間線は,標準偏差を偏差倍数で表す.

価格が上部レールを突破するとショート,価格が下部レールを突破するとロング. ポジションを開いた後,ストップ・ロスを設定し,利益を得る価格を設定する.ストップ・ロスの価格は入力ストップ値,利益を得る価格は入力制限値である.

さらに,この戦略はリバース・オープニングのオプションも提供しています. リバース・エントリーをチェックすると,価格がMEAN REVERSION取引に属するボリンジャー・バンドに戻るとリバース・オーダーが実行されます.

トレンド・オープニングか逆転・オープニングかに関わらず,ストップ・ロストとテイク・プロフィートの設定は同じです.ストップ・ロストとテイク・プロフィートのオプションは2つあります.固定ストップ・ロストまたはトレーリング・ストップです.価格変化に応じて調整されます.

利点分析

この戦略は,ボリンジャーバンド指標とストップロスの追跡を組み合わせて,トレンド利益をロックしながらリスクを効果的に制御します.逆転開口はストップロスの発生の可能性を減らすことができます.

ボリンジャーバンド上下レールは価格突破を明確に決定することができる.バンド付き取引方法はPnL結果を明確にします.ストップ損失を追跡することで,得た利益が引き戻されないようにストップ損失ポジションを調整します.

リスク分析

ボリンジャーバンド戦略の最大のリスクはトレンド逆転である.価格が上部レールを破ると,価格がV形の逆転が現れ,迅速なストップ損失につながる可能性がある.ロングポジションは同様の状況に直面する.

リバース・オープニングはトレンド継続の機会を逃す可能性があります.価格がバンドに戻るとリバース・オーダーを行うことで利益が減少します.

また,不適切なパラメータ設定もリスクを増大させる可能性があります. Len と Deviation は慎重に設定する必要があります.そうでなければ,ストップロスのリスクが増加します.

最適化方向

戦略は以下の側面で最適化できます.

  1. パラメータ適応機能を追加します.Bollinger Bandを価格に近いものにするために,Lenと Deviationは市場の変動に応じて動的に調整できます.

  2. オープニングポジションフィルターを追加します. 引き下げを避けるために,取引量の急増や取引取引の増加などの追加の条件を追加できます.

  3. 他の指標フィルターシグナルと組み合わせ,誤った信号や欠落した信号を避けるためにMACDやKDJのような指標を使用してトレンド傾向を判断します.

  4. 時間制限を追加します.特定の期間中に取引するだけで,一夜間のリスクが軽減できます.

概要

ボリンジャーバンド追跡戦略は,ボリンジャーバンド指標を使用して価格突破を決定する.ストップ・ロストとテイク・プロフィートを設定することで利益をロックし,リスク調整のためにストップ・ロスを追跡する.戦略はシンプルで実用的です.市場の状況に基づいて,トレンド・トレードまたはリバース・トレードを選択することができます.パラメータを最適化しフィルター条件を追加することで,リスクはさらに削減され,より安定した利益を得ることができます.


/*backtest
start: 2024-02-19 00:00:00
end: 2024-02-26 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="BB Strategy (Basic)",overlay=true, initial_capital=25000, default_qty_value=1, commission_type=strategy.commission.cash_per_contract, commission_value=3.02)
len = input(20, minval=1, title="Length")
src = input(close, title="Source")
mult = input(2.0, "Deviation", minval=0.001, maxval=50)
//price_drop = input(.003, "When price drops (In Ticks) Enter Long", step=.001)
//price_climb = input(.003, "When price climbs (In Ticks) Enter Short", step=.001)
trail = input(true, "Trailing Stop(checked), Market stop(unchecked)")
stop = input(10000, "Stop (in ticks)", step=5)
limit = input(20000, "Limit Out", step=5)
//size = input(1, "Limit Position Size (pyramiding)", minval=1)
revt = input(true, "Reversal Entry(checked, Trend Entry(unchecked)")
timec = input(false, "Limit Time of Day (Buying Side)")

//calculations and plots
revti = if revt==false
    true
basis = wma(src, len)
dev = mult * stdev(src, len)
upper = basis + dev
lower = basis - dev
plot(basis, color=red)
p1 = plot(upper, color=teal)
p2 = plot(lower, color=teal)
fill(p1, p2)
u = crossover(high, upper) 
d = crossunder(low, lower)
//Time Session
sess = input("1600-0500", "Start/Stop trades (Est time)")
t = time(timeframe.period, sess)

//Orders
if(timec)
    strategy.entry("Enterlong", long=revt, when=d and t>1)
else
    strategy.entry("Enterlong", long=revt, when=d)
if(trail)
    strategy.exit("Exit","Enterlong", profit=limit, trail_points = 0, trail_offset = stop )
else
    strategy.exit("Exit","Enterlong", profit=limit, loss = stop )
    
if(timec)
    strategy.entry("Entershort", long=revti, when=u and t>1)
else
    strategy.entry("Entershort", long=revti, when=u)
if(trail)
    strategy.exit("Exit","Entershort", profit=limit, trail_points = 0, trail_offset = stop )
else
    strategy.exit("Exit","Entershort", profit=limit, loss = stop )
  



もっと