Mengorganisir Input Skrip dalam Bagian dan Baris

Mar 12, 2021

Update Pine terbaru kami memperkenalkan dua pembaruan terhadap input:

    • Parameter group baru yang memungkinkan pemrogram untuk menentukan awalan dari bagian akan sebuah grup input.

    Parameter inline baru yang memungkinkan beberapa input untuk digabungkan dalam satu baris.

Dengan menggunakan fitur baru ini anda dapat mengorganisir input secara lebih baik sebagaimana yang kami lakukan disini pada indikator Auto Fib Retracement.

Menggunakan parameter baru ini didalam skrip anda sangatlah mudah! Lihatlah contoh dibawah ini akan sebuah indikator VWAP, yang memungkinkan para pengguna untuk menentukan titik awal dan akhir kalkulasinya, serta mengendalikan tampilan jangkarnya:

//@version=4
study(title = "Custom Period VWAP", shorttitle = "CPVWAP", overlay = true)

src = input(hlc3, "Source", input.source)
enableHighlight = input(true, "Highlight", input.bool, inline = "Highlight")
highlightType = input("Anchors", "", input.string, options = ["Anchors", "Background"], inline = "Highlight")
highlightColor = input(color.red, "", input.color, inline = "Highlight")
useStartPeriodTime = input(true, "Start", input.bool, group = "Date Range", inline = "Start Period")
startPeriodTime = input(timestamp("20 Jan 2021"), "", input.time, group = "Date Range", inline = "Start Period")
useEndPeriodTime = input(true, "End", input.bool, group = "Date Range", inline = "End Period")
endPeriodTime = input(timestamp("20 Feb 2021"), "", input.time, group = "Date Range", inline = "End Period")

start = useStartPeriodTime ? startPeriodTime >= time : false
end = useEndPeriodTime ? endPeriodTime <= time : false
calcPeriod = not start and not end

var srcVolArray = array.new_float(na)
var volArray = array.new_float(na)
var line startAnchor = line.new(na, na, na, na, xloc.bar_time, extend.both, highlightColor, width = 2)
var line endAnchor = line.new(na, na, na, na, xloc.bar_time, extend.both, highlightColor, width = 2)
useBgcolor = false

if calcPeriod
    array.push(srcVolArray, src*volume)
    array.push(volArray, volume)
else
    array.clear(srcVolArray), array.clear(volArray)

customVwap = array.sum(srcVolArray) / array.sum(volArray)
if enableHighlight
    if highlightType == "Anchors"
        if useStartPeriodTime
            line.set_xy1(startAnchor, startPeriodTime, low)
            line.set_xy2(startAnchor, startPeriodTime, high)
        if useEndPeriodTime
            line.set_xy1(endAnchor, not na(customVwap) ? time : line.get_x1(endAnchor), low)
            line.set_xy2(endAnchor, not na(customVwap) ? time : line.get_x1(endAnchor), high)
    if highlightType == "Background"
        useBgcolor :=  true

bgcolor(useBgcolor and calcPeriod ? highlightColor : na, editable = false)
plot(customVwap, title="CPVWAP", color = color.blue, linewidth = 2)

Argumen group digunakan dalam dua cara. String digunakan sebagai header bagi grupnya, juga menentukan input mana yang menjadi bagian dari grup tersebut.

Saat sebuah argumen inline digunakan. Seluruh panggilan input() yang menggunakan argumen inline yang sama akan digabungkan dalam satu baris. Argumen title untuk setiap panggilan input() menentukan legenda kolomnya. Jika tidak ada argumen title yang digunakan didalam panggilan input() maka tidak ada legenda yang akan digunakan untuk kolomnya. Jika input yang diabungkan menggunakan inline tidak cukup didalam satu baris, beberapa diantaranya akan dipaskan pada baris berikutnya.

Anda dapat menemukan sebuah deskripsi dari parameter baru ini pada Manual Referensi Pine untuk input().

Baca lebih lanjut mengenai seluruh update terhadap Pine pada Catatan Rilis Manual Pengguna kami.

Kami harap anda menyukai update ini. Harap terus kirimkan kritik dan saran pembaruan anda. Kami membangun TradingView untuk seluruh pengguna kami dan kami senang dapat mendengar pendapat anda.

Look first Then leap

TradingView dibangun untuk anda, karenanya manfaatkan fitur-fitur luar biasa kami semaksimal mungkin
Luncurkan Chart