BB ダブル・ロング・ショート・トレーディング・戦略

作者: リン・ハーンチャオチャン開催日:2023年11月2日15時40分
タグ:

img

概要

BBデュアル・ロング・ショート・トレーディング戦略は,ボリンジャー・バンドを二方向取引に使用する戦略である.ボリンジャー・バンドの中帯,上帯,下帯を組み合わせて,ロング・ショート・ポジションの開閉と閉じる.価格が上帯に触るとショート・ポジションを開き,下帯に触るとロング・ポジションを開き,ストップ・ロストとテイク・プロフィート価格を設定する.この戦略は操作が簡単で,市場の主要なトレンドを把握する.

原則分析

この戦略は主にボリンジャーバンドの原理に基づいている.ボリンジャーバンドは,価格の動向を表す中帯,上帯,下帯で構成されている.中帯はn日移動平均,上帯は中帯+k標準偏差,下帯は中帯-k標準偏差である.価格が上帯を突破すると,市場は過剰購入状態にあり,ショートポジションを開設することを検討すべきである.価格が下帯を突破すると,市場は過剰販売状態にあり,長期ポジションを開設することを検討すべきである.

ストラテジーは,まずボリンジャー中間,上下帯を計算する.その後,価格が上帯に触れるかどうかを判断する.そうであれば,ショートポジションを開く.また価格が下帯に触れるかどうかを判断する.そうであれば,ロングポジションを開く.ポジションを開いた後,ストップ損失と利益を取る価格も設定する.例えば,ロングポジションを開いた後,ストップ損失価格は開口価格マイナス一定パーセント,利益を取る価格は開口価格プラス一定パーセントである.最後に,戦略はストップ損失,利益を取ること,ボリンジャーバンドに戻る価格を含む閉店条件も定義する.

この戦略は,ボリンジャーバンドの過剰購入および過剰販売市場状況を反映するボリンジャーバンドの能力を完全に利用し,比較的正確な長期および短期取引を実施する.市場は異なる段階にあるとき,現在の市場状況の傾向はボリンジャーバンド指標を通じて判断され,対応する取引戦略を採用することができる.

利点分析

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

  1. トレンドを把握する ボリンジャー・バンドは,主要なトレンドの方向性を特定し,トレンドを把握するために時間内にポジションを開くことができます.

  2. 双方向取引です.一方的な方向に限定されないまま,同時に長期と短期取引を可能にします.

  3. リスク管理 ストップ・ロスト・アンド・テイク・プロフィート設定は,すべての取引に損失軽減対策があることを保証します

  4. シンプルで明白です.ボリンジャー・バンドの指標に基づいて,戦略のルールは直接的で分かりやすいです.

  5. サイクル長さと標準偏差倍数などのパラメータは 戦略を最適化するために調整できます

  6. 株式,外為,暗号通貨などに適用できます.

リスク分析

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

  1. ボリンジャー・バンドの失敗リスク ボリンジャー・バンドは激しい市場の変動時に失敗する可能性があります

  2. ストップ・ロスは急激なトレンド変化時に発生する可能性があります.

  3. 過剰な最適化リスク 過剰な最適化が過剰なフィットメントにつながる可能性があります

  4. 取引頻度の高いリスク.ボリンジャー帯の変動が頻繁に起こる場合,取引が過剰になる可能性があります.

  5. バンド・タッチによる退出リスク バンド・タッチによる退出のみは早すぎる可能性があります

解決策は次のとおりです

  1. 傾向指標と組み合わせて バンドが失敗する時に 戦略を締めくくります

  2. ストップ・ロスを採用する

  3. 市場と時間枠を合わせたバックテストで オーバーフィッティングを防ぐ

  4. 変動範囲を緩め 取引頻度を減らす

  5. バンドの信号を確認するためにMACDダイバージェンスのような出口指標を追加します.

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

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

  1. サイクルの長さや 標準偏差倍数を 異なるサイクルの動向に合わせて調整します

  2. トレンドを判断するために移動平均のような指標を組み合わせ 明確なトレンドがない場合 誤った信号を避ける

  3. ストップ・ロスの戦略を最適化します. ストップ・ロスの後を追って価格を近づけるか, ATRに基づいてストップ・ロスを設定するなどです.

  4. 中央帯の偽ブレイクを避けるために 閉値ブレイク帯のようなエントリーフィルターを追加します

  5. マシン学習を使って パーマータを自動最適化します

  6. バンド信号を補完するためにMACDダイバージェンスのような出口指標を追加します.

概要

BBのダブル・ロング・ショート・トレーディング戦略は,非常に典型的で実用的なボリンジャー・バンド戦略である.ボリンジャー・バンドを使用して,トレンドを把握するためにオーバーバイトとオーバーセール条件を判断し,双方向取引を実施し,リスク管理のためにストップ・ロスを設定し,利益を上げます.この戦略はトレンドをキャッチし,双方向取引,リスク管理の利点があり,ボリンジャー・バンドの失敗のような問題もあります.ボリンジャーパラメータを調整し,トレンドフィルターを追加し,ストップ・ロスを最適化し,戦略を改善することができます.この戦略は非常に実用性があり,推奨に値するシンプルな潜在的な取引戦略です.


/*backtest
start: 2023-10-25 00:00:00
end: 2023-11-01 00:00:00
period: 2m
basePeriod: 1m
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/
// © samuelkanneman

//@version=5
strategy('MI_BB ', overlay=true)
// i_startTime = input.time(title='Start Date Filter', defval=timestamp('01 Nov 2020 13:30 +0000'), tooltip='Date & time to begin trading from')
// i_endTime = input.time(title='End Date Filter', defval=timestamp('1 Nov 2022 19:30 +0000'), tooltip='Date & time to stop trading')

dateFilter = true

longitud = input(20, title='Longitud')
Desv = input.float(2.0, title='Desvio estandar', step=0.1)
fuente = input(close, title='Fuente')

TakeP = input.float(5.0, title='Take Profit', step=0.1)
StopL = input.float(1.0, title='Stop Loss', step=0.1)
var SL = 0.0
var TP = 0.0

[banda_central, banda_sup, banda_inf] = ta.bb(fuente, longitud, Desv)

comprado = strategy.position_size > 0
vendido = strategy.position_size < 0



if not vendido and not comprado and dateFilter
// Short
    if close >= banda_sup
    //cantidad= (strategy.equity/close)
        strategy.entry('venta', strategy.short)
        SL := close * (1 + StopL / 100)
        TP := close*(1-TakeP/100)
        
//Long
    else if close <= banda_inf
    //cantidad= (strategy.equity/close)
        strategy.entry('compra', strategy.long)
        SL := close * (1 - StopL / 100)
        TP := close*(1+TakeP/100)
    
//cierrres short
if close <= TP and vendido
    strategy.close ("venta" , comment="Salto TP")
if close <= banda_inf and vendido
    strategy.close ("venta" , comment="Banda Inferior")
if close >= SL and vendido
    strategy.close ("venta" , comment="Salto SL")
    
   
//cierre long
if close >= TP and comprado
    strategy.close ("compra" , comment="Salto TP")  
if close >= banda_sup and comprado
    strategy.close ("compra" , comment="Banda Superior")
    
if close <= SL and comprado
    strategy.close ("compra" , comment="Salto SL")
    


p1 = plot(banda_central)
p2 = plot(banda_sup)
p3 = plot(banda_inf)
fill(p2, p3, transp=90)




もっと