Стратегия FiboBuLL Wave - торговая стратегия, основанная на модификации фильтра по ленте Брин, которую можно найти на странице “Моя программа”. Стратегия делает больше, когда цена закрывается выше верхней полосы, и делает меньше, когда цена закрывается ниже нижней полосы.
Полосы Брин - классический индикатор, использующий простую скользящую среднюю за 20 циклов, а также верхние и нижние колебания, отклоняющиеся на 2 стандартных отклонения от базовой линии. Эти колебания помогают визуализировать волатильность и тенденции цены в зависимости от того, где они расположены по отношению к полосам.
Эта стратегия не учитывает другие параметры, такие как объем торговли, RSI, фундаментальные и т. д., поэтому пользователь должен использовать свою свободу воли в зависимости от подтверждения или фундаментальных обстоятельств, полученных из других показателей. Результаты этой стратегии основаны исключительно на многообещающих и безнадежных сделках, без учета любых пользовательских целей или стоп-лосс.
Эта стратегия наиболее эффективна, когда цена совершает закрытие вверх/вниз по последовательному столбу. Это, несомненно, разумное решение использовать эту стратегию вместе с другими индикаторами или фильтрами вверх/вниз по буринскому полюсу, когда они сжимаются или проваляются на основе волатильности.
Эта стратегия может быть использована на часовых и часовых диаграммах, а также для обнаружения тенденций в стратегии солнечных и солнечных лучей, но не рекомендуется использовать для ввода торговли, поскольку они не могут отражать истинную цену актива.
Основным принципом волновой стратегии FiboBuLL является прорыв цены, основанный на показателях пояса Бурин. Пояса Бурин состоят из средней, верхней и нижней полос.
Повышение цены при прохождении вверх по орбите; снижение цены при прохождении вниз по орбите. После прохождения вверх по орбите, снова прорыв в обратную орбиту.
Эта стратегия использует функцию barssince, чтобы отслеживать цены относительно прорывов вверх и вниз. Когда количество столбов, прорывающих вверх и вниз, меньше, чем количество столбов внизу, создается сигнал “сделай больше”, а когда количество столбов, прорывающих вниз, меньше, чем количество столбов вверх и вниз, создается сигнал “сделай меньше”.
С помощью корректировки параметров среднеорбитального цикла и параметров кратности стандартного отклонения можно изменить чувствительность прорыва в поясе бурин, что позволит скорректировать время входа в игру.
Стратегия FiboBuLL Wave имеет следующие преимущества:
При использовании 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')