Beberapa Fungsi Pine Kini Menyokong Argumen Panjang Dinamik

Sep 9, 2020

Pengekod Pine kini boleh panjang yang dikira secara dinamik dalam fungsi-fungsi berikut:

alma()
change()
highest()
highestbars()
linreg()
lowest()
lowestbars()
mom()
sma()
sum()
vwma()
wma()

Panjang bersiri akan menjadikannya lebih mudah untuk mencipta penunjuk Pine boleh suai. Lihat contoh berikut, bagaimana kami menggunakan ketaktentuan untuk memendekkan atau memanjangkan tempoh ALMA di garis tebal dan bandingkannya dengan ALMA statik yang ditunjukkan dengan garis pendek:

//@version=4
study("Adaptive ALMA", "AALMA", true)
i_minLen    = input(10, minval = 1)
i_maxLen    = input(60, minval = 1)
i_adaptPct  = input(3., minval = 0, maxval = 100) / 100.0

startingLen = avg(i_minLen, i_maxLen)
var float dynamicLen = startingLen
highVolatility = atr(10) > atr(40)
if highVolatility
    dynamicLen := max(i_minLen, dynamicLen * (1 - i_adaptPct))
else
    dynamicLen := min(i_maxLen, dynamicLen * (1 + i_adaptPct))
dynamicAlma = alma(close, int(dynamicLen),  0.85, 6)
staticAlma  = alma(close, int(startingLen), 0.85, 6)

maColor(_ma) => close > _ma ? highVolatility ? #40FF00ff : #40FF0060 : highVolatility ? #FF0080ff : #FF008060
plot(dynamicAlma, "Dynamic Alma", maColor(dynamicAlma), 3)
plot(staticAlma,  "Static Alma",  maColor(staticAlma),  1)
// Follow the calculated Length in the Data Window.
plotchar(dynamicLen, "dynamicLength", "")

Walaupun mudah untuk menggunakan floats untuk mengira panjang secara dinamik, sila ingat untuk ‘cast’ mereka kepada “int” terlebih dahulu sebelum menggunakannya dalam panggilan fungsi. Juga perlu ingat, fungsi ini memerlukan penilaian di setiap bar, jadi ia seharusnya digunakan di luar lingkaran ‘for’ dan blok ‘if’ yang tidak dilaksanakan di setiap bar.

Kami berharap ciri ini berguna untuk anda. Kami sentiasa mengalu-alukan maklum balas anda.

Look first Then leap

TradingView dibina untuk anda, pastikan anda memanfaatkan semua ciri-ciri hebat kami
Lancarkan Carta