Dopo una pausa estiva riprendiamo gli articoli della categoria “trading system” dedicati all’approfondimento di tecniche di trading corredate da statistiche di funzionamento e listati. Non abbiamo finora trattato tecniche di “Swing trading” e colmiamo la lacuna con un listato preso da Omega Research basato sul Price Oscillator cui è stato aggiunto un filtro basato sulla regressione lineare. Nel caso long la regressione lineare a 19 periodi deve essere maggiore di quella calcolata a 20 e viceversa nel caso short. Le ulteriori condizioni per andare long (il caso short è simmetrico) sono:

  1. il Price Oscillator deve essere negativo;
  2. il prezzo di chiusura deve essere maggiore della media mobile a 50 periodi;
  3. Il Price Oscillator sull’ultima candela deve essere maggiore rispetto alla candela precedente.
swing

Curva dei profitti di portafoglio “Detailed” dal 1997 in avanti sull’azionario Ftsemib con curva underwater del drawdown.

Tutti gli ingressi sono at market.

Il test è stato condotto su candele daily di tutte le azioni del Ftsemib40 (nell’immagine di copertina test e segnali sul titolo Unipol).

L’esito è sintetizzato dala curva dei profitti che vedete.

Le buone notizie sono date da una curva dei profitti che negli hanno ha un andamento crescente e da un profit factor > 1,25, che diventa addirittura > 2 nel caso long con un discreto Sharpe ratio.

Le notizie negative sono date dal fatto che dal 2008 in avanti questa strategia fa una patta (e non sono conteggiate le commissioni che anche se hanno un piccolo impatto sul daily, un valore ce l’hanno); inoltre la parte short perde soldi nonostante una borsa italiana che in 20 anni, a differenza di altre borse, è scesa.

Tuttavia quello che facciamo è prendere strategie note e osservare se, con qualche piccola modifica guadagnano o perdono e se hanno del potenziale per ricavarci qualcosa di profittevole. In questo caso la base di partenza non è perdente, ci sono anche ampie zone di miglioramento (manca un money management ad esempio) ma è indubbio che ci siano codici didattici mostrati in altre occasioni che costituiscono una base di partenza già più alta di così.

Portfolio Performance Summary
All Trades Long Trades Short Trades
Net Profit 262358,06 362080,06 -99722
Gross Profit 1140843,43 716603,13 424240,3
Gross Loss -878485,37 -354523,07 -523962,3
Account Size Required 370782,86 219064,38 311592,63
Return on Account 70,7578716 165,2847715 -32,0039662
Return on Initial Capital 87,45268667 120,6933533 -33,24066667
Profit Factor 1,298648184 2,021315933 -0,809677147
Slippage Paid 0 0 0
Commission Paid 0 0 0
Open Net Profit 30608,7 7255,18 23353,52
Select Net Profit 270558,38
Adjusted Net Profit 184983,4311
Max Portfolio Drawdown -74538,19
Max Portfolio Drawdown (%) -13,55761656
Max Portfolio Close To Close Drawdown -45368,21
Max Portfolio Close To Close Drawdown (%) -7,668490888
Return on Max Portfolio Drawdown 3,519780397
Portfolio Performance Ratios
Upside Potential Ratio 69,90554403
Sharpe Ratio 0,072984355
Sortino Ratio 0,151384731
Fouse Ratio 0,002789345
Calmar Ratio 0,012382022
Sterling Ratio 0,001979036
Portfolio Net Profit as % of Largest loss 1169,52673
Portfolio Net Profit as % of Max Trade Drawdown 1053,972755
Portfolio Net Profit as % of Max Portfolio Drawdown 351,9780397
Select Net Profit as % of Largest loss 1206,081709
Select Net Profit as % of Max Trade Drawdown 1086,915954
Select Net Profit as % of Max Strategy Drawdown 362,9795411
Adj Net Profit as % of Largest loss 824,6099517
Adj Net Profit as % of Max Trade Drawdown 743,1351506
Adj Net Profit as % of Max Strategy Drawdown 248,1726898
Portfolio Time Analysis
Trading Period 19 Yrs, 10 Mths, 14 Dys
Time in the Market 19 Yrs, 9 Mths, 29 Dys
Percent in the Market 99,79264584
Longest flat period
Max Run-up Date 16/04/2015
Max Portfolio Drawdown Date 27/11/2009
Max Close To Close Drawdown Date 19/07/2012

{********************************************************************************

This Signal is provided as part of the Omega Research System Trading and

Development Club. For information on the club and other Omega Research

educational services, please call 800-422-8587 or 305-551-9991.

*********************************************************************************}

Inputs: FastLength(4), SlowLength(17), AvgLength(50), Nbars(3), FastLength2(5), SlowLength2(20), AvgLength2(50);

Variables: PriceOsc(0), PriceOscAgo(0), AvgFilter(0), PriceOsc2(0), PriceOscAgo2(0), AvgFilter2(0);

{Variables are defined}

PriceOsc = PriceOscillator(Close, FastLength, SlowLength);

PriceOscAgo = PriceOsc[1];

AvgFilter = Average(Close, AvgLength);

PriceOsc2 = PriceOscillator(Close, FastLength2, SlowLength2);

PriceOscAgo2 = PriceOsc2[1];

AvgFilter2 = Average(Close, AvgLength2);

{Long Entry}

If PriceOsc > PriceOscAgo AND PriceOsc < 0 AND Close > AvgFilter and Linearregvaluefc(C, 19, 0) > Linearregvaluefc(C, 20, 0) Then

Buy Next Bar at Market;

{Short Entry}

If PriceOsc < PriceOscAgo AND PriceOsc > 0 AND Close < AvgFilter and Linearregvaluefc(C, 19, 0) < Linearregvaluefc(C, 20, 0) Then

sell Next Bar at Market;

{Long Exit}

{If MarketPosition = 1 Then Begin

If PriceOsc < PriceOscAgo Then

sell Next Bar at Lowest(Low, NBars) Stop;

End;

{Short Exit}

If MarketPosition = -1 Then Begin

If PriceOsc > PriceOscAgo Then

buytocover Next Bar at Highest(High, NBars) Stop;

End;}