March 12, 2021

Organisez les entrées de script en sections et en lignes

Notre dernière mise à jour Pine apporte deux améliorations aux entrées :

  • Le nouveau paramètre groupe permet aux programmeurs de définir une en-tête de section pour un groupe d’entrées.
  • Le nouveau paramètre inline permet de joindre plusieurs entrées sur une même ligne.

En utilisant ces nouvelles fonctionnalités, vous pouvez organiser les entrées de manière plus ordonnée, comme nous le faisons ici pour l’indicateur Retracement Automatique de Fibonacci.

L’utilisation des nouveaux paramètres dans vos scripts est facile ! Regardez cet exemple d’indicateur VWAP, qui permet aux utilisateurs de spécifier les points de début et de fin des calculs, et de contrôler l’affichage des ancres :

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

L’argument groupe est utilisé de deux façons. La chaîne de caractères est utilisée comme en-tête pour le groupe, et elle définit également quelles entrées appartiennent à ce groupe.

Lorsqu’un argument inline est utilisé, tous les appels input() utilisant le même argument inline seront réunis sur une seule ligne. L’argument titre de chaque appel input() détermine la légende du champ. Si aucun argument de titre n’est utilisé dans l’appel input(), aucune légende ne sera utilisée pour le champ. Si les entrées combinées à l’aide d’inline ne tiennent pas sur une ligne, certaines d’entre elles passeront à la suivante.

Vous pouvez trouver une description des nouveaux paramètres sous l’entrée input() du manuel de référence de Pine.

Pour en savoir plus sur toutes les mises à jour de Pine, consultez les notes de lancement de notre manuel d’utilisation.

Nous espérons que vous trouverez cette fonctionnalité très demandée utile. Continuez à nous envoyer vos commentaires pour nous permettre de nous améliorer. Nous construisons TradingView pour nos utilisateurs et aimons avoir de vos nouvelles.

Look first / Then leap

Ouvrir le graphique