Ottimizzare
un sistema, significa cambiare, tramite variabili i parametri che regolano
le regole di setup, entry ed exit.
Su alcune
azioni, ad esempio i risultati migliori si potrebbero ottenere comprando
alla rottura del rialzo di una media a 40 periodi, mentre su altre azioni
i risultati sarebbero catastrofici.
Tutto ciò
dipende dal "carattere" delle azioni, che cambia da azione ad
azione, da mercato a mercato ....
Tanto per
complicare le cose gli stessi titoli e mercati, cambiano carattere nel
tempo.
Per alcuni
titoli l'iper venduto potrebbe essere con uno stocastico sotto il valore
30, mentre per altri sotto il valore 20.
Inserendo
troppe variabili ed eseguendo i test indietro nel tempo, si ottengono
splendidi risultati e si crede di aver creato un ottimo sistema, mentre
non ci si rende conto di aver semplicemente commesso un errore di
overfitting.
La prova di
tutto ciò è che il proprio trading system è perfetto nei back test
(test su serie storica passata) , mentre nei foward test (testato nella
realtà, senza sapere il comportamento futuro del titolo) risulta perdente.
ESEMPIO DI
OTTIMIZZAZIONE
ENTER
LONG:
M1:= Mov(C,opt1,E) ;
C>M1
CLOSE
LONG:
M2:= Mov(C,opt2,E) ;
C<M2
Le
variabili opt1 e opt2 sono quelle che ci permettono di ottimizzare il
sistema:
opt1 va da
18 a 50 con step (intervallo) 3
opt2 va da
9 a 18 con step 3
Facendo
fare i test con questi parametri di ottimizzazione, il nostro sistema
ottiene i migliori risultati con
opt1=24
opt2=9
Item Value Item Value
Total net profit 131.05 Open position value N/A
Percent gain/loss 13.11 Annual percent gain/loss 6.63
Initial investment 1000.00 Interest earned 0.00
Current position Out Date position entered 10/03/2004
Buy/Hold profit -283.38 Days in test 722
Buy/Hold pct gain/loss -28.34 Annual B/H pct gain/loss -14.33
Total closed trades 38 Commissions paid 163.27
Avg profit per trade 3.45 Avg Win/Avg Loss ratio 1.80
Total long trades 38 Total short trades 0
Winning long trades 16 Winning short trades 0
Total winning trades 16 Total losing trades 22
Amount of winning trades 555.67 Amount of losing trades -424.61
Average win 34.73 Average loss -19.30
Largest win 169.18 Largest loss -52.60
Average length of win 11.31 Average length of loss 3.59
Longest winning trade 25 Longest losing trade 8
Most consecutive wins 4 Most consecutive losses 5
Total bars out 316 Average length out 8.10
Longest out period 90
System close drawdown -52.60 Profit/Loss index 23.59
System open drawdown -52.60 Reward/Risk index 71.36
Max open trade drawdown -50.80 Buy/Hold index 146.25
Mentre
senza ottimizzazione, lasciando quindi
opt1=opt2=9
, i risultato sarebbe:
Item Value Item Value
Total net profit -106.37 Open position value N/A
Percent gain/loss -10.64 Annual percent gain/loss -5.38
Initial investment 1000.00 Interest earned 0.00
Current position Out Date position entered 10/03/2004
Buy/Hold profit -283.38 Days in test 722
Buy/Hold pct gain/loss -28.34 Annual B/H pct gain/loss -14.33
Total closed trades 50 Commissions paid 175.71
Avg profit per trade -2.13 Avg Win/Avg Loss ratio 1.95
Total long trades 50 Total short trades 0
Winning long trades 15 Winning short trades 0
Total winning trades 15 Total losing trades 35
Amount of winning trades 533.89 Amount of losing trades -640.25
Average win 35.59 Average loss -18.29
Largest win 180.42 Largest loss -65.65
Average length of win 12.40 Average length of loss 3.29
Longest winning trade 26 Longest losing trade 8
Most consecutive wins 3 Most consecutive losses 7
Total bars out 299 Average length out 5.86
Longest out period 28
System close drawdown -238.91 Profit/Loss index -16.61
System open drawdown -238.91 Reward/Risk index -44.52
Max open trade drawdown -64.08 Buy/Hold index 62.46
Con
ottimizzazione il nostro sistema aveva un gain annuo di 6,63%
Senza
ottimizzazione il gain annuo diventa una perdita di -5,38%
Ho scelto
un titolo che ha passato buona parte del tempo dedicato al test in
congestione ed ho applicato un sistema di tipo trend following, che in
queste condizioni subisce le maggiori perdite, ... grazie alle
ottimizzazioni il sistema ha funzionato lo stesso, ma nella realtà il
risultato sarebbe stato catastrofico.
MORALE:
le ottimizzazioni vanno usate solo al fine di tarare un sistema che sia
già stabile e funzionante, non vanno utilizzate per fare i miracoli nei
back test.
|