BB ダブルロングショート取引戦略


作成日: 2023-11-02 15:40:00 最終変更日: 2023-11-02 15:40:00
コピー: 0 クリック数: 696
1
フォロー
1617
フォロワー

BB ダブルロングショート取引戦略

概要

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)