
A estratégia de onda FiboBuLL é uma estratégia de negociação baseada na versão de filtro da faixa de brinquedos, que pode ser encontrada na página do meu programa. A estratégia faz mais quando o preço se fecha acima da linha superior e fica em branco quando o preço se fecha abaixo da linha inferior.
As faixas de Brin são um indicador clássico que usa uma média móvel simples de 20 períodos, com um traço ascendente e descendente de cada 2 padrões de diferença acima da linha de referência. Estas faixas ajudam a visualizar a volatilidade e a tendência dos preços com base na posição dos preços em relação às faixas.
A estratégia não considera outros parâmetros, como volume de transação, RSI, fundamentos, etc., portanto, o usuário deve exercer o seu próprio critério de acordo com a confirmação ou o fundamento de outros indicadores. Os resultados da estratégia são baseados puramente em negociações de ativos e ativos em branco, sem considerar qualquer objetivo ou stop loss definido pelo usuário.
A estratégia funciona melhor quando os preços se fecham em um fechamento de alta/baixa em colunas contínuas. A decisão de usar a estratégia ou o filtro de alta/baixa baseado na volatilidade, juntamente com outros indicadores, é sem dúvida um passo sensato.
A estratégia pode ser usada em gráficos de dia e hora e pode ser usada para encontrar tendências em estratégias de dia e de noite, mas não é recomendada para entradas de negociação, pois não refletem o preço real do ativo.
O princípio central da estratégia de ondas FiboBuLL é a ruptura do preço com base no indicador da faixa de Brin. A faixa de Brin é composta por um meio-trajeto, um trajeto superior e um trajeto inferior. O meio-trajeto é a média móvel simples de 21 ciclos do preço de encerramento.
Quando o preço de fechamento acima atravessa a órbita, gera um sinal de tomada de posição; quando o preço de fechamento abaixo atravessa a órbita, gera um sinal de tomada de posição. Depois de fazer mais tomadas de posição, novamente, a posição está clara quando a trajetória oposta é quebrada.
A estratégia usa a função barssince para rastrear o preço em relação ao número de rupturas na trajetória ascendente e descendente. Quando o número de colunas de ruptura na trajetória ascendente é menor que o número de colunas na trajetória descendente, o sinal de quebra é gerado.
Ao ajustar os parâmetros do ciclo orbital médio e os parâmetros do múltiplo de diferença padrão, pode-se alterar a sensibilidade de ruptura da faixa de Brin para ajustar o tempo de entrada.
A estratégia de ondas FiboBuLL tem as seguintes vantagens:
A estratégia de ondas FiboBuLL também tem alguns riscos a serem observados:
Para os riscos acima mencionados, é possível otimizar os seguintes aspectos:
A estratégia de ondas FiboBuLL tem algumas melhorias importantes:
Otimizando alguns dos pontos acima, pode-se aumentar significativamente a estabilidade e a lucratividade da estratégia de ondas FiboBuLL.
A estratégia de onda FiboBuLL usa os princípios básicos da faixa de Brin para determinar a ruptura do preço e o retorno ao centro da trajetória, para rastrear a oscilação do preço no meio da trajetória e para baixo, e para formar um sinal de negociação com a ruptura. A estratégia é simples em conceito, de ampla aplicação e é uma maneira eficaz de rastrear a volatilidade do mercado.
No entanto, a mera dependência de uma brecha pode levar a um sinal errado e a uma brecha impotente. Portanto, é necessário combinar a tendência, o volume de transações e outros fatores para avaliar a confiabilidade da brecha e definir o risco de controle de parada de perdas para que a estratégia seja mais eficaz.
A estratégia de ondas FiboBuLL fornece-nos uma estrutura básica para determinar a hora de negociar com base nas flutuações de preços. A estratégia pode ser uma ferramenta poderosa para a tomada de decisões de negociação em um processo de otimização contínua e em conjunto com outros indicadores.
/*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')