Quoi de neuf dans Pine ?

Apr 9, 2021

Toutes les mises à jour de Pine ne justifient pas un article de blog spécifique, mais on ne sait jamais quand une nouvelle fonctionnalité peut s’avérer utile pour coder vos scripts. Ce billet présente les améliorations récentes qui ont pu vous échapper.

Le mot-clé varip est utile lorsque vous souhaitez garder la trace de certaines données et de leur évolution dans la barre en temps réel. Toutes les variables régulières de Pine sont sujettes à ce qu’on appelle un rollback, où à chaque nouveau tick de données, l’état de la variable est remis à sa valeur de la barre précédente avant d’évaluer les nouvelles données. Le mot-clé varip échappe à ce phénomène et vous permet de comparer la valeur actuelle d’une variable avec sa valeur au tick précédent (par opposition à la barre précédente), ce qui ouvre un tout nouveau monde de possibilités. Jetez un coup d’œil à un graphique en ticks créé par l’un de nos Magiciens de Pine LonesomeTheBlue:

https://www.tradingview.com/script/ygNO2G1V-Tick-Chart/

Pour en savoir plus, lisez le tutoriel approfondi sur varip b par nos PineCoders

https://www.tradingview.com/script/ppQxBISk-Using-varip-variables-PineCoders/

Pour ceux d’entre vous qui voulaient plus de mathématiques dans Pine, nous avons maintenant un ensemble de nouvelles fonctions et constantes liées aux mathématiques:

  • Nouvelles constantes math.pi, math.phi, math.rphi et math.e
  • Nouvelle fonctionnalité round() – la fonction vous permet maintenant de spécifier la précision de l’arrondi, au lieu de toujours arrondir à l’entier le plus proche.
  • median()
  • mode()
  • range()
  • todegrees()
  • toradians()
  • random()

Voici une stratégie pour celles et ceux d’entre vous qui aiment aussi vivre dangereusement : toutes les entrées et sorties sont randomisées sur la base des pourcentages spécifiés dans la section Inputs, grâce à la fonction random() :

//@version=4
strategy("I’m feeling lucky", overlay=true)
seed = input(1, "Seed, increase to recalculate the strategy", minval=1)
entryPerc = input(20.0, "Entry chance, %", minval=0.0, maxval=100.0)
exitPerc = input(10.0, "Exit chance, %", minval=0.0, maxval=100.0) 
roll = random(0, 100, seed)
positionSize = floor(random(1, (strategy.equity / close), seed))
if roll < entryPerc
    strategy.entry("My Long Entry Id", strategy.long, qty=positionSize)
if roll < exitPerc
    strategy.close_all()

Autre évolution, l’opérateur d’affectation := a été fusionné avec les opérateurs arithmétiques pour créer les nouveaux opérateurs d’affectation +=, -=, *=, /= et %=. Ceux-ci vous permettent de mettre de l’ordre dans vos scripts et de les raccourcir : au lieu d’utiliser : = a + 1, vous pouvez simplement écrire a += 1. Une petite amélioration, mais très pratique.

Si vous avez déjà eu besoin de convertir une chaîne de caractères en un nombre, la nouvelle fonction tonumber() vous permet de le faire. Par exemple, dans le script ci-dessous, tonumber(), en conjonction avec d’autres fonctions liées aux chaînes de caractères comme str.split() et str.replace_all(), permet à un seul champ de saisie de chaîne de caractères de renvoyer plusieurs valeurs entières qui sont ensuite utilisées comme longueurs pour les calculs SMA. Il n’y a pas de raison impérieuse de procéder de cette manière au lieu de la manière correcte et pratique « une entrée séparée pour chacun des SMA »… Mais si vous en avez besoin, c’est ici :

//@version=4
study("My SMAs", overlay=true)
sma_lengths = input("5, 10, 20, 30, 50", title = "SMA Lengths (separated by comma)")
sma_lengths_array = str.split(str.replace_all(sma_lengths, " ", ""), ",")
sma_len(index) =>
    index > array.size(sma_lengths_array) - 1 ? 10 :
     int(tonumber(array.get(sma_lengths_array, index)))
sma0 = sma(close, sma_len(0))
sma1 = sma(close, sma_len(1))
sma2 = sma(close, sma_len(2))
sma3 = sma(close, sma_len(3))
sma4 = sma(close, sma_len(4))
plot(sma0, color=color.blue)
plot(sma1, color=color.red)
plot(sma2, color=color.green)
plot(sma3, color=color.orange)
plot(sma4, color=color.purple)

Nous avons ajouté une variable time_tradingday, qui renvoie l’horodatage UNIX du début de la journée de trading. Cela s’avérera utile lors de l’analyse de symboles qui sont tradés la nuit, comme l’EURUSD, où le trading commence le dimanche alors que techniquement, le jour de trading est en fait le lundi.

La nouvelle fonction time_close() vous permet d’obtenir l’heure de clôture d’une barre à partir d’un cadre temporel et d’une session spécifiés (contrairement à la variable time_close existante, qui ne fonctionne qu’avec le cadre temporel/session du graphique). Ceci est particulièrement utile pour les dessins, vous permettant de tracer des lignes et des étiquettes dans le futur avec plus de précision. Pour le voir en action, consultez la vision de JayRogers sur l’indicateur des points de pivot :

https://www.tradingview.com/script/7EwXUkBE-Pivotal-Multi-Pivot-Selector/

Avec le nouveau paramètre format.percent de study(), la sortie de votre script peut désormais être automatiquement formatée en pourcentage. Observez cette fonction en action avec notre indicateur Aroon intégré :

//@version=4
study(title="Aroon", shorttitle="Aroon", overlay=false, format=format.percent, precision=2, resolution="")
length = input(14, minval=1)
upper = 100 * (highestbars(high, length+1) + length)/length
lower = 100 * (lowestbars(low, length+1) + length)/length
plot(upper, "Aroon Up", color=#FF6A00)
plot(lower, "Aroon Down", color=#0094FF)

Trois nouvelles variables, session.ismarket, session.ispremarket et session.ispostmarket, vous permettent de vérifier la partie de la session intraday à laquelle la barre actuelle est liée. Notez que les heures prolongées n’apparaissent que sur les graphiques intraday, et seulement lorsque l’option est explicitement activée dans les paramètres.

Si vous voulez être informé des mises à jour de Pine dès qu’elles se produisent, surveillez les Notes de Publication dans notre manuel d’utilisation. Les PineCoders diffusent également des informations sur les mises à jour sur leur chaîne Telegram Squawk Box, sur Twitter et dans le chat public Pine Script sur TradingView.

Nous espérons que vous trouverez ces améliorations utiles. Continuez à nous envoyer vos commentaires. Nous construisons TradingView pour nos utilisateurs et nous aimons avoir de vos nouvelles.

Look first Then leap

TradingView est conçu pour vous, assurez-vous donc de profiter au maximum de nos fonctionnalités exceptionnelles
Ouvrir le graphique