Trading system e rischio, un binomio sempre presente e troppo spesso stimato.

La matematica e la logica dei trading system dettano legge solo e solamente se sono in sintonia tra di loro.

Ti spiego meglio, se leggi questo articolo sono certo che avrai costantemente avuto a che fare con delle “run” di posizioni in perdita più o meno lunghe, magari hai provato ad aggiustare i parametri o ad accorciare lo stoploss, oppure ad allargare il profit, sappi che il tuo errore è comune alla grande maggioranza di chi si avvicina ai trading system, oppure di chi pensa di essere un mago dei mercati e non accetta le perdite.

Ricordati una cosa, semplicissima, matematicamente un buon sistema automatico, è vincente in un numero limitato di trade, spesso molto limitato.

Non sei d’accordo? prova a considerare tutte le variabili che deteriorano la performance, come costi, slippage, loss (non fare l’errore di contare un trade a break even come un trade non perdente) vedrai che un trading system, normalmente, è vincente per una percentuale di volte ben inferiore al 50%.

Bene, detto questo, stai ancora pensando agli errori comuni?

Un semplice modo per risolverli è quello di stimare in modo corretto il rischio, in modo da utilizzare un corretto valore economico delle perdite, se arrivi a questa situazione sei sulla strada giusta, credimi.

Nella pratica, una soluzione molto valida è quella di programmare il trading system in modo da avere una variabile decimale (double) che utilizzi come moltiplicatore del livello di target, rispetto allo stoploss.

Ti faccio un esempio pratico, attuabile su tutte le piattaforme di trading e di backtest di trading system:

#region Variables
private int stopLoss = 10;
private double moltiplicatore = 1;
#endregion

Nota bene, il valore del moltiplicatore deve essere sempre maggiore di 1, quindi il suo valore minimo va impostato ad uno.

Aggiungiamo una semplicissima logica al trading system, basata su qualsiasi tipo di segnale, ricordati che qui lo scopo è esclusivamente didattico !

Arrivati a questo punto, avrai notato che non ho incluso la variabile che valorizza il profit target, bene, proprio questo è il punto!

Se utilizzi, come valore di profit target, un valore che sia almeno pari o più grande dello stoploss (attraverso il moltiplicatore), noterai come l’ incidenza del rapporto tra rischio e rendimento sia effettivamente fondamentale.

protected override void Initialize()
{
CalculateOnBarClose = true;
SetStopLoss(CalculationMode.Ticks, stopLoss);
SetProfitTarget(CalculationMode.Ticks, moltiplicatore*stopLoss);
}

La procedura che hai visto è una tecnica della “vecchia scuola” che, se ci pensi bene, matematicamente e logicamente, ha senso ed è utile per minimizzare il valore del rischio o, se preferisci, per massimizzare il rapporto tra rendimento e rischio.

 

Buon lavoro e non dimenticarti di visitare la pagina relativa al corso di programmazione di trading system per “non programmatori” !