Dé-buggez votre code Pine Script® avec Pine Logs

Aug 29, 2023

Faites passer votre débogage Pine Script® à un autre niveau avec nos nouvelles fonctions log.*(), qui affichent du texte dans le nouveau panneau Pine Logs au fur et à mesure que le script s’exécute. Les trois nouvelles fonctions de journalisation sont:

  • log.error() crée des messages de type « Erreur » affichés en rouge.
  • log.info() crée des messages de type « Info » affichés en gris.
  • log.warning() crée des messages de type « Avertissement » affichés en orange.

Vous pouvez visualiser les Pine Logs en sélectionnant « Pine Logs… » dans le menu « Plus » de l’éditeur, ou dans le menu « Plus » d’un script chargé sur votre carte s’il utilise les fonctions log.*().

Les Pine Logs fonctionnent partout: sur des barres historiques, en temps réel et en mode Replay. Les fonctions de journalisation peuvent être appelées depuis n’importe quel type de script (indicateur, stratégie ou bibliothèque) et depuis n’importe quel endroit du script, y compris les blocs locaux, les boucles et à l’intérieur de request.security() et de fonctions similaires. Vous pouvez appeler les fonctions de journalisation de deux manières: en utilisant uniquement un argument de type chaîne, ou en utilisant une chaîne de formatage et une liste de valeurs à la manière de str.format().

Les scripts utilisant des journaux doivent être des scripts personnels ; les scripts publiés en privé ou en public ne peuvent pas générer de journaux, même s’ils contiennent des appels aux fonctions log.*().

L’exemple de code suivant utilise les trois fonctions de journalisation:

//@version=5
indicator("Pine Logs")
if barstate.ishistory
    if bar_index % 100 == 0
        log.warning("\nBar index: {0,number,#}", bar_index)
else
    // Realtime bar processing.
    varip lastTime = timenow
    varip updateNo = 0
    if barstate.isnew
        updateNo := 0
        log.error("\nNew bar")
    else
        log.info("\nUpdate no: {0}\nclose: {1}\nSeconds elapsed: {2}", updateNo, close, (timenow - lastTime) / 1000)
        updateNo += 1
    lastTime := timenow
plot(timenow)

L’exemple affiche l’indice de barre à chaque centième barre historique à l’aide d’un message d’avertissement orange. En temps réel, il affiche un message d’erreur en rouge pour chaque nouvelle barre, et pour chaque mise à jour en temps réel, il crée un message d’information en gris indiquant le numéro de mise à jour, le prix de clôture et le temps écoulé depuis la dernière mise à jour du graphique.

Pour voir Pine Logs en action:

  1. Enregistrez l’exemple de code ci-dessus dans un script personnel et ajoutez-le à un graphique avec un marché actif.
  2. Ouvrez le panneau « Pine Logs » en utilisant le menu « Plus » de l’éditeur ou le menu « Plus » de l’indicateur sur le graphique.

Un timestamp précède chaque entrée du journal. Il s’agit de l’heure d’ouverture de la barre pour les barres historiques et de l’heure actuelle pour les messages en temps réel. Les messages les plus récents apparaissent en bas du volet. Seuls les 10 000 derniers messages sont affichés pour les barres historiques ; les messages en temps réel sont ajoutés à ces derniers.

La partie supérieure du volet contient des icônes permettant de démarrer/arrêter l’enregistrement, de spécifier une date de début, de filtrer les enregistrements par type de message et d’effectuer une recherche dans les enregistrements. Le champ de recherche contient un sous-menu qui vous permet de faire correspondre des cas, des mots entiers et d’utiliser des expressions régulières.

Lorsque vous survolez un message, des icônes apparaissent pour vous permettre d’afficher le code source qui a généré le message ou de passer à la barre graphique correspondante:

Lorsque plusieurs scripts sur votre graphique utilisent des journaux, chacun d’entre eux conserve son propre ensemble de messages. Vous pouvez basculer entre les journaux de chaque script en utilisant le menu déroulant situé en haut du panneau Pine Logs:

Pour rester au courant des nouvelles fonctionnalités de Pine Script®, gardez un œil sur les notes de publication du Manuel de l’utilisateur. Le compte PineCoders diffuse également des mises à jour depuis sa Squawk Box sur Telegram, son compte Twitter, et sur Pine Script® Q&A.

Nous espérons que vous trouverez cette fonctionnalité très demandée aussi utile que nous le pensons, et continuez à nous envoyer vos commentaires et suggestions afin que nous puissions rendre la plateforme la meilleure possible. Nous construisons TradingView pour vous, et nous sommes toujours ravis d’entendre vos commentaires.

– L’équipe TradingView

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