Vorrei saperne di più sui log di Pine

Per attivare i log si può usare una delle tre nuove funzioni: 

  • log.error() crea messaggi di tipo Errore, visualizzati in rosso.
  • log.info() crea messaggi di tipo Info visualizzati in grigio.
  • log.warning() crea messaggi di tipo Avviso visualizzati in arancione.

Dopo aver aggiunto lo script al grafico, è possibile aprire i log di Pine. Utilizzare uno dei punti di ingresso:

  • selezionando Log di Pine... dal menu Altro dell'editor
  • dal menu Altro di uno script caricato sul grafico se utilizza le funzioni log.*()

I log di Pine funzionano ovunque: sulle barre storiche, in tempo reale e in modalità Replay. Le funzioni di logging possono essere richiamate da qualsiasi tipo di script (indicatore, strategia o libreria) e da qualsiasi punto dello script, compresi i blocchi locali, i loop e le funzioni request.security() e simili. È possibile chiamare le funzioni di log in due modi: utilizzando solo un argomento stringa, oppure utilizzando una stringa di formattazione e un elenco di valori secondo il metodo str.format().

Gli script che utilizzano i log devono essere script personali; gli script pubblicati privatamente o pubblicamente non possono generare log, anche se contengono chiamate alle funzioni log.*().

Il seguente esempio di codice utilizza tutte e tre le funzioni di log:

//@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'esempio visualizza l'indice di barra ogni centesima barra storica con un messaggio di avviso arancione. In tempo reale, visualizza un messaggio di errore in rosso per ogni nuova barra e per ogni aggiornamento in tempo reale crea un messaggio informativo in grigio che mostra il numero di aggiornamento, il prezzo di chiusura e il tempo trascorso dall'ultimo aggiornamento del grafico.

Per vedere i log di Pine in azione:

  1. Salva l'esempio di codice sopra riportato in uno script personale e aggiungilo a un grafico con un mercato attivo.
  2. Apri il riquadro Log di Pine utilizzando il menu Altro dell'editor o il menu Altro dell'indicatore sul grafico.

Un timestamp precede ogni voce di log. Si tratta dell'ora di apertura della barra per le barre storiche e dell'ora corrente per i messaggi in tempo reale. I messaggi più recenti appaiono in fondo al riquadro. Per le barre storiche vengono visualizzati solo gli ultimi 10.000 messaggi; i messaggi in tempo reale vengono aggiunti a quelli.

Nella parte superiore del riquadro sono presenti le icone che consentono di avviare/arrestare la registrazione, specificare una data di inizio, filtrare i log per tipo di messaggio e cercarli. Il campo di ricerca contiene un sotto-menu che consente di eseguire una corrispondenza tra maiuscole e minuscole, tra parole intere e di usare la regex.

Quando si passa il mouse su un messaggio di log, appaiono delle icone che consentono di visualizzare il codice sorgente che ha generato il messaggio o di passare alla barra del grafico corrispondente:

Quando più script del grafico utilizzano i log, ognuno di essi mantiene il proprio insieme di messaggi. È possibile spostarsi tra i log di ogni script utilizzando il menu a tendina nella parte superiore del riquadro Log di Pine: