Indicatore o strategia in Pine Script: differenze e quando usare ciascuno
6 min di lettura · Aggiornato il
Su TradingView, un indicatore e una strategia sembrano quasi uguali nel Pine Editor. Un indicatore disegna sul tuo grafico. Una strategia simula operazioni e riporta quanto avrebbero guadagnato. Confondere i due è il motivo più comune per cui uno script che sembra ottimo sullo storico delude dal vivo. Questa guida copre le differenze che cambiano i tuoi risultati, più il terzo tipo di script, la libreria.
Indicatore, strategia e libreria: a che cosa serve ciascuno
- Indicatore (
indicator()): calcola e traccia. Usalo per livelli, segnali disegnati conplotshape(), dashboard, bias di mercato e alert costruiti conalertcondition(). - Strategia (
strategy()): tutto ciò che un indicatore può disegnare, più ordini simulati tramitestrategy.entry,strategy.exitestrategy.close. TradingView esegue quegli ordini e riempie lo Strategy Tester con le statistiche delle operazioni. - Libreria (
library()): un insieme di funzioni riutilizzabili che pubblichi e poiimportiin altri script. Una libreria non viene mai aggiunta da sola a un grafico.
Un singolo script ne dichiara esattamente uno dei tre, quindi uno script non può essere sia indicatore sia strategia. Una configurazione comune è una libreria con la logica condivisa, un indicatore per il grafico e gli alert, e una strategia per i test.
La differenza in una riga
La primissima riga di uno script Pine dichiara di che tipo è. Uno script che si apre con indicator() può solo calcolare e tracciare: linee, colori, etichette, riempimenti. Non ha alcun concetto di posizione, di prezzo di esecuzione o di profitto. Uno script che si apre con strategy() aggiunge un motore di simulazione degli ordini: può chiamare funzioni come strategy.entry e strategy.exit, e TradingView esegue quegli ordini sulle barre storiche per produrre il report dello Strategy Tester: profitto netto, drawdown massimo, percentuale di successo, profit factor e l'elenco delle operazioni simulate.
Quindi la divisione è questa: un indicatore descrive condizioni; una strategia afferma che cosa quelle condizioni avrebbero guadagnato. La seconda affermazione è molto più pesante della prima, perché nel momento in cui simuli ordini ereditati una pila di ipotesi su quando e a quale prezzo quegli ordini sono stati eseguiti.
Dove il motore di backtest fa ipotesi in silenzio
La curva dei profitti di una strategia è affidabile quanto le ipotesi di esecuzione che ha sotto. Quattro impostazioni predefinite fanno la maggior parte del danno:
- Valutazione alla chiusura della barra. Per impostazione predefinita il tester valuta la tua logica quando una barra chiude. Se una condizione fa riferimento al massimo, al minimo o alla chiusura della barra stessa, l'"esecuzione" storica può usare informazioni che un'operazione reale non poteva avere fino a barra completata.
- Esecuzioni all'apertura della barra successiva. Un ordine a mercato piazzato su un segnale viene eseguito all'apertura della barra successiva nella simulazione. In un'apertura veloce, quel prezzo stampato può stare diversi tick, o punti, lontano da dove verresti davvero eseguito.
- Zero attriti. Se
commissioneslippagerestano a zero nella chiamatastrategy(), ogni operazione simulata è gratuita, mentre ogni operazione reale paga commissioni e slippage. - Dimensione del campione. Il tester riporterà volentieri una curva splendida costruita su dodici operazioni. Dodici vincite sono rumore travestito da vantaggio.
Un esempio pratico
Poniamo che una strategia mostri +4200 USD su 40 operazioni sui futures ES con i costi lasciati a zero. Aggiungi una commissione round-turn di circa 5 USD (le commissioni retail sui futures variano molto da broker a broker, quindi usa la tua), più un tick di slippage per lato. Su ES un tick è 0.25 punti, che valgono 12,50 USD, quindi un tick per ogni verso è 25 USD. Sono circa 30 USD di attrito per operazione, circa 1200 USD su 40 operazioni, che trascinano un +4200 USD di facciata verso circa 3000 USD. E questa è la versione gentile: se gli ingressi si concentrano su aperture volatili, lo slippage reale va oltre un tick e il divario cresce. Nessuno di questi attriti compare nella versione indicatore della stessa logica, perché un indicatore non dichiara mai un'esecuzione. Per saperne di più su come separare un vantaggio reale da uno adattato, vedi come riconoscere i sistemi di trading in overfitting.
Segnali: plotshape in un indicatore, ordini in una strategia
Un indicatore segna un segnale con plotshape() o plotchar(), un triangolo o un'etichetta sulla barra in cui la tua condizione era vera. Non viene comprato nulla, quindi l'indicatore non ha statistiche di operazioni. Una strategia trasforma la stessa condizione in un ordine con strategy.entry(), e lo Strategy Tester poi riporta profitto netto, percentuale di successo, drawdown e l'elenco completo delle operazioni. Per misurare l'accuratezza di un segnale, sposta la condizione in una strategia, aggiungi costi realistici e leggi l'elenco delle operazioni.
Testare i segnali: alla chiusura o intrabarra
Per impostazione predefinita una strategia calcola una volta per barra, alla chiusura, e un ordine a mercato viene eseguito all'apertura della barra successiva. Tre impostazioni cambiano questo comportamento:
process_orders_on_close = trueesegue gli ordini alla chiusura della barra del segnale.calc_on_every_tick = truericalcola a ogni tick in tempo reale. Lo storico ha solo barre concluse, quindi i risultati reali e quelli storici possono differire.use_bar_magnifier = trueusa dati di un timeframe inferiore per decidere quale tra i prezzi di una barra sia arrivato prima quando uno stop e un obiettivo stanno entrambi dentro la stessa barra.
I segnali confermati alla chiusura della barra danno la corrispondenza più vicina tra risultati del backtest e reali.
I segnali intrabarra hanno comunque un posto. Una strategia di breakout che deve agire nel momento in cui il prezzo attraversa un livello può usare calc_on_every_tick dal vivo, purché prima testi la versione reale in avanti su un conto paper, perché il backtest non può mostrare come il segnale si comporta dentro una barra. Per gli indicatori vale la stessa distinzione per gli alert: "Una volta alla chiusura della barra" aspetta la barra confermata, e "Una volta per barra" scatta la prima volta che la condizione diventa vera dentro la barra, anche se la barra poi chiude nell'altro verso. La FAQ su Pine Script tratta le impostazioni degli alert più in dettaglio.
Quale tipo di script funziona nel Pine Screener?
Il Pine Screener esegue indicatori. Per fare uno screening sul setup di una strategia, metti la condizione in un indicatore e traccia il valore su cui vuoi filtrare.
Che cosa significa davvero repainting
"Repainting" viene attribuito a qualsiasi script che mostra a posteriori valori diversi da quelli che mostrava in tempo reale, ma l'etichetta è spesso usata a sproposito. Il test onesto è una sola domanda: questa decisione avrebbe potuto essere presa con le stesse informazioni, nello stesso momento, dal vivo? Un segnale che si conferma solo alla chiusura della barra ti chiede semplicemente di aspettare la chiusura. I casi davvero fuorvianti sono i segnali tracciati sulla barra ancora in formazione che poi saltano a barra conclusa, o i dati di timeframe superiore presi con lookahead. Valutare la logica su una barra confermata mantiene onesti tra loro il backtest e la tua esperienza reale, che tu stia costruendo un indicatore o una strategia.
Come tutto questo si collega ai Piani di trading
I Piani di trading aggirano di proposito il problema del repainting consegnandoti livelli fissi e pianificati in anticipo. I livelli giornalieri, i livelli di ES, SPY, NQ e QQQ, vengono calcolati dopo la chiusura precedente e non si muovono durante la sessione. Non c'è nulla da ridisegnare: ogni livello è fissato prima delle 9:30 ET e resta fermo. MyLinedChart, che disegna quelle linee, funziona come un indicatore. Traccia i livelli e non simula nulla, quindi non porta con sé nessuna delle ipotesi di esecuzione o commissione qui sopra. Se un livello pubblicato contraddice ciò che ti dice la tua strategia, quel disaccordo è un'informazione, e spesso la risposta è aspettare.
Costruire una strategia dai tuoi livelli
La maggior parte delle strategie opera attorno a prezzi che un trader aveva già tracciato a mano: supporto, resistenza, un pivot. MyLinedChart esporta ogni linea, livello, nota e indicatore del tuo grafico in JSON, CSV o XLSX. Passa quel file a ChatGPT, a Claude o al tuo codice e chiedi una strategia Pine Script che operi esattamente quei prezzi. Sei tu, insieme alla tua AI, a decidere come la strategia entra ed esce.
Una breve checklist prima di fidarti di uno dei due tipi di script
- Sappi quale hai in mano:
indicator()disegna soltanto;strategy()simula ordini e produce il report dello Strategy Tester. - Su una strategia, imposta
commissioneslippagerealistici per lo strumento che operi davvero prima di leggere un solo numero di profitto. - Conferma la logica sulle barre chiuse così storico e reale condividono lo stesso momento decisionale.
- Valuta i risultati su un numero di operazioni sufficiente a contare.
- Tieni gli overlay di contesto (come i livelli pubblicati) separati dall'autorità di esecuzione: il grafico informa la scelta; le tue regole scritte la fanno.
Usato così, un indicatore è una lente e una strategia è un'ipotesi. Metti alla prova entrambi su esecuzioni reali prima di fidarti.
Letture correlate
- FAQ su Pine Script: backtest e alert
- Come riconoscere i sistemi di trading in overfitting
- Glossario dei Piani di trading
Fonti
- Documentazione Pine Script di TradingView: strategie
- Documentazione Pine Script di TradingView: repainting
- CFTC: avviso sulle frodi dei sistemi di trading
Solo contenuti educativi. Non è consulenza finanziaria.
Solo contenuti educativi. Non è consulenza finanziaria.