Se vedi tutto strano devi riaggiornare la cache del tuo browser. premendo CTRL + F5. E' dovuto all'aggiornamento del forum.

Calcolo dello SQN di Van Tharpe in MT4

Di tutto un po' su Metatrader.
Avatar utente
positiveday
Amministratore
Messaggi: 1905
Iscritto il: sab mag 28, 2016 9:23 pm

Calcolo dello SQN di Van Tharpe in MT4

Messaggio da positiveday »

Dopo aver letto il libro "Van Tharp's Definitive Guide to Position Sizing" ed aver augurato a tutti gli utenti del forum successo nel trading ho pensato di spiegare quello che ho capito del calcolo del System Quality Number illustrato nel libro.
L'autore è arrivato a definire un metodo di calcolo di un "indice" di "qualità" di un trading system.
Questo per rendere comparabile un trading system con un altro basandosi sull'indice di qualità SQN da lui creato.

Gli "ingredienti" necessari per il calcolo non sono molti, ma purtroppo vanno analizzati nel modo corretto o si prendono lucciole per lanterne.

Poi non è che ogni trading system sia analizzabile in modo da poter ottenere questo indice.
Richiesta di base è sapere il Risk Reward di ogni singolo ordine, e quindi già un trading system a martingala che non usa stoploss, od un trading system dove lo stoploss iniziale viene spostato, iniziano a creare problemi.
Per la martingala non ci sono problemi, penso sia impossibile un calcolo dello SQN proprio per l'assenza di stoploss iniziale, salvo considerare che ogni ordine potrebbe portare al massimo drawdown ammesso, ma in tal caso si otterrebbe un SQN infimo (che probabilmente è proprio giusto che sia così).
Per il trading system con stoploss spostato successivamente è indispensabile conoscere il valore di stoploss iniziale, non si può cioè analizzare uno statement già fatto (proprio perchè lo stoploss si potrebbe essere mosso in favore del prezzo), quindi è necessario all'inivio di ogni ordine sapere cosa avrebbe rischiato quell'ordine in caso di SL.

Ecco, quindi il R/R è l'ingrediente di base, la "condicio sine qua non".
Il Risk è cioè cosa in denaro perderebbe l'ordine in caso di stoploss, il Reward non è il takeprofit, ma quanto, una volta chiuso l'ordine, ha realmente prodotto in denaro.

Ecco questa è la base, poi il resto, ma è abbastanza semplice.
:D
Trovi interessanti i contenuti di forexometro? Considera la possibilità di iscriverti! :mrgreen: e poi di partecipare ...

Avatar utente
positiveday
Amministratore
Messaggi: 1905
Iscritto il: sab mag 28, 2016 9:23 pm

Re: Calcolo dello SQN di Van Tharpe in MT4

Messaggio da positiveday »

Ho corretto il post di sopra, i numeri necessari di R/R sono denaro, non percentuali.
Questi dati ci servono per calcolare l'Expectancy, cioè l'aspettativa del nostro trading system.
Il termine aspettativa non significa che sarà quanto ci "aspettiamo" da una trade del nostro sistema.
Quella sarebbe la media dei guadagni delle trades eseguite, un valore poco interessante magari in un trading system con size degli ordini derivata percentualmente dal saldo disponibile.
L'Expectancy invece è un dato molto più interessante, ci dice quanto ci dobbiamo attendere di guadagno reso per ogni Dollaro ( dipenderà dalla valuta di deposito ) investito nel nostro trading system.
Cioè, per ogni trade, da una parte della bilancia c'è il denaro che rischiamo se la trade va male, dall'altra parte del piatto della bilancia c'è il denaro che realmente abbiamo guadagnato.
Un semplice esempio : apro una trade, in caso di StopLoss perdo 30$, poi si chiude in gain di 5$.
Il calcolo sta nel dividere il denaro guadagnato per quello rischiato, attenzione, non l'inverso.
Quindi 5 : 30 = 0.166 , ci da un dato importante. Che per ogni Dollaro rischiato, ci portiamo a casa 0.16 $.
Lo scrittore del libro si prodiga in una serie di inutili esempi, dove spesso si rischia 10 per portare a casa 30, ottimo, beato lui ed il suo trading nella borsa.

Quindi ecco l'Expectancy che è, per ogni trade eseguita, la divisione del denaro guadagnato per il denaro rischiato, cioè Reward / Risk.

Gli step successivi saranno la media di queste singole Expectancy ed il calcolo della deviazione standard, cioè di quanto è ampia la dispersione di questi dati rispetto alla propria media.
Sarebbe bellissimo un trading system dove tutte le trades rischiano x e rendono y.
Nella realtà capita diversamente e la deviazione standard ci dirà quanto è uniforme questa massa di R / R.

Da Wikipedia :
"In ambito finanziario, lo scarto quadratico medio viene usato per indicare la variabilità di un'attività finanziaria e dei suoi payoff (rendimenti). Esso fornisce quindi, implicitamente, una misura della volatilità dell'attività, quindi del suo rischio."
:D
Trovi interessanti i contenuti di forexometro? Considera la possibilità di iscriverti! :mrgreen: e poi di partecipare ...

Avatar utente
positiveday
Amministratore
Messaggi: 1905
Iscritto il: sab mag 28, 2016 9:23 pm

Re: Calcolo dello SQN di Van Tharpe in MT4

Messaggio da positiveday »

Procedo nella spiegazione che terminerà con un esempio reale di applicazione del codice necessario ad un ea "standard" cioè all'MACD Sample che tutti hanno sul proprio MT4.
:)

Una volta ottenuti i valori RR per ogni singola trade eseguita dal nostro trading system, va semplicemente calcolata la media, cioè si sommano tutti i valori di ogni singolo RR di ogni singolo ordine e quindi si divide il risultato per il numero delle trades impiegate per la somma.
Questa è l'Expectancy del nostro trading system.
Cioè quanto otterremo come resa per ogni Dollaro rischiato.
Quindi è un valore indipendente dal Money Management.
Più denaro rischieremo e più denaro otterremo come risultato.
:)

Adesso siamo arrivati al calcolo della deviazione standard detto anche scarto quadratico medio.
Il calcolo è semplice, non c'è da preoccuparsi.
:)

Si calcola prima la media dei valori di RR, cioè l'abbiamo già fatto precedentemente, ed è cioè l'Expectancy media.
Quindi si calcola la varianza, che altro non è che la differenza tra il singolo RR e la media dello stesso, il risultato si eleva al quadrato. Si sommano tutti questi valori ed il risultato finale si divide per il numero delle trades meno una.
Questa è la varianza.
Una volta ottenuta la varianza se ne calcola la radice quadrata ed il risultato è la deviazione standard.
Ecco la funzione per MT4 che calcola la deviazione standard per un array di variabili di tipo "double".

Codice: Seleziona tutto

double MathStdDev ( double &data[] )
{
   int total = ArraySize ( data );
   double mean = 0.0;
   for ( int p = total - 1; p >= 0; p-- )
      mean += data[p];
   
   mean /= (double)total;
   
   double variance = 0.0;
   for ( int p = total - 1; p >= 0; p-- )
      variance += MathPow( data[p] - mean, 2.0 );

   variance /= (double)total - 1.0;
   
   return MathSqrt( variance );
}
Siamo vicini alla fine, cioè alla formula finale per il calcolo dello SQN secondo la teoria di Van Tharpe.
Lo SQN si ottiene calcolando :
( Expectancy / RR_StandardDeviation ) * RadiceQuadrata ( NumeroTrades )
Cioè dividendo l'Expectancy per la deviazione standard di tutti gli RR calcolati e moltiplicando il risultato per la radice quadrata del numero delle trades.
:D

Ottimo direte, ecco il calcolo fatto.
Si, il calcolo è questo ma c'è la fregatura.
Come si vede nella formula, l'Expectancy è il valore medio degli RR di tutte le trades eseguite, quindi non è proporzionale al numero delle trades, stessa cosa per la deviazione standard, cioè è vero che su un numero elevato di campioni può essere più ampia, ma non certo è proporzionale al numero delle trades.
Invece, moltiplicando per il numero delle trades (anche facendone la radice quadrata) si ottiene un risultato che è più ampio quante più trades sono eseguite dal sistema.
Questo "difetto" nel calcolo è evidenziato anche da Van Tharpe, che invece di rendere inversamente proporzionale al numero delle trades il risultato della Expectancy moltiplicato la sua devizione standard, scrive che questo calcolo è valido mediamente per una serie di 100 trades, nel tentativo di normalizzare il valore da un trading system all'altro.
Per fare questo consiglia, in caso di sistemi con più di 100 trades di dividere brutalmente la parte di sinistra della formula ( Expectancy / RR_StandardDeviation ) per 100 così da bilanciare (malamente) il valore.
Poi ammette che si otterrà magari un valore più basso del dovuto, ma dopotutto è meglio sotto estimare un sistema che sovra estimarlo.
Su questo non concordo affatto, un sistema con 700 trades, se si divide per 100 la parte di sinistra restituisce un valore di SQN assolutamente schifoso comparato, sia con quello senza divisione, sia con quello tenendo in considerazione solo 100 trades di tutte quelle in esame.

Personalmente ho aggirato il problema calcolando il valore di SQN a serie di 100 trades per volta, in modo da avere X numeri di SQN calcolati su serie di 100 trades, poi uno può valutare quanto siano omogenei o meno questi x valori di SQN, ma almeno si ottiene un numero abbastanza credibile.
:D

Perchè "credibile" ?
Perchè il Sig. Van Tharpe fornisce anche una tabellina con il rank del sistema rispetto ai valori ottenuti, e quindi non è che se uno ottiene 0,1 è come ottenere 2. C'è un ranking.
Eccolo.
Quality Score
Less than 1.0 --- Probably very hard to trade
1.01 to 2.00 --- Average system (needs to be about 1.7 to be statistically significant)
2.01 to 3.00 --- Good system (significantly different from 0)
3.01 to 5.00 --- Superb System (few exist)
7.01 or higher --- Holy Grail System
Trovi interessanti i contenuti di forexometro? Considera la possibilità di iscriverti! :mrgreen: e poi di partecipare ...

Avatar utente
achab
Messaggi: 1114
Iscritto il: mer giu 01, 2016 10:13 am

Re: Calcolo dello SQN di Van Tharpe in MT4

Messaggio da achab »

Grazie Carlo,

interessante lezione. A questo punto mi incuriosisce sapere dove si collocano alcuni trading system famosi, tra cui sicuramente inserirei Plutus, per leggere sotto una nuova luce aggiunta, dati "vecchi".

Buon lavoro.
May the green pips be with us. Always!
/achab

Alcuni dei miei conti? Clicca qui.

Avatar utente
positiveday
Amministratore
Messaggi: 1905
Iscritto il: sab mag 28, 2016 9:23 pm

Re: Calcolo dello SQN di Van Tharpe in MT4

Messaggio da positiveday »

Grazie della domanda, come diceva qualcuno.
:D

Plutus è un po' meno di 2 di SQN.
Per quanto abbia una Expectancy modesta di 0,15 le oscillazioni sui valori di R/R sono ridotte (cioè la deviazione standard è molto buona) e quindi il risultato finale è buono.

Questi sono i valori di SQN calcolati a "chunk" di 100 trades (Plutus EURUSD 2008-2017 mm 5% ):

Codice: Seleziona tutto

PlutusServer_3.1 EURUSD,M1: Last SQN for last 72 orders : 1.557
PlutusServer_3.1 EURUSD,M1: SQN : 1.887
PlutusServer_3.1 EURUSD,M1: SQN : 1.968
PlutusServer_3.1 EURUSD,M1: SQN : 1.472
PlutusServer_3.1 EURUSD,M1: SQN : 1.799
PlutusServer_3.1 EURUSD,M1: SQN : 2.101
PlutusServer_3.1 EURUSD,M1: SQN : 2.005
Circa il calcolo dello SQN lo esegue (eseguirebbe) anche il Quant Analyzer 4, lo trovate sulla destra dell'Overview, ma il calcolo è ovviamente da prendere con un ampio beneficio del dubbio, poichè il valore varia in funzione dell'MM applicato, cosa che ovviamente non ha senso in quanto lo SQN serve proprio per valutare un sistema di trading indipendentemente da quanto si "pesti" sul MM.

Per il backtest (al 5% di MM) di cui ho scritto i risultati di SQN dieci righe qui sopra, il Quant Analyzer restituisce un valore di SQN di 1.71
Variando il MM e riducendolo all'1% il Quant Analyzer fornisce 1.86
Questi qui sotto sono i valori di calcolo dello SQN autocalcolati, cambiano in misura minima, solo per il diverso arrotondamento della size degli ordini al variare del MM.

Plutus EURUSD 2008-2017 mm 1%

Codice: Seleziona tutto

PlutusServer_3.1 EURUSD,M1: Last SQN for last 72 orders : 1.554
PlutusServer_3.1 EURUSD,M1: SQN : 1.883
PlutusServer_3.1 EURUSD,M1: SQN : 1.953
PlutusServer_3.1 EURUSD,M1: SQN : 1.463
PlutusServer_3.1 EURUSD,M1: SQN : 1.776
PlutusServer_3.1 EURUSD,M1: SQN : 2.068
PlutusServer_3.1 EURUSD,M1: SQN : 1.982
:D
Trovi interessanti i contenuti di forexometro? Considera la possibilità di iscriverti! :mrgreen: e poi di partecipare ...

Avatar utente
achab
Messaggi: 1114
Iscritto il: mer giu 01, 2016 10:13 am

Re: Calcolo dello SQN di Van Tharpe in MT4

Messaggio da achab »

Perfetto, grazie per l'esaustiva risposta.

Ora, per l'appunto, servirebbe un confronto con altri "famosi" trading system, ove possibile.

Ma non lo chiedo solo a Positiveday, ma anche a questa comunità (un po' sonnolenta, a dire il vero). Anche dai vostri TS potrebbero emerger delle informazioni interessanti.

Per quanto attiene a me, ammetto di non essere in grado di fare questi calcoli, ma metterò con piacere a disposizione di Carlo tutti miei dati se qualcuno, oltre il sottoscritto, fosse interessato a fare dei confronti.
May the green pips be with us. Always!
/achab

Alcuni dei miei conti? Clicca qui.

Avatar utente
positiveday
Amministratore
Messaggi: 1905
Iscritto il: sab mag 28, 2016 9:23 pm

Re: Calcolo dello SQN di Van Tharpe in MT4

Messaggio da positiveday »

Prego, il mio tutorial non è finito, adesso c'è la parte di codice applicato all'MACD Sample così teoricamente tutti potranno applicarlo al proprio trading system.
:D
Trovi interessanti i contenuti di forexometro? Considera la possibilità di iscriverti! :mrgreen: e poi di partecipare ...

Avatar utente
positiveday
Amministratore
Messaggi: 1905
Iscritto il: sab mag 28, 2016 9:23 pm

Re: Calcolo dello SQN di Van Tharpe in MT4

Messaggio da positiveday »

Nel calcolo di sopra c'era una inesattezza.
Calcolando l'SQN delle serie di 100 trades utilizzavo l'Expectancy calcolata sull'intero insieme di trades, mentre sarrebbe più giusto calcolarla sulle 100 trades in analisi.
Ecco quindi i risultati corretti per Plutus.

Dati complessivi dell'intero insieme di trades:

Codice: Seleziona tutto

AvgProfit : 255.7   AvgLoss : -491.5   AvgRiskAmount : 497.1
WinningOrders 509   LosingOrders 163
ProbabilityOfWinning 75.7    ProbabilityOfLosing 24.3
Expectancy : 0.150
Calcolo degli SQN e delle relative Expectancies :

Codice: Seleziona tutto

SQN from 2008.01.03 to 2009.03.06 : 2.282 - Expectancy : 0.171
SQN from 2009.03.09 to 2010.05.25 : 1.469 - Expectancy : 0.105
SQN from 2010.05.27 to 2011.08.16 : 1.441 - Expectancy : 0.120
SQN from 2011.08.24 to 2013.01.25 : 2.640 - Expectancy : 0.270
SQN from 2013.02.01 to 2014.08.11 : 1.366 - Expectancy : 0.104
SQN from 2014.08.18 to 2015.12.08 : 1.068 - Expectancy : 0.085
Last SQN from 2015.12.14 for last 72 orders : 2.204 - Expectancy : 0.213
Da questi dati si evince che ultimamente sta andando alla grande :D
Trovi interessanti i contenuti di forexometro? Considera la possibilità di iscriverti! :mrgreen: e poi di partecipare ...

maverik64
Messaggi: 50
Iscritto il: mar lug 12, 2016 5:35 pm

Re: Calcolo dello SQN di Van Tharpe in MT4

Messaggio da maverik64 »

positiveday ha scritto:
mer feb 01, 2017 9:22 am
Prego, il mio tutorial non è finito, adesso c'è la parte di codice applicato all'MACD Sample così teoricamente tutti potranno applicarlo al proprio trading system.
:D
Ciao Carlo,
ma il tutorial non l'hai più continuato? :( :( :(

Avatar utente
positiveday
Amministratore
Messaggi: 1905
Iscritto il: sab mag 28, 2016 9:23 pm

Re: Calcolo dello SQN di Van Tharpe in MT4

Messaggio da positiveday »

Mah, sai, scrivere per il gusto di schiacciare dei tasti a caso non è il massimo.
Tu saresti interessato al proseguimento?
:D
Trovi interessanti i contenuti di forexometro? Considera la possibilità di iscriverti! :mrgreen: e poi di partecipare ...

Rispondi