0 beğenilme 0 beğenilmeme
24 kez görüntülendi
indicator('Faytterro Bands', overlay = true, max_lines_count = 500, max_bars_back = 500)

src = input(hlc3, title = 'source')

len = input.int(50, title = 'lenght', maxval = 500)

 

cr(x, y) =>

    z = 0.0

    weight = 0.0

    for i = 0 to y - 1 by 1

        z := z + x[i] * ((y - 1) / 2 + 1 - math.abs(i - (y - 1) / 2))

        z

    z / ((y + 1) / 2 * (y + 1) / 2)

cr = cr(src, 2 * len - 1)

 

width = 2

 

//plot(cr, color= #cf0202, linewidth=width,offset=-len+1)

 

var dizii = array.new_float(500)

for k = 0 to len - 1 by 1

    sum = 0.0

    for i = 0 to 2 * len - 2 - k by 1

        sum := sum + (len - math.abs(len - 1 - k - i)) * src[i] / (len * len - k * (k + 1) / 2)

        sum

    array.set(dizii, k, sum)

 

mult = input.float(2.0, minval = 0.001, maxval = 50, title = 'StdDev')

dev = mult * ta.stdev(src, len)

nmid = ta.wma(src, len)

nupper = nmid + ta.wma(dev,len)

nlower = nmid - ta.wma(dev,len)

//plot(nmid)

//plot(nlower)

//plot(nupper)

upper = cr + cr(dev, 2 * len - 1)

lower = cr - cr(dev, 2 * len - 1)

cu = input.color(color.rgb(255, 137, 137), 'upper band color')

cl = input.color(color.rgb(137, 255, 97), 'lower band color')

plot(lower, color = cl, offset = 1 - len, linewidth = 2, display = display.pane)

plot(upper, color = cu, offset = 1 - len, linewidth = 2, display = display.pane)

dashed = input.bool(false)

transp = input.bool(true)

d = dashed ? 2 : 1

tra = transp ? 1 : 0

// extrapolation

var diz = array.new_float(500)

var lin = array.new_line()

var diz2 = array.new_float(500)

var lin2 = array.new_line(0)

// Extrapolation - dynamic lines that redraw every bar

if bar_index > len

    // Önceki çizgileri sil (varsa)

    if array.size(lin) > 0

        for i = 0 to array.size(lin) - 1

            line.delete(array.get(lin, i))

        array.clear(lin)

 

    if array.size(lin2) > 0

        for i = 0 to array.size(lin2) - 1

            line.delete(array.get(lin2, i))

        array.clear(lin2)

 

    // Yeni extrapolation hesapla

    for k = 0 to len - 1 by 1

        sum = 0.0

        dv = 0.0

        for i = 0 to 2 * len - 2 - k by 1

            sum := sum + (len - math.abs(len - 1 - k - i)) * src[i] / (len * len - k * (k + 1) / 2)

            dv := dv + (len - math.abs(len - 1 - k - i)) * dev[i] / (len * len - k * (k + 1) / 2)

        array.set(diz, k, sum + dv)

        array.set(diz2, k, sum - dv)

 

    // Yeni çizgileri oluştur

    for i = 0 to len / d - 2 by 1

        l1 = line.new(

             bar_index + i * d + 1 - len, array.get(diz, i * d),

             bar_index + i * d + 2 - len, array.get(diz, i * d + 1),

             width = width,

             color = color.new(cu, tra * i * 95 / (len / d - 1))

         )

        array.push(lin, l1)

 

        l2 = line.new(

             bar_index + i * d + 1 - len, array.get(diz2, i * d),

             bar_index + i * d + 2 - len, array.get(diz2, i * d + 1),

             width = width,

             color = color.new(cl, tra * i * 95 / (len / d - 1))

         )

        array.push(lin2, l2)

 

plot(array.get(diz, len - 1), color = color.new(cu, 100))

plot(array.get(diz2, len - 1), color = color.new(cl, 100))

//plot(array.get(dizii, len - 1), color = color.new(cl, 10))

alertcondition(ta.crossover(close, array.get(diz, len - 1)) or ta.crossunder(close, array.get(diz2, len - 1)), title = 'faytterro bands alert', message = 'warning! this is an early warning alert, not a buy or sell signal. Remember that the indicator repaints to a limited extent on the last bars.')
önce Grafik kategorisinde (82 puan) tarafından | 24 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme
Merhabalar,

For döngüsünün karşılığı olmadığından kaynaklı maalesef olumsuz dönüş sağlamaktayız

iyi çalışmalar
önce (36,218 puan) tarafından
9,639 soru
9,600 cevap
5,177 yorum
45,996 kullanıcı