FiboBuLLの波動策は,ブリン帯のフィルター版を改造した取引策で,私のプログラムページの下で見ることができます.この策は,価格が上線より高い閉盤時に多し,価格が下線より低い閉盤時に空きをする.
ブリン帯は,20周期の単純な移動平均と,基準線から2つの標準差のそれぞれの上下線を使用するクラシックな指標である.これらの線帯は,帯の位置に対する価格に基づいて価格の変動性と傾向を視覚化するのに役立ちます.
この戦略は,取引量,RSI,基本面などの他のパラメータを考慮しないため,ユーザーは他の指標からの確認または基本面に基づいて自由裁量を行わなければならない. この戦略の結果は,任意のユーザが定義した目標または止損を考慮せずに,多頭と空頭取引のみに基づいている.
この戦略は,価格が連続した柱で閉盤を突破して上下するときに最も効果的です. ブリン帯の圧迫や波動性に基づく上下下トレイルを突破するときに,他の指標と一緒にこの戦略またはブリン帯のフィルターを使用する決定は,間違いなく賢明です.
この戦略は日線と分時線のグラフで使えますし,陽線陰線の戦略でもトレンドを見つけることができますが,資産の実際の価格を反映できないため,取引インプットでは推奨されません.
FiboBuLLの波動策の核心原理は,ブリン帯の指標に基づいて価格の判断の突破である.ブリン帯は,中軌道,上軌道,下軌道で構成されている.中軌道は,閉盤価格の21周期の簡易移動平均である.上軌道は,中軌道と中軌道上の1倍標準差を計算し,価格の上方波動の範囲を反映している.下軌道は,中軌道と中軌道下の1倍標準差を計算し,価格の下方波動の範囲を反映している.
閉盘価格の上側が軌道に乗るときに多做シグナルが生成され;閉盘価格の下側が軌道に乗るときに空売りシグナルが生成される。多做空した後,再び逆軌道突破するとき平仓される。
この策略は,barssince関数を使用して,上下軌道に相対的に価格を追跡する.上下軌道に突破した柱の数が下下軌道よりも少ない場合,多多信号が発生し,下下軌道に突破した柱の数が上下軌道に突破した柱の数よりも少ない場合,空き信号が発生する.
中軌道周期パラメータと標準差倍数パラメータを調整することで,ブリン帯の突破感度を変化させ,入場時間を調整することができる.
FiboBuLLの波動戦略には以下の利点があります.
FiboBuLLの波動策にはいくつかのリスクがあります.
このリスクに対して,以下の方法で最適化できます.
FiboBuLLの波動戦略には以下の主要な最適化方向があります.
この点の数々を最適化することで,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')