Dagens inlägg handlar om att utvärdera en strategi inom teknisk analys som använder RSI(2) för att generera köpsignaler och ett snabbt glidande medelvärde för att generera säljsignaler. Baserat på historiska data kan strategin vara intressant att inkludera i din portfölj av kortsiktiga strategier. Utvärderingen visar dock att en viss försiktighet är hälsosamt.
Vad innebär en RSI(2) strategi?
Till skillnad från utvärderingen i det föregående inlägget, analyserar vi här en strategi med hjälp av en indikator inom teknisk analys, nämligen RSI (Relative Strength Indicator). RSI är en klassisk indikator inom teknisk analys som utvecklades av J. Welles Wilder och beskrevs i boken ”New Concepts in Technical Trading Systems” från 1978. Indikatorn mäter prisstyrkan och RSI varierar från 0 till 100, där höga värden indikerar överköpta nivåer och låga värden indikerar översålda nivåer. Den klassiska inställningen är 14 dagar, vilket betecknas som RSI(14). Det betyder att vi analyserar prisutvecklingen 14 dagar tillbaka i tiden och jämför antalet uppdagar och deras styrka med antalet neddagar och deras styrka.
Vi kommer dock inte använda oss av RSI(14) utan av RSI(2) vilket är en betydligt mer kortsiktig indikator för vad som har hänt de senaste 2 dagarna. Strategin beskrevs av Larry Conners i bland annat boken ”Short Term Trading Strategies That Works” från 2009. Avsnittet där han beskriver strategin har han döpt till ”The 2-period RSI – The Trader’s Holy Grail of Indicators?”. Vi får se om strategin håller vad den lovar.
Enligt boken ger strategin en köpsignal när RSI(2)<10 (han använder sig också av RS(2)<5 i en strategi). Säljssignal ges av när stängningskursen är högre än ett glidande medelvärde på 5 perioder. I den ursprungliga strategin sker transaktion på stängningskurs. I vår analys kommer transaktion ske till öppningskurs dagen efter. I den ursprungliga strategin används även ett marknadsfilter där köp endast medges om stängningskursen är högre än ett glidande medelvärde på 200 dagar. Vi kommer här inte analysera strategin med marknadsfilter.
Sammanfattningsvis:
Figur 1. RSI(2)-indikatorn och OMXS30
Figur 1 visar tre köpsignaler och säljsignaler som strategin har genererat sedan augusti. De två senaste transaktionerna ägde rum i september, där vi fick köpsignaler den 8e september och den 26e september. Transaktionerna genomfördes dagen efter, alltså den 10e och den 27e september. Tiden på marknaden var 4 respektive 3 dagar. Säljsignalen aktiverades när stängningskursen låg under det korta glidande medelvärdet på 5 perioder (dagar). Hur ser kapitalkurvan (equity curve) ut över hela tidsperioden?
Jag kommer här att utvärdera strategin på indexet för de 30 största bolagen nämligen OMXS30 och undersökningsperioden är från 1990-06-18 till 2023-10-13. De första 200 dagarna är exkluderade från analysen. Inga transaktionskostnader är med i analysen. Eftersom vi analyserar OMXS30 kan handel ske i exempelvis ETF som XACT Bull eller i CFD hos exempelvis IGMarkets.
Jag analyserar alla strategier med utgångspunkt från att transaktioner sker dagen efter till öppningskurs. Detta val grundar sig på min avsikt att utveckla strategier som kan köras på kvällen eller morgonen efter att signalen har utlöst, och sedan genomföra köpet vid öppningen. Vid en signal har jag möjlighet att fortsätta analysera om köp eller sälj ska genomföras. Transaktionen dagen efter kan utföras till öppningskursen, men det kan även inkludera stopp- eller gränsvärden. I ett kommande inlägg kommer jag att jämföra olika metoder för att genomföra transaktioner efter det att en signal har genererats.
Om vi betraktar hela undersökningsperioden som en utvärderingsperiod (out-of-sample) ser resultatet ut som i nedanstående Figur 2.
Figur 2. Kapitalkurva (Equity curve) RSI(2)<10
Figur 2 visar kapitalkurvan från början av undersökningsperioden. Vi kan observera tre faser. Den första fasen sträcker sig fram till millenniumskiftet, då kapitalkurvan hade en uppåtgående trend, men den var svag. Den andra fasen började ungefär år 2000 och fortsatte fram till 2016. Under denna period ökade kapitalet betydligt, och RSI(2) presterade mycket bra. Efter 2016 har strategin haft sämre resultat. Resultatet har gått sidledes, vilket tyder på att man bör vara försiktig med att använda strategin idag.
RSI(2) strategin med optimerade parametrar
Kan resultatet förbättras genom optimering? Jag har valt att optimera strategin genom att testa olika gränsvärden för översåld, från 8 till 16 med steg om 2, samt det snabba glidande medelvärdet från 3 till 7 med steg om 1. Totalt har vi utfört tester på 25 olika kombinationer. Den kombination som resulterade i den högsta nettovinsten är där köpsignalen ges när RSI(2) är under 12, och säljsignalen sker, precis som tidigare, med det snabba glidande medelvärdet över 5 perioder. Med detta sagt, ger samtliga 25 kombinationer positiv nettovinst?
Figur 3. Nettovinst samtliga parmeterkombinationer
Figur 3 illustrerar nettovinsten för samtliga kombinationer av gränsvärden och det glidande medelvärdet. Vad vi kan notera är att nettovinsten har varit positiv oavsett vilken kombination som har använts. I den bemärkelsen är strategin robust. Kurvan är också relativt ”platt”, vilket betyder att skillnaden mellan den bästa och sämsta nettovinsten är förhållandevis liten. Kapitalkurvan för den bästa kombinationen genererar en något högre total nettovinst jämfört med den klassiska versionen av handelsstrategin (se Figur 4).
Figur 4. Kapitalkurva (Equity curve) optimerad version RSI(2)<12
Figur 4 visar kapitalkurvan för den bästa kombinationen av RSI(2) strategin. Det är viktigt att komma ihåg att kapitalkurvan återspeglar en optimering där hela undersökningsperioden har använts. När vi jämför resultaten i sin helhet, ser vi att den riskjusterade avkastningen är något bättre i den optimerade versionen jämfört med den klassiska. Vi kan analysera skillnaden mellan de två versionerna med hjälp av ett antal nyckeltal (se Tabell 1).
Tabell 1. Resultat för RSI(2) strategin
Larry Conner | Optimerad | |
Nettovinst | 221 968 kr | 253 472 kr |
Maximal drawdawn | 33 038 kr | 33 992 kr |
Nettovinst/drawdown (NP/DD) | 6,72 | 7,46 |
Vinstprocent | 69% | 69% |
Investerad i marknaden | 19% | 22% |
Profit factor | 1,84 | 1,86 |
Sharpekvoten | 0,32 | 0,37 |
Antal transaktioner | 381 | 437 |
Parametrar (överköpt och glidande medelvärde) | 10/5 | 12/5 |
Tabell 1 presenterar resultaten för Conners ursprungliga strategi med RSI(2)<10 jämfört med den optimerade strategin med RSI(2)<12. Båda strategierna använder ett glidande medelvärde över 5 perioder som säljsignal. Den optimerade strategin har något fler transaktioner än Conners (437 jämfört med 381). Ändå är antalet transaktioner på båda strategierna på en mycket bra nivå för att möjliggöra en utvärdering. Båda strategierna har varit investerade i marknaden ungefär 20% av tiden. Vinstprocenten är förväntat hög (nästan 70% av köpen resulterar i vinst). Nettovinsten i förhållande till drawdown är mycket attraktiv (6,72 jämfört med 7,46).
Den optimerade strategin är som förväntat något bättre än den ursprungliga. Den stora skillnaden är att den ursprungliga strategin kan betraktas som ett out-of-sample-test (hela undersökningsperioden används som en utvärderingsperiod), medan den optimerade strategin är ett in-sample-test (hela undersökningsperioden används som en träningsperiod). Att använda hela undersökningsperioden som träningsdata innebär alltid en risk för överoptimering eller överanpassning av strategin. För en korrekt utvärdering bör vi istället genomföra en Walk-Forward-analys. Den utvärderingsmetod som kommer att användas här presenterades av Robert Pardo i boken ”The Evaluation and Optimization of Trading Strategies” från 2008. Grundprincipen är att aldrig utvärdera en strategi med samma data (period) som strategin har utvecklats på. Det är en mycket viktig princip, men i praktiken kan det vara lätt att göra fel.
Frågan om RSI(2) är den bästa parametern för RSI eller kan RSI(1) eller RSI(3) ge ett ännu bättre resultat. Svaret är nej. Vid en optimering av RSI-värdet, gränsvärdet för översålt och det snabba glidande medelvärdet är RSI(2) fortfarande det som fungerar bäst.
Wall-Forward test av RSI(2) strategin
Hittills har vi optimerat strategin genom att maximera nettovinsten över hela undersökningsperioden. Detta kan dock medföra risken för överoptimering. En bättre metod är att dela upp undersökningsperioden i flera kortare perioder och optimera på en period medan utvärdering görs på en annan (träningsperiod respektive utvärderingsperiod). Vi har åstadkommit detta genom att bryta ned undersökningsperioden i flera block, där varje block omfattar en kombination av tränings- och utvärderingsperioder. Här använder vi 1-5 block. Vi har också varierat längden på utvärderingsperioden från 10-50% i steg om 10%. Utvärderingen baseras på effektivitetskvoten, det vill säga hur stor nettovinsten är i utvärderingsperioden i förhållande till träningsperioden.
Tabell 2. Walk-Forward analys, effektivitetskvoten.
Block | 10% | 20% | 30% | 40% | 50% |
1 | <60% | <60% | <60% | <60% | <60% |
2 | <60% | >60% | >60% | >60% | >60% |
3 | <60% | >60% | >60% | >60% | >60% |
4 | <60% | >60% | >60% | >60% | >60% |
5 | >60% | >60% | >60% | >60% | >60% |
Tabell 2 visar hur väl strategin fungerar i out-of-sample (utvärderingsperiod), vilket innebär att strategin är optimerad under en period men utvärderad under en annan. I den första raden har vi utvärderat strategin genom att dela upp hela undersökningsperioden i en träningsperiod och en utvärderingsperiod. I den första kolumnen är utvärderingsperioden 10% av hela undersökningsperioden medan träningsperioden är 90%. I den sista kolumnen är tränings- och utvärderingsperioden lika långa.
Resultaten kan tolkas enligt gränsvärdet på 60% som används i tabellen för att bedöma om strategin är acceptabel eller inte. Målet är att nettovinsten i utvärderingsperioden ska vara åtminstone 60% av vinsten i träningsperioden för att betraktas som acceptabelt.
I samtliga tester där ett block används, det vill säga en träningsperiod och en utvärderingsperiod, visar resultaten på ett sämre utfall än vad som kan accepteras. Det är inte överraskande med tanke på tidigare observationer som indikerar att strategin tycks ha tappat en del av sin förmåga att generera vinster sedan 2016.
När vi utvärderar strategin med flera tränings- och utvärderingsperioder (2 till 5 block), noterar vi att strategin ger acceptabla resultat, särskilt när utvärderingsperioden utgör mer än 10% av hela undersökningsperioden. Det tyder på att strategin presterar bättre när den har möjlighet att anpassas och utvärderas under olika marknadsförhållanden över tiden.
Slutsats
Att använda RSI(2)<10 som en strategi för att identifiera index eller enskilda aktier som kortsiktigt har sjunkit med förhoppning om att de kommer att stiga de närmaste perioderna är en populär metod. Strategin följer en mean reversion-logik och har funnits i litteraturen i minst två decennier. I detta fall har jag utvärderat strategin på OMXS30 över en 30-årsperiod.
Resultaten visar att strategin har fungerat mycket bra historiskt sett, men den har förlorat en del av sin förmåga att generera vinster under de senaste åren. Trots att strategin klarar mitt Walk-Forward-test, rekommenderas en viss försiktighet. Jag skulle inte för närvarande inkludera strategin i dess nuvarande form i en portfölj med strategier.
För att göra strategin mer aktuell med dagens marknadsläge har jag optimerat gränsvärdet och antalet perioder i det glidande medelvärdet genom att använda endast perioden efter 2016. Genom att använda köpsignaler när RSI(2)<10 och säljsignaler när det snabba glidande medelvärdet är över 2 perioder genereras en positiv nettovinst även för perioden efter 2016.
Figur 5. Kapitalkurvan (equity curve)
Figur 5 visar på kapitalkurvan avseende RSI(2) strategin optimerad över perioden 2016-2023. Efter Covid har strategin fungerat bra och i denna uppdaterade form skulle den mycket väl kunna inkluderas i en portfölj.