I dagens analys ska vi granska en pendlingsstrategi från Lars Kestners bok ’Quantitative Trading Strategies’, tillgänglig på Amazon. Den här pendlingsstrategin, som tillämpas på OMXS30, baseras på ett oscillerande system med två glidande medelvärden. En intressant observation är att strategin inte bara uppvisar starka in-sample resultat, utan även uppvisar imponerande out-sample resultat, vilket inte alltid är fallet med handelsstrategier.

Pendlingsstrategins entry och exit

Pendlingsstrategin vi analyserar baseras på interaktionen mellan två glidande medelvärden: MA10 och MA50. Dess kärna utgörs av differensen mellan dessa medelvärden, vilken används för att generera handelssignaler. Vidare integreras en trendstyrkemätare genom ADX14, där ett värde under 30 indikerar en svag eller obefintlig trend, vilket är ett krav för att strategin ska aktiveras.

Köpsignal genereras enligt följande kriterier:

  • Om differensen (Osc = MA10 – MA50) är större idag jämfört med igår, och
  • Om ADX(14) är under 30,

då initieras ett köp vid nästa dags öppningspris. Positionen avslutas när Osc värdet är lägre idag än igår, vilket utgör en säljsignal.

För att ytterligare finjustera strategin kommer vi att utföra en utvärdering med de ursprungliga parametrarna samt genomföra en optimering av dessa. Dessutom planeras tester med ett ’Bullmarket filter’ för att se hur strategin presterar under olika marknadsförhållanden.

Strategiutveckling

I den här bloggen har vi utforskat en rad olika handelsstrategier som har bidragit till en omfattande katalog av villkor för att initiera och avsluta positioner, inklusive olika typer av filter. Varje system inkluderar i grunden ett villkor för att ta en position och ett för att avsluta den. Dessa villkor kan finjusteras baserat på marknadskonditioner, som att identifiera om marknaden är i en uppåtgående (bull) eller nedåtgående (bear) fas, eller om den kännetecknas av låg eller hög volatilitet.

I utvecklingen av handelsstrategier är det avgörande att balansera köp- och säljsignaler för att uppnå lönsamhet, samtidigt som man undviker att skapa en strategi som endast presterar väl i historisk data men inte i framtiden. Processen jag använder är inte unik, men jag har infört specifika komponenter som optimerar den för min användning. En grundläggande princip i all strategiutveckling är att undvika att utvärdera en strategis effektivitet på samma data som använts under dess utveckling. För att säkerställa detta tillämpar jag det så kallade 50/50-testet, där datamängden delas upp för att skapa en tydlig separation mellan utveckling och validering.

Som illustreras i bild 1 har jag integrerat flera kritiska komponenter i min strategiutvecklingsprocess. Dessa inkluderar:

  1. Uppdelning av data: Jag delar upp datamängden i en träningsperiod och en utvärderingsperiod för att säkerställa att strategin testas på oberoende data.
  2. Strategityp: Jag bestämmer om strategin ska vara lång (köp) eller kort (sälj), beroende på den förväntade marknadsrörelsen.
  3. Köpsignal och filter: Jag väljer en specifik köpsignal och, om nödvändigt, tillämpar filter för att förbättra signalens precision.
  4. Säljsignal: Jag fastställer en säljsignal som indikerar när det är dags att avsluta en position.
  5. Riskhantering: Jag implementerar mekanismer för att hantera och begränsa risk, vilket är avgörande för strategins långsiktiga hållbarhet.

Denna process är utformad för att skapa en robust och välbalanserad handelsstrategi som kan prestera över tid.

Bild 1. Strategiutveckling

Strategy development process

Jag har programmerat en katalog av villkor och filter så att de kan kombineras i en mängd olika varianter. Till exempel, om jag har 10 köpvillkor och 10 säljvillkor, finns det 100 möjliga strategikombinationer att utvärdera. Lägger jag till 10 ytterligare filter, ökar antalet kombinationer till 1000. Även om många av dessa kombinationer inte är effektiva, kan några visa sig ha potential, och ibland kan en oväntad kombination, som att köpa på en Bollinger Band-indikator men sälja baserat på RSI, fungera överraskande väl.

Efter att en strategi har passerat dessa steg och övergått till utvärderingsfasen, återvänder vi inte för ytterligare optimering eller justering. Om en strategi inte uppfyller de förutbestämda kriterierna, rör vi oss vidare till nästa potentiella strategi.

50/50-testet

Bild 2 nedan illustrerar den process vi följer för att utvärdera strategin. Utvärderingsfasen fokuserar på en mindre del av den totala perioden som sträcker sig från 1990 till 2024. Vi delar upp denna period i två delar: en in-sample period (50% av tiden) för utveckling och optimering av strategin, och en out-of-sample period (de återstående 50%) för att testa strategins effektivitet.

  1. Utvecklingsfas: Vi börjar med att definiera strategitypen. Sedan inkluderar och optimerar vi olika indikatorer som vi anser är relevanta för att fånga det önskade marknadsbeteendet. Optimeringen fokuserar på förhållandet mellan nettovinst och maximal drawdown (NP/DD). Det är värt att notera att ett ökat antal indikatorer höjer systemets komplexitet och mängden parametrar som behöver optimeras.
  2. Valideringsfas: Efter att ha utvecklat och finjusterat strategin med in-sample datan, testar vi den med den out-of-sample datan som inte har använts under utvecklingsfasen. Vi analyserar strategins equity-kurva och NP/DD-förhållandet för att bedöma dess prestanda. Om resultaten är tillfredsställande, avancerar vi till nästa steg, walk-forward analysen.

Målet är att skapa en strategi som är så enkel som möjligt men ändå robust, med en begränsad mängd optimeringskombinationer. Om strategin inte uppfyller våra krav under utvärderingsfasen, kan vi justera genom att lägga till eller ta bort indikatorer.

Bild 2. Utveckling och utvärdering

development and evaluation of trading strategies. In-sample and out-of-sample

Utvärdering av pendlingsstrategin

För att utvärdera den aktuella strategin använder jag dagsdata för OMXS30 (EOD-data), som omfattar dagens stängningskurs, öppningskurs, samt högsta och lägsta notering, hämtade från Yahoo Finance och NasdaqOMX. Transaktionerna simuleras att genomföras dagen efter att en köpsignal har mottagits, till följande dags öppningskurs, med en initial investering på 100 000 kr.

Utvärderingsperioden sträcker sig från 1990 till mars 2024. Preliminära resultat indikerar att strategin är lovande, med 1557 transaktioner under perioden och en vinstfrekvens på över 58%. Den totala nettovinsten är 184 000 kr, med ett förhållande mellan nettovinst och maximal drawdown på 3,01 och en profit factor på 1,25. Dock är den genomsnittliga nettovinsten per transaktion låg, endast 118 kr, vilket ifrågasätter strategins lönsamhet, speciellt med höga transaktionskostnader. Ett betydande inslag är att tiden i marknaden är relativt hög (37%), vilket ökar exponeringen för oförutsedda händelser.

Två figurer illustrerar strategins resultat: en visar equity-kurvan utan transaktionskostnader (figur 1) och en annan med en kostnad på 100 kr per transaktion (figur 2). Dessa grafer belyser strategins känslighet för transaktionskostnader, där höga avgifter kan förvandla den till en olönsam affär.

Figur 1. Equitykurvan ej optimerat parametrar (utan transaktionskostnader)

Equity curve in-sample and out-of-sample. OMXS30. Withot transaction cost.

Figur 2. Equitykurvan ej optimerat parametrar (med transaktionskostnader)

Equity curve in-sample and out-of-sample. OMXS30. With transaction cost

Optimering av strategin

Vi har initierat en optimeringsfas för pendlingsstrategin, där fokus ligger på att justera de ingående parametrarna med hänsyn till nettovinsten i förhållande till maximal drawdown (NP/DD) under träningsperioden. De parametrar vi optimerar inkluderar antalet dagar för de två glidande medelvärdena, dagarna för ADX, samt gränsvärdet för ADX. En viktig justering i denna optimeringsrunda är inkluderingen av transaktionskostnader, vilket är avgörande för att undvika att skapa en strategi som genererar en orealistiskt hög volym av transaktioner, vilket kan vara missvisande för systemets faktiska lönsamhet.

Denna gång antar vi att transaktionskostnaderna är 100 kronor per transaktion, vilket innebär 200 kronor för en fullständig köp- och säljcykel. Denna kostnad kan verka hög, men den speglar realistiskt både courtage, spread och slippage – det vill säga, den eventuella kostnaden för att vi inte alltid kan ta eller avsluta positionen till öppningskursen.

Figur 3 presenterar equity-kurvan för det optimerade systemet under hela perioden, inklusive både tränings- och utvärderingsfasen, med beaktande av transaktionskostnader. De optimerade parametrarna för systemet är nu MA(10) och MA(100), med en ADX(2) som är mindre än 15. Denna konfiguration visar på systemets prestation med de nya inställningarna.

Figur 3. Equitykurvan optimerat parametrar (träningsdata och utvärderingsdata)

Equity curve in-sample and out-of-sample. OMXS30

Från optimeringen av pendlingsstrategin framgår flera viktiga observationer. Först och främst har antalet transaktioner minskat betydligt, med en faktorreduktion på tio, vilket resulterar i endast 165 transaktioner. Av dessa är 60% vinstgivande. Den totala vinsten för strategin är relativt blygsam, 31 000 kronor, med ett NP/DD-förhållande på 2,97 och en profit factor (PF) på 1,48.

Denna prestation står i kontrast till de resultat som erhålls om transaktionskostnaderna ignoreras, där NP/DD-förhållandet är 6,6 och PF är 2,23. Denna jämförelse understryker vikten av att inkludera transaktionskostnader i strategins utvärdering. Det indikerar också att om lägre transaktionskostnader är möjliga, kan strategin fortfarande vara värt att överväga.

Det är dock tydligt att pendlingsstrategin presterar väl under träningsperioden men inte lyckas upprätthålla samma nivå av prestation under utvärderingsperioden, vilket är ett vanligt fenomen för många handelssystem.

Vidareutveckling av strategin

I dagens strategiutveckling har jag analyserat sex olika köpvillkor som alla utgår från det ursprungliga villkoret. Således är det första är den ursprungliga strategin. För det andra villkoret ändrades beräkningsintervallet till tre dagar istället för en dag. Det tredje villkoret introducerar en ytterligare bekräftelse, där både dagens och gårdagens skillnad måste uppfylla det definierade villkoret. De sista tre villkoren inverterar logiken så att dagens oscillatorvärde (Osc) måste vara lägre än värdet från dagen eller dagarna innan.

Dessa köpvillkor har sedan testats mot en uppsättning av 26 säljvillkor och 14 filtervillkor. Den strategi som visade sig vara mest optimal, med avseende på förhållandet mellan nettovinst och maximal drawdown (NP/DD), följer dessa parametrar:

  • Oscillatordefinition: Osc = MA(2) – MA(20)
  • Köpvillkor:
    • Osc(idag) > Osc(1 dag sedan)
    • ADX(20) < 30
    • Stängningskursen är över 200-dagars glidande medelvärde
  • Säljvillkor:
    • Sälj efter 20 antal dagar
  • Inga riskhanteringsvillkor har testats i denna strategi men transaktionskostnader ingår.

Köp genomförs dagen efter att alla villkor är uppfyllda vid öppningskursen. Denna metodik tillåter en grundlig testning av strategins robusthet och dess anpassningsförmåga till olika marknadskonditioner. Resultatet av den optimerade pendlingsstrategin med ett annat exitvillkor plus ett marknadsfilter enligt figur 4. Observera att att den första halvan avser in-sample men den andra avser out-of-sample.

Figur 4. Equitykurvan optimerad strategi och parametrar (träningsdata och utvärderingsdata)

Equity curve in-sample and out-of-sample. OMXS30

En modifiering av exitstrategin har haft en markant effekt på handelssystemets prestanda, vilket tydligt framgår av equity-kurvans utveckling under den andra halvan av testperioden. Där vi ser en stadig ökning till nya högsta nivåer. Efter att ha justerat för 75 000 kronor i transaktionskostnader, är nettovinsten (NP) hela 208 000 kronor. Förhållandet mellan nettovinst och maximal drawdown (NP/DD) över hela perioden är imponerande 6,58, men det bör noteras att detta främst är ett resultat från in-sample perioden. Under out-of-sample perioden sjunker NP/DD till endast 1,2, medan profit factor (PF) är 1,15.

En vinstfrekvens på 54% under out-of-sample perioden är lovande. Det är viktigt att observera att denna periodens resultat baseras på parametrar som fastställdes fram till ungefär 2008 – vilket innebär att strategin för närvarande är baserad på 15 år gamla parametrar. Trots detta uppvisar pendlingsstrategin en överraskande bra prestanda, vilket motiverar en walk-forward analys för att ytterligare testa dess robusthet och anpassningsförmåga över tid.

Walk-forwardanalys

I det tredje och avgörande steget i utvärderingen av pendlingsstrategin genomförs en walk-forward analys (WFA). Denna metod är viktig för att testa pendlingsstrategins robusthet genom att dela upp analysperioden i flera sekvenser av optimerings- och utvärderingsperioder. Jag använder upp till fem olika sådana sekvenser, där varje utvärderingsperiod utgör mellan 10% och 50% av den totala analysperioden.

Tidigare har jag använt ett kriterium där strategins prestanda under utvärderingsperioden ska vara minst 60% av prestationen under optimeringsperioden. Detta har varit en metod för att säkerställa att strategier som presterar bra in-sample även kan visa goda resultat out-of-sample. Nyligen har jag dock reviderat mina utvärderingskriterier för att inkludera en analys baserad på profit factor, som bör vara högre än 1,25, för att ge en mer nyanserad bedömning av strategins lönsamhet.

Totalt utförs 20 WFA-tester. Idealiskt ska majoriteten av dessa uppfylla både prestanda- och profit factor-kriterierna. Resultaten från dessa omfattande tester presenteras i figuren nedan, vilket ger en visuell representation av strategins effektivitet över de olika testperioderna.

Figur 5. WFA baserat på Profit factor > 1,25

Walk-forward analysis

Resultaten från testningen är ganska uppmuntrande. Av de 20 delurvalen i testet överträffar 15 stycken profit factor (PF) kriteriet på 1,25, med ett genomsnittligt PF-värde på 1,3. Intressant är att även de fem urval som inte uppfyller detta kriterium ändå visar på en positiv nettovinst, vilket indikerar att PF är större än noll för samtliga tester. Detta är särskilt anmärkningsvärt då testerna inkluderar relativt höga transaktionskostnader, vilket ytterligare understryker pendlingsstrategins robusthet.

Med dessa resultat anser jag att strategin har potential att ingå i min nuvarande portfölj av handelsstrategier. Nästa steg blir att finjustera pendlingsstrategins parametrar för att anpassa den till det aktuella marknadsläget och överväga olika tillvägagångssätt för riskhantering. Det skulle även vara värdefullt att analysera hur denna strategi kompletterar de övriga i portföljen, för att säkerställa en välbalanserad och diversifierad strategisammansättning.

Slutsatser

Sammanfattningsvis visar resultaten från utvärderingen och walk-forward analysen att den undersökta pendlingsstrategin bär på en betydande potential. Trots att endast 15 av 20 tester uppfyllde det strikta kriteriet på en profit factor över 1,25, visade samtliga tester en positiv nettovinst, även efter att ha tagit höga transaktionskostnader i beaktning. Denna konsistens i positiva utfall, även under skiftande marknadsförhållanden, stärker tron på att strategin är robust och kan bli en värdefull tillgång i vår strategiportfölj.

Innan ett fullständigt implementerande kommer ytterligare justeringar och anpassningar att göras för att optimera strategin för nuvarande marknadsmiljö samt att integrera effektiv riskhantering. Slutligen kommer en jämförelse med befintliga strategier i portföljen att genomföras för att säkerställa att den nya strategin bidrar med unikt värde och komplementerar den övergripande investeringsstrategin. Genom att kontinuerligt utvärdera och förbättra våra handelsstrategier kan vi sträva efter att maximera vår portföljs prestanda och minimera dess risker.


Bromma Tribe signaltjänst

Friskrivning

Informationen som presenteras i detta blogginlägg är endast avsedd för utbildnings- och informationsändamål och ska inte ses som investeringsrådgivning, rekommendationer eller uppmaningar att köpa eller sälja värdepapper. Även om informationen baseras på data som anses vara tillförlitlig, garanterar vi inte dess exakthet eller fullständighet och den bör inte förlitas på som sådan.

Investeringar på finansmarknaden är förenade med risk och det är möjligt att förlora hela eller delar av det investerade kapitalet. Historisk avkastning är ingen garanti för framtida resultat. Varje investerare bör göra en egen bedömning eller konsultera en professionell finansiell rådgivare innan något investeringsbeslut fattas.

Åsikterna och strategierna som diskuteras i blogginlägget är författarens egna och speglar inte nödvändigtvis åsikterna hos institutionen, företaget eller organisationen författaren är associerad med.

Synpunkter? Maila mig gärna på: system.trading.rules[at]gmail.com

Similar Posts