I dagens inlägg utvärderar jag återigen en strategi föreslagen av ChatGPT, nämligen Bollinger Squeeze. Den här gången intresserar jag mig för att hitta en strategi som bryter ut från en trading range. Den utvärderade strategin baserar sig på Bollinger Band, och framför allt på utbrott från det övre Bollingerbandet vid en squeeze.
Strategin Bollinger Squeeze
Bollinger Band är ett populärt verktyg bland traders för att analysera marknadstrender. Denna metod, uppkallad efter sin skapare John Bollinger, använder statistik för att skapa ett band runt ett värdepappers prisutveckling. Tänk dig Bollinger Band som elastiska band som expanderar och drar ihop sig runt priset på ett värdepapper.
Kärnan i strategin vi diskuterar här är fenomenet känt som Bollinger Squeeze. Det inträffar när dessa band drar ihop sig nära varandra, vilket signalerar en period av låg volatilitet i marknaden. Historiskt sett följs dessa lugna perioder ofta av kraftiga prisrörelser. Strategin fokuserar på att identifiera dessa rörelser och specifikt utnyttja utbrott från det övre bandet, vilket kan signalera början på en uppåtgående trend.
Förenklat kan man säga att när priset bryter igenom det övre Bollinger Bandet, tolkar vi detta som en möjlig indikation på att priset kommer fortsätta att stiga. Det är här vi ser en möjlighet att gå lång’ det vill säga att investera med förväntningen att tjäna på en ökning av priset.
Denna strategi är attraktiv för dess förmåga att fånga upp tidiga tecken på betydande prisrörelser. Det är dock viktigt att komma ihåg att ingen strategi är felfri. Därför används ofta Bollinger Band Squeeze tillsammans med andra indikatorer och analysmetoder för att stärka beslutsunderlaget och minska risken.
Först beräknar vi de övre och nedre Bollingerbanden samt deras skillnad. När skillnaden mellan de övre och nedre banden är mindre än vad den varit under en period (multiplicerat med en parameter), definierar vi detta som en squeeze. Om vi upplever en squeeze och dessutom en stängningskurs som stänger över det övre Bollingerbandet, så har vi en breakoutsignal. Denna breakoutsignal, om den inträffar under en bullmarknad, leder till att vi köper på nästa dags öppningskurs. Exit ges av Dstat, det vill säga den första dagen vi ser en vinst, men som längst inom 5 dagar.
50/50-utvärdering
Jag baserar min utvärdering av ChatGPT-strategin på dagsdata för OMXS30 (EOD-data), som omfattar dagens stängningskurs, öppningskurs, högsta och lägsta notering. Jag hämtar data från Yahoo Finance och NasdaqOMX. Liksom i mina tidigare utvärderingar genomför jag transaktioner dagen efter att signalen mottagits, till nästa dags öppningskurs. Simulerade köp utförs med en summa på 100 000 kr. Det är viktigt att notera att denna utvärdering inte inkluderar några transaktionskostnader. Utvärderingsperioden sträcker sig från 1990 till och med januari 2024.
Strategins utvärdering följer en process som visas i figuren nedan (se även tidigare inlägg). Under utvärderingsfasen använder vi en kortare period än den totala undersökningsperioden från 1990 till 2024. Vi tillämpar 50% av undersökningsperioden (in-sample) för att utveckla och optimera strategin, och använder de återstående 50% (out-of-sample) för att utvärdera den.
Figur 1. Utvärderingsprocess
Under utvecklingsfasen inkluderar och optimerar vi olika typer av indikatorer. Det första steget består i att bestämma vilken typ av strategi som ska utvecklas. I det andra steget lägger vi till och bedömer indikatorer som kan fånga det önskade beteendet. Under detta steg optimerar vi även parametrarna. Jag brukar optimera systemet baserat på förhållandet mellan nettovinst och maximal drawdown (NP/DD). Inkluderingen av fler indikatorer ökar systemets komplexitet och antalet parametrar som behöver optimeras.
Den strategi vi utvärderar idag är relativt enkel med ett litet antal parametrarkombinationer under test. Mitt mål är att skapa så enkla strategier som möjligt, med få parametrar för optimering. Om vi inte är nöjda med resultatet, kan vi i detta skede av analysen välja att inkludera eller exkludera indikatorer.
När vi är nöjda med strategin, utvärderar vi den med den andra halvan av undersökningsperioden. Denna del av den historiska datan har inte varit en del av strategiutvecklingen utan används enbart för utvärdering. För att bedöma strategins funktionalitet analyserar jag främst equity-kurvan för att se om den fortsätter uppåt, samt NP/DD-förhållandet. Om utvärderingen visar att strategin är framgångsrik, går vi vidare till nästa steg, Walk-forwardanalysen.
In-sample resultat av strategin Bollinger Squeeze
I den kod som jag bad ChatGPT ta fram har jag genomfört några korrigeringar och tillägg. Jag lade till exempel till bullmarknadsvillkoret (close > MA(200)) och exitvillkoret DSTAT. Jag upptäckte också att koden var felaktig på några ställen. Trots att den kompilerade korrekt, genererade den inte några transaktioner. Mitt exempel visar tydligt att fel i koden kan uppstå, även om den tekniskt sett är korrekt. Därför bör man alltid vara försiktig och noggrant granska koden för att säkerställa att den genererar köp- och säljsignaler där man förväntar sig dem.
I den första skattningen av de historiska resultaten använder strategin den klassiska uppsättningen av parametrar för Bollingerband, nämligen en längd på 20 dagar och 2 standardavvikelser. En squeeze definieras som att skillnaden mellan övre- och nedrebanden är lika med eller mindre än skillnaden i banden över 20 dagar (där multiplikatorparametern är lika med 1). Bullmarknaden definieras som när close > MA(200). Strategin har genererat totalt 696 signaler över en period på 15 år och andelen vinstgivande affärer ligger på hela 81%. Equity-kurvan visas i figuren nedan.
Figur 2. Equity-kurvan för Bollinger Squeeze med parametrarna (20,2,1,200).
Nettovinsten i förhållande till maximal drawdown uppnår 4,08 och profit factor når 1,38. Strategin har varit investerad i marknaden 22% av tiden.
I detta skede av utvärderingsprocessen skulle jag normalt lägga till olika indikatorer, men nu väljer jag att endast fokusera på att optimera parametrarna. Resultatet från denna optimering visas i figur 3 nedan, där vi ser equity-kurvan för den optimerade Bollinger Squeeze-strategin.
Optimeringen har omfattat Bollingerbandens parametrar, där vi analyserat längden från 5 till 25 dagar i steg om 5 dagar, standardavvikelsen från 1,5 till 3 i steg om 0,5, multiplikatorn från 0,75 till 1,5 i steg om 0,25 och Bullmarketfiltret där glidandemedelvärdet varierar från 100 till 200 dagar i steg om 10 dagar. Totalt testades 880 kombinationer och målfunktionen har varit att maximera förhållandet NP/DD. Optimeringen tog 3 sekunder. 740 signaler genererades och andelen vinstaffärer är 82%.
Figur 3. Equity-kurvan optimerad för Bollinger Squeeze strategi (10,2,1.25,100)
Skillnaderna är relativt små, men nettovinsten är högre i den optimerade strategin, och naturligtvis är även NP/DD högre. Den når nu en imponerande siffra på 6,25, och profit factorn ligger på 1,5. Dock är nettovinsten per affär låg, endast 246 kronor.
In- och Out-of-sample resultat
Vad händer om vi tillämpar strategin med dess optimerade parametrar på den första halvan av undersökningsperioden (50% optimeringsdata, in-sample) och sedan applicerar den på hela perioden (50/50)? Resultatet visas i equity-kurvan i figur 4 nedan.
Figur 4. Equity-kurvan för Bollinger Squeeze hela perioden (50/50).
Resultatet är rätt så godtagbart. Observera att skalan inte är densamma i figur 3 och 4. Den första halvan är identisk, medan den andra halvan i figur 4 visar resultatet när vi backtestar på historisk data out-of-sample. Nettovinsten har fortsatt att stiga, även om det kanske sker i en avtagande takt. NP/DD är till och med högre när vi analyserar hela undersökningsperioden och når nu hela 8,53. Profit factorn har sjunkit något till 1,42. Andelen vinstgivande affärer är något lägre (78%), och kanske det största problemet med strategin i dess nuvarande form är att nettovinsten per affär endast uppgår till 183 kronor. Trots några mindre goda egenskaper hos strategin tar jag den nu till nästa steg i analysen, nämligen walk-forwardanalysen.
Walk-forwardanalys av Bollinger Squeeze
I det tredje och kritiska steget utför jag en walk-forward analys (WFA) för att utvärdera ChatGPT-strategin Bollinger Squeeze. Denna metod delar upp analysperioden i flera optimeringsperioder (träningsperioder) och utvärderingsperioder (out-of-sample). I min analys använder jag upp till fem olika analysperioder. Utvärderingsperiodernas längd varierar mellan 10 och 50% av den totala analysperioden. Jag tillämpar kriteriet att prestationen under utvärderingsperioden bör vara minst 60% av den under optimeringsperioden. Detta krav säkerställer att en strategi som presterar bra in-sample också måste leverera starka resultat out-of-sample för att anses vara följdvärd. Jag genomför totalt 20 WFA-tester, och idealiskt sett bör de flesta uppfylla det fastställda kriteriet. Jag presenterar resultatet från WFA i figuren nedan.
Figur 5. Walk-forwardanalys av Bollinger Squeeze
Det som initialt såg så lovande ut, visar sig nu i en annan dager. Walk-forward analysen (WFA) indikerar att strategin, i dess nuvarande form, inte är varken robust eller effektiv. Dock kan den tjäna som en grund för en framtida strategi, där målet blir att öka nettovinsten per trade och att den står sig i WFA-testet. Detta är något vi får utforska vid ett senare tillfälle.
Slutsatser avseende Bollinger Squeeze
Efter en omfattande utvärdering av den Bollinger Band-baserade handelsstrategin, inklusive en anpassning till enbart långa positioner och tillägg av ett bullmarknadsfilter, har flera intressanta insikter framkommit. Trots att strategin visade lovande resultat under vissa delar av testperioden, framgår det tydligt att den inte är felfri. Den initiala tillämpningen av strategin på historisk data från 1990 till 2024 gav en hög andel vinstgivande affärer och en imponerande nettovinst i förhållande till maximal drawdown. Men när strategin testades med walk-forward analys (WFA) blev resultaten mindre övertygande, vilket pekar på brister i strategins robusthet och effektivitet över tid.
Intressant nog visade optimeringen av strategin, trots att den resulterade i en högre NP/DD och profit factor, på en låg nettovinst per trade. Detta indikerar att även om strategin kan vara lönsam över tid, är den kanske inte optimal för större kapitalvolymer eller för traders som söker högre avkastning per genomförd affär. Dessutom, när vi tillämpade strategin på hela tidsperioden, sjönk profit factorn något, vilket tyder på att strategin presterar bättre under specifika marknadsförhållanden än över långa, varierande perioder.
Sammanfattningsvis visar analysen att denna Bollinger Band-strategi har potential men behöver ytterligare förfining för att maximera dess effektivitet och lönsamhet, särskilt när det gäller nettovinst per trade och stabilitet i olika marknadsscenarier. Framtida arbete bör fokusera på att förstärka strategins robusthet, möjligen genom att integrera ytterligare indikatorer eller justera de existerande parametrarna, för att förbättra dess prestanda i både in-sample och out-of-sample tester. Detta kan utgöra grunden för en mer heltäckande och pålitlig handelsmetodik.
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.