ボリンジャーバンドのブレイクアウトに基づくFiboBuLL波動戦略


作成日: 2023-12-01 14:11:56 最終変更日: 2023-12-01 14:11:56
コピー: 0 クリック数: 438
1
フォロー
1212
フォロワー

ボリンジャーバンドのブレイクアウトに基づくFiboBuLL波動戦略

概要

FiboBuLLの波動策は,ブリン帯のフィルター版を改造した取引策で,私のプログラムページの下で見ることができます.この策は,価格が上線より高い閉盤時に多し,価格が下線より低い閉盤時に空きをする.

ブリン帯は,20周期の単純な移動平均と,基準線から2つの標準差のそれぞれの上下線を使用するクラシックな指標である.これらの線帯は,帯の位置に対する価格に基づいて価格の変動性と傾向を視覚化するのに役立ちます.

この戦略は,取引量,RSI,基本面などの他のパラメータを考慮しないため,ユーザーは他の指標からの確認または基本面に基づいて自由裁量を行わなければならない. この戦略の結果は,任意のユーザが定義した目標または止損を考慮せずに,多頭と空頭取引のみに基づいている.

この戦略は,価格が連続した柱で閉盤を突破して上下するときに最も効果的です. ブリン帯の圧迫や波動性に基づく上下下トレイルを突破するときに,他の指標と一緒にこの戦略またはブリン帯のフィルターを使用する決定は,間違いなく賢明です.

この戦略は日線と分時線のグラフで使えますし,陽線陰線の戦略でもトレンドを見つけることができますが,資産の実際の価格を反映できないため,取引インプットでは推奨されません.

戦略原則

FiboBuLLの波動策の核心原理は,ブリン帯の指標に基づいて価格の判断の突破である.ブリン帯は,中軌道,上軌道,下軌道で構成されている.中軌道は,閉盤価格の21周期の簡易移動平均である.上軌道は,中軌道と中軌道上の1倍標準差を計算し,価格の上方波動の範囲を反映している.下軌道は,中軌道と中軌道下の1倍標準差を計算し,価格の下方波動の範囲を反映している.

閉盘価格の上側が軌道に乗るときに多做シグナルが生成され;閉盘価格の下側が軌道に乗るときに空売りシグナルが生成される。多做空した後,再び逆軌道突破するとき平仓される。

この策略は,barssince関数を使用して,上下軌道に相対的に価格を追跡する.上下軌道に突破した柱の数が下下軌道よりも少ない場合,多多信号が発生し,下下軌道に突破した柱の数が上下軌道に突破した柱の数よりも少ない場合,空き信号が発生する.

中軌道周期パラメータと標準差倍数パラメータを調整することで,ブリン帯の突破感度を変化させ,入場時間を調整することができる.

優位分析

FiboBuLLの波動戦略には以下の利点があります.

  1. ブリン・バンドで価格の突破を判断し,その原理は簡単でわかりやすい.
  2. パラメータを調整することで突破の感度が制御できます.
  3. ブリン帯の可視化により,価格の変動やトレンドを判断できます.
  4. 意思決定の正確性を高めるために,他の指標と組み合わせることができます.
  5. 複数のタイムサイクルで使用可能,適用性強

リスク分析

FiboBuLLの波動策にはいくつかのリスクがあります.

  1. ブルイン帯突破に完全に依存すると,誤信号が発生しやすい.
  2. 突破の強度や持続時間については不明
  3. 価格の逆転は判断できない
  4. 損失のない設定,大きな損失のリスク

このリスクに対して,以下の方法で最適化できます.

  1. 他の指標と組み合わせた判断で 誤った信号を避ける
  2. 過去データテストによるパラメータ設定
  3. ストップポイントを設定し,最大損失をコントロールします.
  4. 継続性を判断するための反転要因を考慮する

最適化の方向

FiboBuLLの波動戦略には以下の主要な最適化方向があります.

  1. エネルギー潮指数などの交代量指標の判断に加え,無力な偽突破を避ける
  2. RSIなどの超買超売指標の判断と組み合わせて,意思決定の正確性を向上させる
  3. 歴史回帰の最適化パラメータ設定に基づいて最適な周期と標準差の倍数を決定する
  4. ストップ・ロズとストップ・ストップのレベルを設定し,リスクをコントロールし,利益をロックします.
  5. トレンドと反転フィルター条件を考慮して,継続方向を判断する.
  6. 異なる品種と周期のパラメータ設定をテストする

この点の数々を最適化することで,FiboBuLL波の戦略の安定性と収益性を大幅に向上させることができます.

要約する

FiboBuLL波動策は,ブリン帯の判断価格突破と中道回帰の基本原理を利用して,中道上下線の価格変動を追跡し,突破で取引シグナルを形成する.この策略の概念はシンプルで,広く適用され,市場変動を追跡する効果的な方法である.

しかし,純粋に依存した突破は,誤信号と無力突破の発生に容易である.したがって,トレンド,取引量および他の要因を組み合わせて突破の信頼性を判断し,止損停止制御のリスクを設定する必要があります.

FiboBuLLの波動戦略は,価格の波動に基づいて取引のタイミングを判断するための基本的な枠組みを提供します. この戦略は,他の指標と連携し,継続的に最適化することで,取引決定を行うための強力なツールになることができます.

ストラテジーソースコード
/*backtest
start: 2022-11-24 00:00:00
end: 2023-11-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//@FiboBuLL

strategy(shorttitle='FB Wave', title='FiboBuLL Wave (A version of Bollinger Bands Breakout Strategy By Trade Chartist)', overlay=true, pyramiding=1, currency=currency.NONE, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

src = input(close, title='Source')
length = input.int(21, minval=1, title='SMA length')  // 20 for classis Bollinger Bands SMA line (basis)


mult = input.float(1., minval=0.236, maxval=2, title='Standard Deviation')  //2 for Classic Bollinger Bands //Maxval = 2 as higher the deviation, higher the risk
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)

Show = input.string('Both', options=['Longs Only', 'Shorts Only', 'Both'], title='Trade Type')
CC = input(true, 'Color Bars')

upper = basis + dev
lower = basis - dev

//Conditions for Long and Short - Extra filter condition can be used such as RSI or CCI etc.

short = src < lower  // and rsi(close,14)<40
long = src > upper  // and rsi(close,14)>60

L1 = ta.barssince(long)
S1 = ta.barssince(short)

longSignal = L1 < S1 and not (L1 < S1)[1]
shortSignal = S1 < L1 and not (S1 < L1)[1]

//Plots and Fills


////Long/Short shapes with text
// plotshape(S1<L1 and not (S1<L1)[1]?close:na, text = "sᴇʟʟ", textcolor=#ff0100, color=#ff0100, style=shape.triangledown, size=size.small, location=location.abovebar, transp=0, title = "SELL", editable = true)
// plotshape(L1<S1 and not (L1<S1)[1]?close:na, text = "ʙᴜʏ", textcolor = #008000, color=#008000, style=shape.triangleup, size=size.small, location=location.belowbar, transp=0, title = "BUY", editable = true)  

// plotshape(shortSignal?close:na, color=#ff0100, style=shape.triangledown, size=size.small, location=location.abovebar, transp=0, title = "Short Signal", editable = true)
// plotshape(longSignal?close:na, color=#008000, style=shape.triangleup, size=size.small, location=location.belowbar, transp=0, title = "Long Signal", editable = true)  


p1 = plot(upper, color=color.new(#ff0000, 75), display=display.all, title='Upper Band')
p2 = plot(lower, color=color.new(#008000, 75), display=display.all, title='Lower Band')

p = plot(basis, color=L1 < S1 ? #008000 : S1 < L1 ? #ff0000 : na, linewidth=2, editable=false, title='Basis')

fill(p, p1, color=color.new(color.teal, 85), title='Top Fill')  //fill for basis-upper
fill(p, p2, color=color.rgb(217, 161, 161), title='Bottom Fill', transp=85)  //fill for basis-lower

//Barcolor

bcol = src > upper ? color.new(#8ceb07, 0) : src < lower ? color.new(#ff0000, 0) : src > basis ? color.green : src < basis ? color.red : na

barcolor(CC ? bcol : na, editable=false, title='Color Bars')


// === INPUT BACKTEST RANGE ===
FromMonth = input.int(defval=1, title='From Month', minval=1, maxval=12)
FromDay = input.int(defval=1, title='From Day', minval=1, maxval=31)
FromYear = input.int(defval=2018, title='From Year', minval=2015)
ToMonth = input.int(defval=1, title='To Month', minval=1, maxval=12)
ToDay = input.int(defval=1, title='To Day', minval=1, maxval=31)
ToYear = input.int(defval=9999, title='To Year', minval=2010)

// === FUNCTION EXAMPLE === 
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)  // backtest finish window
window() =>
    time >= start and time <= finish ? true : false

if window() and (Show == 'Longs Only' or Show == 'Both')
    strategy.entry('AL', direction=strategy.long, when=longSignal)
    strategy.close('LongAL', when=shortSignal, comment='AL KAPA')

if window() and (Show == 'Shorts Only' or Show == 'Both')
    strategy.entry('SAT', direction=strategy.short, when=shortSignal)
    strategy.close('SAT', when=longSignal, comment='SAT KAPA')