March 12, 2021

Organizuj parametry wejściowe skryptu w sekcjach i liniach.

Nasza najnowsza aktualizacja Pine wprowadza dwa ulepszenia do argumentów:

  • Nowy parametr group pozwala programistom zdefiniować nagłówek sekcji dla grupy argumentów.
  • Nowy parametr inline pozwala na łączenie wielu danych wejściowych w jednej linii. 

Używając tych nowych funkcji, możesz organizować argumenty w sposób bardziej uporządkowany, tak jak ma to miejsce w przypadku wskaźnika Auto Zniesienia Fibo.

Korzystanie z nowych parametrów w skryptach jest łatwe! Spójrz na poniższy przykład wskaźnika VWAP, który pozwala użytkownikom określić punkt początkowy i końcowy obliczeń oraz kontrolować wyświetlanie kotwic:

//@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)

Argument group jest używany na dwa sposoby. Ciąg ten jest używany jako nagłówek grupy oraz określa, które dane wejściowe należą do tej grupy.

Gdy użyty jest argument inline, wszystkie wywołania funkcji input() używające tego samego argumentu inline będą połączone w jednej linii. Argument title każdego wywołania funkcji input() określa legendę pola. Jeśli w wywołaniu funkcji input() nie użyto argumentu title, to dla pola nie zostanie użyta legenda. Jeśli dane wejściowe połączone przy użyciu inline nie mieszczą się w jednej linii, to niektóre z nich zostaną zawinięte do kolejnego wiersza.

Opis nowych parametrów możesz znaleźć w Dokumentacji języka skryptowego Pine pod wpisem input().

Przeczytaj o wszystkich aktualizacjach języka Pine w Informacjach o Wersji.

Mamy nadzieję, że ta długo oczekiwana funkcja okaże się dla Ciebie użyteczna. Jak zwykle czekamy na Wasze opinie i sugestie dotyczące kolejnych usprawnień. Tworzymy TradingView dla naszych użytkowników i cieszymy się, gdy do nas piszesz.

Look first / Then leap

Otwórz wykres