Pivot Berasaskan Trailing Maxima & Minima

Penulis:ChaoZhang, Tarikh: 2022-05-25 18:18:49
Tag:Pivot

Indikator ini mengembalikan maksimum/minimum yang tertinggal dan purata penyesuaian semula mereka pada kejadian titik pivot tinggi/rendah, sehingga membolehkan pencahayaan tahap sokongan dan rintangan masa lalu dan semasa.

Tetapan

Panjang: Menentukan pandangan tinggi / rendah pivot, dengan nilai yang lebih tinggi yang membolehkan mengesan puncak dan bawah jangka panjang.

Penggunaan

gambar ringkas

Indikator ini boleh menonjolkan titik sokongan dan rintangan - ini adalah titik di mana harga melompat dari garis purata.

gambar ringkas

Maksimum/minimum belakang dan purata mereka meluas ke bar yang paling baru, yang membolehkan aplikasi masa nyata penunjuk.

Di samping itu, pengguna boleh dengan mudah menganalisis trend masa lalu dan menentukan jenisnya dengan memerhatikan tingkah laku maksimum / minimum.

gambar ringkas

Kekerapan tinggi baru yang lebih tinggi/rendah yang lebih rendah juga dapat membantu menentukan bagaimana tren menaik / menurun.

Ujian belakang

img


/*backtest
start: 2022-02-24 00:00:00
end: 2022-05-23 23:59:00
period: 1d
basePeriod: 1h
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("Pivot Based Trailing Maxima & Minima [LUX]",overlay=true,max_bars_back=500,max_lines_count=500)
length = input.int(14,minval=2,maxval=500)

max_color = input.color(color.teal,'Trailing Maximum Color',group='Style')
min_color = input.color(color.red,'Trailing Minimum Color',group='Style')
avg_color = input.color(#ff5d00,'Trailing Maximum Color',group='Style')

bull_fill = input.color(color.new(color.teal,80),'Uptrend Area',group='Style')
bear_fill = input.color(color.new(color.red,80),'Downtrend Area',group='Style')
//----
var max = 0.
var min = 0.

ph = ta.pivothigh(length,length)
pl = ta.pivotlow(length,length)

if ph or pl
    max := high[length]
    min := low[length]

max := math.max(high[length],max)
min := math.min(low[length],min)

avg = math.avg(max,min)

//----
plot1 = plot(max,'Trailing Maximum',ph or pl ? na : max_color,1,plot.style_linebr,offset=-length)
plot2 = plot(min,'Trailing Minimum',ph or pl ? na : min_color,1,plot.style_linebr,offset=-length)

fill_css = fixnan(ph ? bear_fill : pl ? bull_fill : na)
fill(plot1,plot2,ph or pl ? na : fill_css)

plot(avg,'Average',ph or pl ? na : avg_color,1,plot.style_linebr,offset=-length)

plotshape(pl ? pl : na,"Pivot High",shape.labelup,location.absolute,max_color,-length,text="▲",textcolor=color.white,size=size.tiny)
plotshape(ph ? ph : na,"Pivot Low",shape.labeldown,location.absolute,min_color,-length,text="▼",textcolor=color.white,size=size.tiny)

// //----
// n = bar_index

// max_prev = max
// min_prev = min
// avg_prev = avg
// max2 = max
// min2 = min

// if barstate.islast
//     for line_object in line.all
//         line.delete(line_object)

//     for i = 0 to length-1
//         max2 := math.max(high[length-1-i],max_prev)
//         min2 := math.min(low[length-1-i],min_prev)
//         avg2 = math.avg(max2,min2)
        
//         line1 = line.new(n-(length-i),max_prev,n-(length-1-i),max2,color=max_color)
//         line2 = line.new(n-(length-i),min_prev,n-(length-1-i),min2,color=min_color)
//         linefill.new(line1,line2,color.new(fill_css,80))
        
//         line.new(n-(length-i),avg_prev,n-(length-1-i),avg2,color=avg_color)
        
//         max_prev := max2
//         min_prev := min2
//         avg_prev := avg2



if pl
    strategy.entry("Enter Long", strategy.long)
else if ph
    strategy.entry("Enter Short", strategy.short)

Berkaitan

Lebih lanjut