BACKTESTMARKET
Costi di transazione per i quant: testa 3 regimi e attenzione al rischio dell'engine
backtesting·

Costi di transazione per i quant: testa 3 regimi e attenzione al rischio dell'engine

Scopri come i quant possono modellare commissioni, spread, slippage e market impact, stress testare tre regimi di costo e tenere conto dei rischi legati a engine e dati.

Di BacktestMarket Team
valutare i costi di transazionebacktesting dei costi di transazionemodellazione dei costi di transazionebacktesting delle performance di tradingcommissioni di transazione nel backtestinganalisi dei costi nel trading

Ricercatore quant che confronta run con diversi costi di transazione

Ignorare i costi di transazione in genere ribalta la validità live di una strategia. Commissioni, spread e slippage possono azzerare completamente l'edge di una strategia ad alto turnover, quindi la soluzione è costruire un modello di costo difendibile usando implementation shortfall e parametri di market impact, per poi testarlo su almeno tre regimi: costo zero, baseline e costo elevato. La scelta dell'engine e la qualità dei dati aggiungono silenziosamente un ulteriore livello di rischio.


TL;DR:

  • Converti le commissioni di broker, exchange e clearing in basis point del notional medio per trade, poi aggiungi separatamente lo spread quotato e l'impact che cresce con la dimensione dell'ordine.
  • Stima gli spread dalle quote quando disponibili, e modella gli ordini più grandi con un impact a radice quadrata basato sulla dimensione dell'ordine rispetto al volume medio giornaliero.
  • Testa i regimi costo zero, baseline, doppio baseline e costo elevato, registrando implementation shortfall e market impact; rielabora le strategie i cui rendimenti netti baseline non raggiungono la tua soglia.
  • Engine che coincidono a costo zero possono divergere fino al 3,7% del rendimento totale sotto costi elevati, quindi verifica fill e commissioni in modo indipendente.
  • Verifica gap, allineamento dei timestamp e integrità dei tick prima di stimare i costi, poi documenta fonte dei dati, intervallo temporale e aggiustamenti in modo che un altro revisore possa riprodurre i risultati.

Indice

Quali costi di transazione contano e come si comportano

Tre categorie di costo determinano gran parte del divario tra una strategia su carta e una live: commissioni, spread e slippage o market impact.

Le commissioni sono le più facili da modellare perché sono contrattuali. I broker quotano commissioni fisse per trade, commissioni variabili per azione o per lotto, oppure costi minimi per ordine. Convertire ciascuna di queste in una cifra espressa in basis point per trade le rende confrontabili tra strumenti e dimensioni di posizione, e questa conversione dovrebbe avvenire prima che il modello di costo tocchi qualsiasi altra cosa.

Lo spread bid-ask è un costo round-trip realizzato: compri all'ask e vendi al bid, e quel divario viene pagato a ogni entrata e uscita indipendentemente da come si comporta il trade. Lo spread si allarga notevolmente su strumenti illiquidi e durante sessioni volatili, quindi un'ipotesi di spread statico sottostima il costo esattamente nelle condizioni in cui una strategia ha maggiori probabilità di fallire.

Slippage e market impact sono correlati ma distinti. Lo slippage è la differenza tra il prezzo che ti aspettavi e quello che hai ottenuto. Il market impact è il movimento di prezzo causato dal tuo stesso ordine, che conta di più man mano che la dimensione cresce rispetto alla liquidità disponibile. L'implementation shortfall (IS) cattura la differenza totale tra un prezzo benchmark o modello e il prezzo effettivamente scambiato, incluso il costo opportunità derivante da fill ritardati, mentre il market impact (MI) isola il divario tra prezzo di arrivo e prezzo scambiato causato dall'ordine stesso.

Il turnover amplifica tutti e tre i costi perché ogni ribilanciamento li paga di nuovo.

  • Una strategia che ruota l'intero book venti volte all'anno paga il suo costo round-trip venti volte, non una.
  • Raddoppiare il turnover senza allargare l'edge raddoppia grosso modo il trascinamento annuale dei costi.
  • Strategie a basso turnover con edge sottili possono sopravvivere a costi che affonderebbero una variante ad alta frequenza dello stesso segnale.

Come modellare i costi di transazione nei backtest (modelli e formule pratiche)

Tre tipi di modello coprono la maggior parte delle esigenze di backtesting, in ordine crescente di complessità.

  1. Modello proporzionale (bps): addebita un numero fisso di basis point per trade, scalato sul notional. Forma friendly per il codice: cost = notional * (bps / 10000), applicata sia in entrata che in uscita.
  2. Modello basato sullo spread: stima direttamente lo spread round-trip dalle barre a 1 minuto, usando il range medio high-low o il bid-ask quotato quando disponibile, e applica metà dello spread a ciascun fill.
  3. Modelli di slippage e impact: per ordini più grandi, una formula di impact a radice quadrata, impact = sigma * sqrt(order_size / average_daily_volume), scala in modo più realistico rispetto a un addebito bps piatto perché l'impact cresce in modo sublineare con la dimensione. Un'approssimazione lineare funziona per ordini piccoli e liquidi. L'approccio Kyle lambda tratta l'impact come una funzione lineare dell'order flow rispetto alla profondità di mercato, utile quando si ha un proxy di liquidità ma non una curva completa dei volumi.

Ammortizzare un costo una tantum sull'intero periodo di detenzione atteso ha senso quando una strategia mantiene le posizioni per giorni o settimane e il costo di ingresso è piccolo rispetto al rendimento atteso su quell'orizzonte. È una scelta poco adatta per strategie con periodi di detenzione incerti o molto variabili, dove la cifra ammortizzata può mascherare una posizione chiusa molto prima del previsto.

Mappare i piani tariffari reali su questi parametri richiede un po' di aritmetica: le commissioni del broker si convertono in bps dividendo la commissione fissa o per azione per il notional medio del trade, le commissioni di exchange e i costi di clearing si sommano come voce a parte, e tutti e tre andrebbero sommati in un'unica cifra bps effettiva prima di eseguire il backtest. Una formula semplice di fill per lo slippage su barre a 1 minuto è un punto di partenza pratico per i trader che vogliono codificare questo aspetto senza costruire da zero un modello completo di market impact.

Pro Tip: Costruisci il tuo modello di costo come un modulo separato e intercambiabile invece di hardcodare i valori bps nella logica della strategia, così puoi eseguire confronti tra regimi senza toccare il codice della strategia stessa.

Rischio di implementazione: perché engine e implementazioni diverse danno risultati diversi

Un backtest engine non è un calcolatore neutrale. Due engine che eseguono la stessa identica strategia con le stesse identiche ipotesi di costo possono produrre rendimenti netti sostanzialmente diversi, e il divario cresce con l'intensità dei costi e il turnover. Questa divergenza è stata definita rischio di implementazione, ed è abbastanza ampia da contare per qualsiasi strategia che tradi con frequenza.

Alcuni bug comuni degli engine da verificare prima di fidarsi di un risultato:

  • Errori nell'unità delle commissioni, dove una commissione pensata in dollari per azione viene applicata come dollari per trade o viceversa.
  • Doppio conteggio dello slippage, dove sia un costo di spread sia un costo di slippage separato vengono applicati allo stesso fill.
  • Base del notional errata, dove il position sizing usa dati di prezzo non aggiornati invece del prezzo di fill effettivamente usato per il calcolo del costo.

Una breve checklist diagnostica individua la maggior parte di questi problemi: esegui prima una baseline a costo zero e verifica che corrisponda a un'aspettativa calcolata a mano, poi esegui la stessa strategia su un secondo engine o su un'implementazione di riferimento semplice e calcola il divario tra i due come engine spread.

Sotto regimi di costo elevato, un benchmarking multi-engine ha rilevato una divergenza di rendimento fino a circa il 3,7% del rendimento totale tra implementazioni che a costo zero coincidevano esattamente. Quel divario è il rischio di implementazione nascosto dentro il risultato di un singolo engine. Riportare IS e MI insieme ai rendimenti lordi in ogni output di backtest, anziché il solo rendimento netto, rende visibile quel rischio invece di nasconderlo.

Illustrazione della divergenza tra output di engine di backtest costosi

Un workflow pratico: aggiungi costi di transazione difendibili al tuo prossimo backtest

Costruire un modello di costo credibile non richiede una deviazione di ricerca. Si inserisce in cinque passaggi all'interno di un ciclo di backtest già esistente.

  1. Verifica i tuoi dati. Controlla la presenza di gap, conferma il corretto allineamento temporale tra i simboli e verifica l'integrità di spread e tick prima di decidere se barre a 1 minuto o dati tick siano adatti al periodo di detenzione del tuo segnale. Un audit strutturato dei dati prima del backtesting individua la maggior parte degli errori che in seguito sembrano bug del modello di costo.
  2. Implementa un modello di costo baseline. Scegli parametri di partenza adeguati alla classe di attivo e codificali nell'engine come modulo a sé stante.
  3. Esegui quattro regimi di costo. Costo zero, una cifra baseline, il doppio della baseline e un regime elevato, catturando IS e MI a ogni passaggio.
  4. Incrocia il confronto con un secondo engine. Esegui la stessa strategia e gli stessi parametri su un'implementazione di riferimento e registra l'engine spread tra i due output di rendimento netto.
  5. Riporta la sensitivity con un punteggio di intensità di costo corretto per il turnover, e applica una regola decisionale: se i rendimenti netti scendono sotto la tua soglia nel regime baseline, la strategia va rielaborata o scartata prima di arrivare al paper trading.

Questi livelli di regime seguono gli intervalli di sensitivity usati nella ricerca sul rischio di implementazione, dove scenari baseline, doppio e costo elevato sono il modo standard per esporre quanto sia fragile davvero l'edge di una strategia. I trader che lavorano con MT4 o MT5 possono abbinare questo workflow al drawdown testing basato su replay per confermare che i risultati corretti per i costi reggano anche fuori dalla finestra di backtest originale.

Come dati minute-bar puliti cambiano il realismo dei costi

Le stime di spread e slippage sono buone solo quanto le barre da cui provengono. Gap, timestamp disallineati e tick rumorosi distorcono sia lo spread round-trip stimato sia i fill che un backtest assume, producendo un modello di costo che sembra preciso ma poggia su input scadenti. Una candela sottile causata da un gap nei dati può sottostimare lo spread esattamente nel minuto volatile in cui lo spread reale si sarebbe allargato.

Dati intraday minute-bar puliti eliminano questo rumore alla fonte.

  • Dataset intraday minute-bar puliti e completi sono disponibili per forex, metalli, obbligazioni e indici azionari a partire dal 2014.
  • I download all-in-one sono pronti per l'importazione immediata in MT4 e MT5, senza alcuna fase di riformattazione tra l'acquisto e il backtest.
  • I dati sono verificati barra per barra e gli aggiustamenti sono documentati, così il dataset su cui gira un modello di costo ha una storia tracciabile.
  • L'assistenza clienti arriva direttamente dagli ingegneri che costruiscono e mantengono i dataset, per le domande che emergono a metà progetto.

Documentare la fonte, l'intervallo temporale e gli eventuali aggiustamenti applicati ai dati utilizzati vale la pena includerlo nel proprio output di backtest. Trasforma il risultato di un modello di costo da una cifra isolata in qualcosa che un secondo revisore, o un secondo engine, può effettivamente riprodurre.

Bilanciare realismo accademico e backtest implementabili

Un modello di costo perfetto che nessuno può verificare è peggio di uno approssimativo ma completamente documentato. Preferirei vedere una strategia testata con semplici ipotesi in bps, dichiarate chiaramente e sottoposte a sensitivity testing su più regimi, piuttosto che una avvolta in un modello di impact così elaborato che nessuno al di fuori del suo autore può validarlo. Riproducibilità e verifiche multi-engine su dati puliti fanno più per la fiducia nel risultato di un'ulteriore cifra decimale di sofisticazione del modello.

— Start

Come i dati BacktestMarket possono aiutarti a simulare costi di transazione realistici

Una volta costruito il modello di costo, la sua affidabilità dipende interamente dalle barre che lo alimentano. Dataset minute-bar puliti su forex, metalli, obbligazioni e indici azionari, formattati per l'importazione immediata in MT4 e MT5, possono supportare stime di spread e slippage basate su fill effettivamente avvenuti anziché su gap che il software potrebbe interpolare.

Forex Major Full Pack

Per la modellazione dei costi focalizzata sul FX, il Forex Major Full Pack copre le coppie principali che la maggior parte dei trader testa per prima, con la stessa verifica barra per barra applicata all'intero set. Il Piano Annuale costa 119€ all'anno e offre accesso continuativo a tutto il nostro catalogo per cicli di ricerca che eseguono più strategie su più regimi nel tempo.

Se la stima dello spread su strumenti illiquidi o cross-venue fa parte del tuo processo, le tecniche di questa guida allo slippage sui prediction market meritano un'occhiata insieme al tuo audit dei dati.

FAQ

Cos'è il backtesting dei costi di transazione?

Il backtesting dei costi di transazione significa aggiungere commissioni, spread e slippage o market impact alla simulazione storica di una strategia invece di testare su prezzi senza attrito. In genere comporta la modellazione di questi costi come basis point per trade e l'esecuzione della strategia su più regimi di costo per vedere quanto siano sensibili i suoi rendimenti.

Di quanto riducono i rendimenti i costi di transazione in genere?

L'effetto dipende molto dal turnover e dalla dimensione del trade. I dati di trade live analizzati nello studio di Frazzini, Israel e Moskowitz hanno riscontrato un market impact mediano di circa 7,98 basis point e un implementation shortfall mediano di circa 10,34 basis point, con cifre value-weighted considerevolmente più alte per i trade più grandi.

Perché engine di backtest diversi danno risultati diversi con la stessa strategia?

Engine diversi gestiscono di default fill, unità delle commissioni e calcoli del notional in modi differenti, e queste differenze si amplificano man mano che cresce l'intensità dei costi di transazione. Questo divario, noto come rischio di implementazione, può raggiungere diversi punti percentuali del rendimento totale per strategie ad alto turnover anche quando entrambi gli engine coincidono esattamente a costo zero.

Qual è un'ipotesi di costo baseline ragionevole da cui partire?

Una baseline comunemente usata nel sensitivity testing è un'ipotesi realistica di costo per trade, con regimi doppio ed elevato usati per stress testare la strategia. La cifra di partenza corretta dipende comunque dalla liquidità dello strumento e dal tuo effettivo piano tariffario con il broker, quindi trattale come un punto di partenza e non come un numero universale.

Dati storici migliori migliorano davvero la modellazione dei costi?

Sì. Gap e barre disallineate distorcono le stime di spread e slippage, il che si ripercuote direttamente su un modello di costo impreciso indipendentemente da quanto sofisticata sia la formula. Dati minute-bar puliti e verificati eliminano questa fonte di errore prima ancora che il modello di costo venga eseguito.

Fonti

Risorse correlate

Esplora i pacchetti di dati storici di BacktestMarket per mettere in pratica le idee di questo articolo.

Newsletter

Rimani aggiornato

Nuovi dataset, Expert Advisor, sconti e approfondimenti di trading — direttamente nella tua casella di posta.

Carrello

Il carrello è vuoto

Aggiungi prodotti per iniziare.