Backtest automatico: far girare una strategia scritta sulle barre in cache

La modalità Backtest automatico della schermata Replay fa girare uno script di strategia salvato su settimane o anni di barre in cache, con costi di transazione obbligatori, usando le stesse regole di esecuzione prudenti del motore di ricerca, e registra il risultato nel pannello delle prestazioni.

Senzoukria · Documentazione · Aggiornato a settembre 2026


Dove trovarlo

Dove
Replay → Preparare → modalità «Backtest automatico» («Mesi di barre: la tua strategia gira da sola»)
Valori predefiniti
Periodo 1 mese, granularità 15 minuti, valore del punto 2 $, commissione andata e ritorno 1,24 $, slippage 1 tick
Regole di esecuzione
Ingresso all'apertura della barra successiva più lo slippage, uscite sulle ombre, su una barra ambigua vince lo stop, commissioni su ogni operazione
Finestra di lettura
Una strategia vede le ultime 500 barre a ogni decisione

Che cosa fa

Dove il replay manuale riproduce una giornata tick per tick, il backtest automatico fa girare una strategia scritta nella pagina Scripting sulle barre conservate nella cache locale. La strategia espone decide(bars, params, ctx, state) con le barre dalla più recente e restituisce un'azione: buy, sell o close, con qty, stopTicks e targetTicks opzionali. L'intero ciclo gira nel worker della sandbox (il protocollo ofsandbox, che porta la propria CSP) a passi di 300 ms, così l'interfaccia resta reattiva; lo stesso testo del ciclo gira anche in un worker blob per i test e per il sito, il che garantisce risultati identici.

Il pannello legge prima la cache per il contratto e la granularità scelti e riporta la copertura («{n} sessioni in cache su {n} richieste»). Le sessioni mancanti si possono scaricare dal broker (barre, oppure lo storico tick footprint quando la strategia legge gli squilibri livello per livello), e si può importare un file Databento ohlcv-1m. Le barre del server portano OHLC, volume e delta ma nessun livello footprint, e le barre importate non portano alcun delta.

Impostazioni

Impostazioni della scheda Backtest automatico
ImpostazionePredefinitoChe cosa cambia
Strategia«Scegli…»Una strategia salvata dalla pagina Scripting; «Modifica la strategia» apre il codice, una bozza modificata gira senza essere salvata, Ctrl+Invio rilancia.
Periodo1 mese1 settimana, 1 mese, 3 mesi, 6 mesi, 1 anno, 2 anni, 5 anni (da 7 a 1.825 giorni).
Granularità15 minuti1 minuto, 5 minuti, 15 minuti, 1 ora. Sei mesi di barre a 1 minuto sono circa 250.000 barre e richiedono minuti per configurazione.
Valore del punto ($)2 (MNQ)Valore in dollari di un punto intero per contratto; minimo 0,01.
Commissione andata e ritorno per contratto ($)1,24Sottratta da ogni operazione; minimo 0.
Slippage (tick)1Penalizza sempre l'ingresso: gli acquisti eseguono più in alto, le vendite più in basso; minimo 0.
Walk-forwardDisattivatoAttiva fette, quota di addestramento, criterio di selezione e assi dei parametri (vedi la pagina walk-forward).
Lancia il backtestAvvia l'esecuzione; «Interrompi» la annulla. L'intestazione del risultato recita «Risultato · {n} barre».

Regole di simulazione

  • Una decisione è presa su una barra chiusa e applicata all'apertura della barra successiva: nessuna esecuzione a un prezzo che apparteneva al passato nel momento in cui la decisione esisteva.
  • Stop e target sono verificati contro il massimo e il minimo della barra, non contro la chiusura.
  • Quando una stessa barra tocca sia lo stop sia il target, vince lo stop: senza tick l'ordine è ignoto, quindi il motore decide contro di te.
  • Le commissioni sono applicate a ogni operazione; il suggerimento sui costi ricorda che costi a zero trasformano una strategia perdente in una vincente non appena opera spesso.
  • Un segnale inverso chiude prima la posizione corrente (motivo «inversione»); un'azione di chiusura porta a flat (motivo «flatten»).
  • MAE, MFE e il rischio all'ingresso (distanza dello stop × qty × valore del punto) sono registrati per ogni operazione, per i grafici delle escursioni e degli R-multipli.
  • I log dello script sono conservati fino a 200 righe; una strategia Python gira tramite l'interprete installato dalla pagina Scripting; le strategie C++ non sono ancora sottoponibili a backtest.

Limiti e trappole

Il risultato viene registrato nel pannello delle prestazioni come esecuzione «auto» con i giorni effettivamente coperti, e l'elenco mostra «{n} g su {req} chiesti» quando la copertura è sotto il 90 % della finestra richiesta. Un backtest su copertura parziale copre solo quella finestra, e il pannello lo dice.

Le barre storiche sono un'autorizzazione del broker: il pannello distingue «permission denied» (rp_code 13, barre non abilitate sul conto) da un archivio che non risale così indietro. Un backtest non piazza alcun ordine; le strategie automatiche pilotano sempre e solo il conto di valutazione simulato.

Questa pagina in altre lingue

Domande frequenti

Perché il backtest esegue all'apertura della barra successiva?
La decisione esiste solo una volta chiusa la barra. Entrare a un prezzo di quella stessa barra userebbe informazioni che non avevi ancora, il che è il primo difetto dei backtester ingenui.
Posso mettere le commissioni a zero?
Il campo accetta 0, ma il suggerimento avverte che un backtest a costo zero mente non appena la strategia opera spesso. Il valore predefinito di 1,24 $ è un ordine di grandezza per un andata e ritorno su prop firm.
Perché non c'è nulla in cache per il mio contratto?
La cache si riempie quando apri il contratto nel grafico a quella granularità, oppure quando scarichi lo storico mancante dal pannello del backtest. Si può anche importare un file Databento ohlcv-1m.