Corregge i risultati del portafoglio ricalcolando la scala delle operazioni per tenere conto della crescita del portafoglio quando si combinano le strategie. Mostra le curve di equity originali rispetto a quelle ricalibrate, con saldi rilevati automaticamente e analisi del drawdown.
Panoramica
StrategyQuant X genera i risultati del portafoglio unendo più strategie e sommando i loro profitti e perdite sopra un unico saldo iniziale. Questo approccio è rapido e semplice, ma introduce una distorsione sistematica = ogni strategia è stata testata singolarmente, dimensionando le proprie posizioni sul proprio conto (ad es. l'1% di 100.000 $). Una volta unite, il portafoglio cresce, ma le dimensioni delle singole operazioni non si adeguano mai per riflettere il saldo combinato più elevato. Una strategia che apriva una posizione di 1.000 $ quando il portafoglio era a 100.000 $ continua ad aprire una posizione di 1.000 $ anche quando il portafoglio è salito a 400.000 $. La posizione risulta ora pari a un quarto di quello che sarebbe effettivamente un rischio dell'1%.
Questo plugin ricalcola cronologicamente l'intera cronologia delle operazioni del portafoglio, applicando un fattore di scala a ogni operazione in modo che la posizione di ciascuna strategia sia sempre proporzionata al saldo complessivo corrente del portafoglio, anziché al proprio saldo iniziale isolato. Il risultato è costituito da due curve di equity affiancate, Originale (identica a quella di SQX) e Ricalcolata (ciò che avrebbe prodotto un corretto interesse composto), con un grafico di confronto del drawdown in basso.

Come Funziona
- Replica esattamente la curva originale del portafoglio di SQX per offrirti un benchmark verificato con cui effettuare il confronto
- Riesegue il portafoglio con un corretto ridimensionamento per operazione, in cui ogni trade viene ricalcolato in base a saldo attuale del portafoglio ÷ saldo isolato dell'algo in quel dato momento
- Mostra un grafico del drawdown % per entrambe le curve, così da visualizzare quando si sono verificati i drawdown e se il ridimensionamento li migliora o li peggiora
- Rileva automaticamente tutti i saldi iniziali dai dati degli ordini: l'avvio del portafoglio e l'avvio isolato di ciascun algo vengono letti direttamente dal primo ordine di ciascuna strategia, senza alcun inserimento manuale
- Supporta un limite massimo di lotti (max-lots cap) per consentirti di visualizzare la curva con i vincoli reali legati ai limiti di posizione delle prop firm
- Filtro dell'intervallo temporale con avvio a caldo (warm-start). Limita la visualizzazione a qualsiasi sotto-periodo: le operazioni precedenti all'intervallo vengono riprodotte per aggiornare tutti i saldi allo stato corretto prima dell'inizio del periodo
- L'opzione Riproponi da inizio (Rebase to Start) normalizza entrambe le curve al punto di partenza originale per qualsiasi intervallo selezionato, rendendo due periodi di tempo direttamente e paritariamente confrontabili
Come funziona
I saldi iniziali vengono rilevati automaticamente. Il saldo iniziale del portafoglio viene calcolato come firstOrder.Balance − firstOrder.ProfitLoss. Il saldo iniziale isolato di ogni strategia viene rilevato allo stesso modo dal primo ordine della strategia stessa (identificato da ResultName).
La curva Originale è una semplice riproduzione: si parte dal saldo del portafoglio rilevato e si somma il ProfitLoss originale di ciascuna operazione in ordine cronologico. Questo valore deve corrispondere esattamente all'utile netto, al saldo finale e al drawdown riportati da SQX. Se non coincide, significa che il saldo iniziale rilevato non è corretto.
La curva Ridimensionata utilizza lo stesso saldo iniziale, applicando poi per ogni operazione:
scaleFactor = currentPortfolioBalance ÷ algoIsolatedBalance
scaledPL = originalPL × scaleFactor
Il saldo isolato dell'algo viene aggiornato dopo ciascuna delle sue operazioni (isoBal += originalPL), in modo che il rapporto rifletta l'evoluzione del conto di quella specifica strategia in isolamento. Se è impostato un limite massimo di lotti, il fattore di scala viene limitato inferiormente affinché la posizione teorica non superi mai maxLots ÷ originalLotSize.
Il drawdown % viene monitorato indipendentemente dal drawdown in $, esattamente come fa SQX: la perdita percentuale peggiore (picco-valle ÷ picco locale) e la perdita monetaria peggiore vengono misurate separatamente lungo l'intera cronologia delle operazioni e indicate nella tabella delle statistiche.
Presupposti
- Le strategie utilizzano un dimensionamento della posizione basato su percentuali (es. 1% di rischio per operazione)
- Se le strategie impiegano lotti fissi, il fattore di scala modificherà il P&L nozionale ma non il numero effettivo di lotti. La curva ridimensionata risulterà differente, ma non rifletterà ciò che avresti potuto realmente eseguire a mercato.
- Il campo Balance negli ordini del portafoglio rappresenta il saldo del conto isolato per ciascuna strategia (non il saldo complessivo del portafoglio)
- Questo è il valore che il plugin utilizza per rilevare il capitale iniziale di ogni algo e monitorarne l'evoluzione. Se SQX memorizza il saldo corrente complessivo del portafoglio in questo campo, i fattori di scala dei singoli algo non saranno corretti. Verifica controllando che i chip di avvio rilevati per ciascun algo corrispondano ai saldi iniziali della tua strategia.
- Tutte le strategie utilizzano la stessa valuta di base
- I valori di P&L vengono sommati e ridimensionati nelle unità di valuta originarie; i portafogli con valute incrociate non sono gestiti.
- Il rilevamento del saldo iniziale presuppone che nessuna operazione sia stata chiusa prima del primissimo ordine presente nei dati
- Se l'esportazione dei dati è troncata (ad es. se stai visualizzando un intervallo Out-of-Sample), il saldo iniziale rilevato corrisponderà al saldo all'inizio di quel segmento e non al capitale originariamente configurato.
Limitazioni e svantaggi
La curva ridimensionata è una simulazione, non un backtest. Il fattore di scala viene applicato al P&L originale, calcolato utilizzando dimensioni fisse dei lotti. Nella realtà, operare con un lotto più grande avrebbe avuto un impatto differente sul mercato e avrebbe potuto muovere il prezzo a tuo sfavore in modo diverso. Questo effetto è trascurabile per gli strumenti liquidi e i conti di piccole dimensioni, ma può diventare significativo per i mercati illiquidi o per posizioni molto ampie.
Le operazioni sovrapposte non vengono gestite. Il ridimensionamento presuppone che ogni operazione sia indipendente. Se due strategie mantengono posizioni simultaneamente, l'esposizione combinata in qualsiasi momento è la somma di entrambe le posizioni ridimensionate: il plugin non verifica se ciò violi i limiti di margine o di esposizione.
Il limite massimo di lotti viene applicato per operazione, non per posizione aperta. Se più strategie hanno operazioni aperte contemporaneamente, ciascuna è limitata singolarmente, ma i lotti aperti totali su tutte le posizioni concomitanti non sono vincolati.
Il drawdown viene misurato solo al momento della chiusura dell'operazione. Le oscillazioni dell'equity durante l'operazione (drawdown aperto) non sono visibili nei dati degli ordini. Il drawdown massimo riportato potrebbe essere inferiore a quello che si osserverebbe su una curva di equity tick-by-tick.
Le strategie a lotti fissi non mostreranno alcuna differenza significativa tra Original e Rescaled: il fattore di scala modifica il guadagno/perdita implicito in dollari, ma non l'effettivo comportamento di rischio della strategia.
Questo è progettato per darti un'idea di come il rischio del tuo portafoglio scalare realmente, poiché il valore del Drawdown nei risultati di StrategyQuant non è accurato con il Risk %