juin 25, 2019

Présentation de Pine Script v4!

Découvrez la nouvelle version du langage de programmation Pine Script v4! Elle comprend quelques nouvelles fonctionnalités. Nous avons amélioré la structure du langage et résolu un certain nombre de problèmes. Cependant, la fonctionnalité la plus cruciale et attendue depuis longtemps est qu’elle supporte désormais le dessin des objets.

Nous allons mentionner brièvement les nouvelles fonctionnalités dans ce blog. Veuillez lire la documentation et le manuel de référence si vous souhaitez en connaître les détails (notez que vous pouvez aller directement à la section de description de dessin des objets).

 

Objet de dessin d’étiquette

La fonction label.new vous permet de dessiner des étiquettes sur le graphique, y compris celles qui contiennent du texte arbitraire. Voici un exemple de script qui dessine une étiquette contenant la fermeture de la dernière barre:

//@version=4
study("Last Bar Price", overlay=true)

l = label.new(bar_index, na, 'last price is '+tostring(close), 
  color=close >= open ? color.green : color.red, 
  textcolor=color.white,
  style=label.style_labeldown, yloc=yloc.abovebar)

label.delete(l[1])

Vous pouvez modifier et supprimer l’objet étiquette après l’avoir créé à l’aide de la famille de fonctions   label. *  Voici un exemple de script plus complexe utilisant l’étiquette – Points de pivot haut / bas.

 

Objet de dessin de ligne

La fonction line.new vous permet de tracer des lignes sur le graphique. Voici un exemple de script simple qui trace une ligne reliant le haut de la barre actuelle au bas d’une 10e barre historique:

//@version=4
study("Line", overlay=true)
l = line.new(bar_index, high, bar_index[10], low[10], width = 4)
line.delete(l[1])

Les objets lignes peuvent être modifiés et supprimés à l’aide des fonctions appropriées de la famille line. *. Voici un exemple de script plus complexe utilisant des objets lignes – Zig Zag.

Veuillez noter que nous pouvons actuellement afficher un total d’environ 50 à 55 dessins d’un seul type (étiquette ou ligne) par script sur le graphique. Ceci est une limitation volontaire destinée à empêcher une utilisation excessive du serveur.

Les nouveaux types de données de ligne et d’étiquette améliorent considérablement les capacités de Pine Script, en vous permettant d’implémenter une logique complexe derrière les indicateurs populaires des scripts utilisateur. Des exemples peuvent être trouvés dans la documentation.

 

Séries de données

Nous supportons maintenant les variables du type séries de données. Voici un exemple d’utilisation de séries de données dans les étiquettes:

//@version=4
study("Series string", overlay = true)
draw_label(title) =>
    label.new(bar_index, high, text=title)
t = close >= open ? "green" : "red"
draw_label(t)

Mot-clé var

Une variable déclarée de la manière habituelle est réinitialisée à chaque calcul du script. Cela nécessitait des scripts pour propager explicitement la valeur précédente de la variable. Le mot clé var déclare une variable et l’initialise une seule fois. Cela permet à la valeur de la variable d’être automatiquement enregistrée entre les barres à partir du moment de l’initialisation ou de la dernière affectation. Voici un exemple de script qui compte le nombre de barres vertes sur le graphique:

//@version=4
study("My Script")
var s = 0.0
if close >= open
    s := s + 1
plot(s)

Chaque fois que la condition clôture> = ouverture est remplie, la valeur de la variable s augmente de un. La valeur d’initialisation peut être n’importe quelle expression arithmétique.

La syntaxe utilisée pour déclarer des variables avec le mot clé var évite l’utilisation du code suivant: s: = nz (s [1], s). Déclarer des variables avec le modificateur var peut être très utile lorsque vous travaillez avec des dessins.

 

Nouveau nom des constantes, des variables et des fonctions intégrées

Dans Pine Script v4, les constantes, variables et fonctions intégrées suivantes ont été renommées:

1. Les constantes de couleur (par exemple le rouge) sont déplacées vers l’espace de noms color. * (Par exemple, color.red).

2. La fonction de couleur a été renommée en color.new.

3. Les constantes pour les types d’entrée (par exemple, un entier) sont déplacées vers l’espace de noms. * (Par exemple, input.integer).

4. Les constantes de style de tracé (par exemple, le style d’histogramme) sont déplacées vers l’espace de noms plot.style_ * (par exemple, plot.style_histogram)

5. Les constantes de style pour la fonction hline (par exemple, le style pointillé) sont déplacées vers l’espace de noms hline.style_ * (par exemple, hline.style_dotted).

6. Les constantes des jours de la semaine (par exemple dimanche) sont déplacées vers l’espace de noms dayofweek. * (Par exemple dayofweek.sunday).

7. Les variables de la période actuelle du graphique (par exemple, période, isintraday) sont déplacées vers l’espace de nom. * (Par exemple, timeframe.period, timeframe.isintraday).

8. La variable d’intervalle a été renommée en timeframe.multiplier.

9. Les variables ticker et tickerid sont renommées respectivement syminfo.ticker et syminfo.tickerid.

10. La variable n qui contient la valeur d’indice de barre a été renommée bar_index.

La raison pour laquelle tout ce qui précède a été renommé était de structurer les outils de langage standard et de faciliter l’utilisation du code. Les nouveaux noms sont regroupés en fonction des attributions sous des préfixes communs. Par exemple, vous verrez une liste avec toutes les constantes de couleur disponibles si vous tapez « color » dans l’éditeur et appuyez sur Ctrl + Espace.

 

Déclaration explicite du type de variable

Dans Pine Script v4, il n’est plus possible de créer des variables avec un type de données inconnu au moment de leur déclaration (voir la valeur na). Cela a été fait pour éviter un certain nombre de problèmes qui surviennent lorsque le type de variable change après son initialisation avec la valeur na. À partir de maintenant, vous devez spécifier explicitement leur type à l’aide de mots-clés ou de type de fonctions (par exemple, float) lors de la déclaration de variables avec la valeur na:

//@version=4
study("NA", overlay=true)
float a = na
a := if close >= open
    high
else
    low
plot(a)

Essayez le nouveau Pine Script v4! Certains utilisateurs ont déjà testé de nouvelles fonctionnalités et ont écrit plusieurs scripts impressionnants à l’aide de dessins.

Par exemple, Ricardo Santos a écrit une série de scripts que vous pouvez voir ci-dessous:

 

 

 

 

 

Joris Duyck a écrit le script Lignes de tendances, illustrant les possibilités du dessin de lignes.

Nous espérons que ces exemples vont vous inspirer! Vous pouvez poser des questions, discuter de problèmes et partager vos commentaires sur notre chat. Nous tenons à remercier tous les membres de la communauté Pinescripters, qui ont pris part aux tests bêta et nous ont beaucoup aidés! Vous pouvez également poser des questions relatives au code sur notre page Stack Overflow.