Progressão de Fibonacci com quebras

Autora:ChaoZhang, Data: 2022-05-17 10:24:46
Tags:ATR

Este indicador destaca os pontos em que o preço se desvia significativamente de um nível central. Esta distância de desvio é determinada por um valor definido pelo usuário ou usando um múltiplo de um período 200 Atr e é multiplicado por valores sucessivos da sequência de Fibonacci.

Configurações

Método: Método de distância, as opções incluem Manual ou Atr Tamanho: Distância em pontos se o método selecionado for Manual ou multiplicador Atr se o método selecionado for Atr Duração da sequência: Determina o número máximo de desvios significativos permitidos.

Utilização

O indicador permite destacar potenciais pontos de inversão, mas também pode determinar tendências utilizando o nível central, com uma tendência ascendente detectada se o nível central for superior ao seu valor anterior e vice-versa para uma tendência descendente.

Quando uma tendência de alta é detectada, e o preço se desvia significativamente para cima dele, um primeiro marco será destacado ao lado da sequência de Fibonacci usada como multiplicador, se o preço se desviar para baixo, uma cruz será mostrada em vez disso, então o limiar de distância será multiplicado pelo próximo valor na sequência de Fibonacci.

Se o preço se desviar do nível central de modo que o comprimento da sequência seja maior do que o comprimento da sequência definido pelo usuário, um rótulo de quebra será exibido ao lado de um novo nível central com um valor determinado pelo preço de fechamento atual, enquanto o multiplicador de Fibonacci será redefinido para 1.

As extremidades superior e inferior feitas a partir do nível central e da distância do limiar são destacadas e podem ser utilizadas como suporte e resistência.

backtest

img


/*backtest
start: 2022-04-10 00:00:00
end: 2022-05-07 23:59:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © LuxAlgo

//@version=5
indicator("Fibonacci Progression With Breaks [LUX]",overlay=1,max_labels_count=500,max_lines_count=500)
method = input.string('Atr',options=['Atr','Manual'],inline='inline1')
size   = input(1.,'',inline='inline1')
max    = input(3,'Sequence Length')
//----
var fib = array.from(1,1)
var dist = 0.,var avg = 0.,var fib_n = 1,var os = 0

src = close
n = bar_index

if barstate.isfirst
    for i = 1 to max
        array.push(fib,array.get(fib,i-1) + array.get(fib,i))
//----
if method == 'Atr'
    dist := ta.atr(200)*size*array.get(fib,fib_n)
else
    dist := size*array.get(fib,fib_n)

fib_n := math.abs(src-avg) > dist ? fib_n+1 : fib_n
avg := nz(fib_n > max+1 ? src : avg[1],src)
fib_n := fib_n > max+1 ? 1 : fib_n

buy = avg > avg[1]
sell = avg < avg[1]
os := buy ? 1 : sell ? 0 : os

tp = avg != avg[1] ? na : os == 1 ? avg + dist : avg - dist
sl = avg != avg[1] ? na : os == 0 ? avg + dist : avg - dist
//----
css = os == 1 ? #0cb51a : #ff1100
plot0 = plot(src,color=na)
plot1 = plot(avg,color=na)
fill(plot0,plot1,color.new(css,80))
//----
plotshape(buy ? low : na,"Buy Label",shape.labelup,location.absolute,#0cb51a,0,text="B",textcolor=color.white,size=size.tiny)
plotshape(sell ? high : na,"Sell Label",shape.labeldown,location.absolute,#ff1100,0,text="S",textcolor=color.white,size=size.tiny)

plot(tp,'Target',#0cb51a,1,plot.style_linebr)
plot(sl,'Stop',#ff1100,1,plot.style_linebr)


if buy
    strategy.entry("Enter Long", strategy.long)
else if sell
    strategy.entry("Enter Short", strategy.short)

Relacionados

Mais.