Little Bird Trading

FAQ su Pine Script: backtest e avvisi

4 min di lettura · Aggiornato il

Questa è una FAQ in linguaggio semplice sulle due domande di Pine che fanno inciampare quasi tutti su TradingView: perché il backtest di una strategia sembra migliore di come si vive il trading reale, e perché a volte un alert scatta in un momento o a un prezzo diverso da quello che ti aspettavi. Entrambe nascono dalla stessa causa di fondo: un divario tra i dati davvero disponibili quando è stata presa una decisione e ciò che vedono i tuoi occhi a barre chiuse.

Qual è la differenza tra un indicatore, una strategia e un alert?

Un indicatore (indicator()) disegna e calcola soltanto: traccia linee, colori ed etichette. Una strategia (strategy()) simula ordini: chiama strategy.entry/strategy.exit, li esegue sulle barre storiche e produce il report dello Strategy Tester con profitto netto, drawdown e percentuale di successo. Un alert è un livello di notifica separato che TradingView fa scattare quando una condizione è vera; da solo non opera nulla. La confusione nasce quando si legge un backtest come una promessa, o ci si aspetta che un alert sia un'esecuzione: sono tre lavori diversi. Per la distinzione più approfondita, vedi la guida indicatore o strategia.

Perché il mio backtest sembra ottimo ma i risultati reali non corrispondono?

Quattro cose gonfiano un backtest rispetto alla realtà, e tutte si possono correggere:

  • Ipotesi a chiusura di barra o intrabarra. Per impostazione predefinita lo Strategy Tester valuta la logica alla chiusura della barra. Se la tua condizione usa il massimo/minimo o la chiusura della barra corrente in un modo che sarebbe noto solo dopo che la barra è completa, l'esecuzione storica usa informazioni che l'operazione reale non poteva avere.
  • Esecuzioni predefinite a prezzi irrealistici. Un ordine a mercato nel tester viene eseguito all'apertura della barra successiva; in un'apertura veloce quel prezzo può essere lontano diversi tick o punti dal vivo.
  • Nessuna commissione o slippage modellati. Se lasci commission_value e slippage a zero in strategy(), ogni operazione simulata è priva di attriti. Aggiungi valori realistici: perfino una frazione di tick di slippage porta in negativo molti sistemi di scalping "in profitto". (La commissione si imposta con commission_type e commission_value.)
  • Campioni minuscoli. Dodici operazioni andate tutte bene sono un campione troppo piccolo per parlare di vantaggio. Vedi come riconoscere i sistemi di trading in overfitting prima di fidarti di qualsiasi curva.

Esempio pratico: un sistema che mostra +4200 USD su 40 operazioni su ES a costo zero appare molto diverso una volta aggiunta una commissione round-turn di 2,50 USD e un tick di slippage per ogni lato, ingresso e uscita. Un tick su ES è 0.25 punto = 12,50 USD, quindi due tick sono 25,00 USD; aggiungi la commissione di 2,50 USD e ottieni 27,50 USD di attrito per operazione. Su 40 operazioni sono circa 1100 USD, e un +4200 USD di facciata diventa circa +3100 USD, e peggio se gli ingressi si concentrano su aperture volatili dove lo slippage reale va oltre un singolo tick.

Che cos'è il repainting, e significa che lo script è rotto?

Non necessariamente. "Repainting" è un termine ombrello per uno script che mostra sulle barre storiche valori diversi da quelli prodotti in tempo reale. Il test onesto è semplice: la decisione avrebbe potuto essere presa con le stesse informazioni, nello stesso momento, dal vivo? Un segnale che si conferma solo dopo la chiusura della barra sta facendo il suo lavoro: aspetta la chiusura prima di confermare. I guai vengono dagli script che tracciano un segnale sulla barra in formazione e poi lo spostano a barra conclusa, o che prendono dati di un timeframe superiore con il lookahead attivo. Se vuoi un segnale su cui agire, valutalo su barstate.isconfirmed (chiusura di barra), che reagisce solo alla barra completata.

Perché il mio alert è scattato in ritardo, a un prezzo diverso o due volte?

  • "Una volta alla chiusura della barra" contro "Una volta per barra". Un alert impostato per scattare sulla barra in formazione può partire nell'istante in cui una condizione lampeggia vera intrabarra, poi la barra chiude altrove e sembra "sbagliato". Scattare alla chiusura della barra è più tardi, ma coincide con il momento in cui una strategia confermata prende davvero la sua decisione (la strategia poi agisce all'apertura della barra successiva).
  • Il prezzo dell'alert è un'istantanea del momento in cui l'alert è scattato. Il tuo broker ti esegue al prezzo di mercato corrente, che si muove nei millisecondi tra l'alert e il tuo ordine.
  • Gli scatti duplicati di solito significano che la condizione è rimasta vera su più tick e che l'alert era configurato per scattare a ogni tick quando doveva scattare una volta per barra.

Come si collega tutto questo al metodo dei Piani di trading?

I Piani di trading aggirano l'intero problema del "il mio segnale ha fatto repainting?" dandoti livelli fissi e pianificati in anticipo. I livelli giornalieri, disegnati su ES, SPY, NQ e QQQ prima dell'apertura, vengono calcolati dopo la chiusura precedente e non si spostano durante la sessione, quindi non c'è nulla da ridisegnare: ogni livello è fissato prima delle 9:30 ET e resta fermo. MyLinedChart si limita a disegnare quei livelli; non simula mai ordini, quindi non porta con sé nessuna delle ipotesi di esecuzione del backtest qui sopra. Se un livello pubblicato contraddice il tuo alert o la tua strategia, trattalo come un'informazione, e spesso la risposta è aspettare. Per il vocabolario, vedi il glossario dei Piani di trading.

Checklist pratica prima di fidarti di qualsiasi risultato Pine

  • Conferma la logica su barstate.isconfirmed così backtest e reale condividono lo stesso momento decisionale.
  • Imposta commissioni e slippage realistici, commission_type, commission_value e slippage in strategy(), per lo strumento che operi davvero.
  • Scegli con cura la frequenza degli alert: alla chiusura della barra per la conferma, una volta per barra per evitare duplicati.
  • 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 decisione; le tue regole scritte la prendono.

Letture correlate

Fonti

Solo contenuti educativi. Non è consulenza finanziaria.

Solo contenuti educativi. Non è consulenza finanziaria.