Codice Trading System

Sul nostro Trendmercati presentiamo dei trading System di noti trader e li analizziamo, per testarli Out-Of-Sample e metterne a prova la robustezza applicandoli, senza modifica ai parametri, su diversi mercati.

Il codice di un trading system è il cuore del sistema: condividendolo qui, vogliamo invitarvi a commenti sulle prestazioni e sui miglioramenti possibili di algoritmi che già funzionano e che sono stati nel passato degli interessanti metodi di rading.

Il primo di questi metodi è il RSI2P, un semplice RSI a due periodi il cui utilizzo è però condizionato dalla verifica del trend in essere: la base della filosofia MR. Il controllo è fatto su una semplice media a 200 periodi per discriminare il trend principale, e sulla media a 5 periodi per definire la ‘tensione
di breve’ dei prezzi: infine lo RSI determina la situazione di eccesso. L’operazione si chiude con il superamento della media a 5 periodi, che rappresenta appunto il ‘ritorno alla media’ di breve, sotto  l’influsso del trend principale.
in formula abbiamo
BUY = Close>MA(Close, 200) AND Close < MA(Close, 5) AND RSI(2)<10
SELL = Close > MA (Close,5)
Per le operazioni short vale la regola contraria, ovviamente con un diverso valore dello RSI
SHORT = Close<MA(Close, 200) AND Close > MA(Close, 5) AND RSI(2) >90
COVER = Close < MA (Close,5)

Vi rimandiamo alla lettura del test completo, disponibile  sul numero di Marzo 2015 di Trendmercati

Qui vi forniamo il codice Amibroker :

SetTradeDelays(1,1,1,1);
BuyPrice=SellPrice=CoverPrice=ShortPrice=O;
SetPositionSize( 1, spsShares ) ;
MAlunga=MA(C,200);
MAbreve= MA(C,5);
RSI2=RSI(2);

Buy= C>MAlunga AND C<MAbreve AND RSI2<10; // AND ADX(10)>30;
Sell= C>MAbreve;
Short=C<MAlunga AND C>MAbreve AND RSI2>90; // AND ADX(10)>30 ;
Cover= C<MAbreve ;

Buy = ExRem( Buy, Sell );
Sell = ExRem( Sell, Buy );
Short = ExRem( Short, Cover );
Cover = ExRem( Cover, Short );

GfxTextOut(“Connors RSI2P”,10,20);
SetChartOptions(0,chartShowArrows|chartShowDates);

Plot( C, “Close”, colorBlack , styleCandle, styleOwnScale );
Plot ( MAbreve , “MA5”, colorRed );
Plot ( MAlunga , “MA200”, colorBlue );

shape = Buy * shapeSmallUpTriangle + Sell * shapeSmallDownTriangle ;
PlotShapes( shape, IIf( Buy, colorGreen, colorRed ), 0 , C );
shape = Short * shapeHollowSmallDownTriangle + Cover * shapeHollowSmallUpTriangle ;
PlotShapes( shape, IIf( Short, colorRed, colorGreen ), 0 , C );

Lascia un commento