Equity: $92,534

Backtest Optimization - Guide

Vad är Backtest Optimization? Detta verktyg testar olika parameterkombinationer på historiska data för att hitta de inställningar som maximerar profit för dina tradingstrategier.

Vad är Backtesting?

Backtesting innebär att simulera en tradingstrategi på historisk marknadsdata för att se hur den skulle ha presterat. Detta ger dig en indikation på strategins potential innan du använder den med riktiga pengar.

Systemet simulerar varje trade enligt strategins regler:

  • Entry signals: När strategin identifierar en köpmöjlighet baserat på prisrörelser
  • Exit conditions: När positionen stängs (take profit, stop loss, max hold time)
  • Risk management: Position sizing och kapitalhantering

Viktigt: Backtesting visar hur strategin skulle ha presterat historiskt, men garanterar inte framtida resultat. Marknadsförhållanden kan ändras, och överoptimering kan leda till dålig prestanda på ny data.

Adaptiv Optimering (AI-driven)

Adaptiv optimering är en intelligent metod som använder iterativ förbättring för att hitta de bästa parametrarna. Den är snabbare och mer effektiv än traditionell grid search.

Iteration 1: Grid Search (Bred täckning)

Första iterationen testar en bred uppsättning parameterkombinationer för att kartlägga hela parameterutrymmet. Detta ger en översikt över vilka områden som presterar bra.

  • Testar ~25 scenarior (beroende på totalt antal scenarior)
  • Bred täckning av olika parameterkombinationer
  • Identifierar initiala "hot spots" med bra prestanda
Iteration 2: Fokusering (Bayesian-style)

Efter att ha analyserat resultat från iteration 1, identifierar systemet de top 10 bästa resultaten. Därefter genereras nya parameterkombinationer runt dessa toppreultat.

  • Genererar variationer (±10-20%) runt de bästa parametrarna
  • Fokuserar på lovande områden istället för att testa slumpmässigt
  • Undviker att testa samma kombinationer två gånger
  • Testar ~15 nya scenarior per iteration
Iteration 3: Förfining

Ytterligare förfining runt de nya bästa resultaten. Systemet fortsätter att lära sig och förbättra sig.

Konvergens & Stopp

Optimeringen stoppar automatiskt när:

  • Konvergens: Förbättring mellan iterationer är mindre än 0.1% (konfigurerbart)
  • Max iterationer: När max antal iterationer (3) har nåtts
  • Inga nya scenarior: Om alla möjliga variationer redan testats
Fördelar med Adaptiv Optimering:
  • Snabbare: Fokuserar på lovande områden istället för att testa allt
  • Bättre resultat: Hittar optima mer effektivt
  • Smartare: Lär sig från tidigare iterationer
  • Flexibelt: Kan använda AI tunern (om konfigurerad) eller heuristics

Grid Search (Traditionell metod)

Grid Search är den traditionella metoden där alla möjliga parameterkombinationer testas systematisk. Detta ger en komplett översikt men kan ta längre tid.

  • Testar alla kombinationer från fördefinierade värden
  • Exhaustive search - inget missas
  • Bra för att få en fullständig bild av parameterutrymmet
  • Kan vara långsamt vid många scenarior

Om du avaktiverar "Adaptive Optimization" används Grid Search istället.

Historisk Data-tillgång

Systemet använder Alpaca Markets API för att hämta historisk data. Tillgänglig data varierar beroende på typ:

Data Typ Tillgänglig Period Användning
Minute Bars ~1-2 år tillbaka Day trading strategier (Spike, DipBounce)
Daily Bars ~5+ år tillbaka Swing trading strategier
Rekommenderade Perioder:
  • Day Trading: 3-6 månader (minute bars ger tillräckligt med data)
  • Swing Trading: 1-2 år (daily bars ger längre historik)
Tips: För långa perioder (>6 månader för day trading) kan det ta lång tid att hämta data. För korta perioder (<1 månad) kan du få för få trades för att dra slutsatser.

Hur man tolkar resultat

Ranking

Resultaten är rankade efter Total Return (profit), med sekundär sortering på Win Rate. Rank #1 är den bästa kombinationen.

Viktiga Metrics
Total Return
Total avkastning i procent. Exempel: 15% betyder att $10,000 skulle ha blivit $11,500. Högre är bättre
Win Rate
Andel trades som var vinnande. Exempel: 55% betyder att 55 av 100 trades var vinnande. >50% är bra
Profit Factor
Genomsnittlig vinst / Genomsnittlig förlust. Exempel: 1.5 betyder att vinster är 50% större än förluster.
  • ≥1.5 = Utmärkt
  • 1.0-1.5 = OK
  • <1.0 = Dåligt
Max Drawdown
Största nedgång från en topp i kapitalet. Exempel: -$500 betyder att kapitalet någon gång sjönk $500 från en topp. Lägre är bättre
Total Trades
Antal trades som strategin genererade under testperioden.
  • För få trades (<10): Strategin kan vara för restriktiv
  • För många trades (>200): Strategin kan vara för aggressiv
  • Optimalt: 20-100 trades för en 3-6 månaders period
Iteration Summaries

Om du använder adaptiv optimering visas en tabell med progress för varje iteration:

  • Iteration: Iterationsnummer (1, 2, 3...)
  • Scenarios Tested: Antal scenarior testade i denna iteration
  • Best Return: Bästa total return i denna iteration
  • Best Win Rate: Bästa win rate i denna iteration
  • Best Trades: Antal trades för det bästa scenariot

Du kan se hur optimeringen förbättras över tid. Om iteration 3 inte är mycket bättre än iteration 2, har optimeringen konvergerat (nått sitt optimum).

Viktiga Varningar

Överoptimering (Overfitting)

Överoptimering innebär att parametrarna är för finjusterade för historisk data och fungerar dåligt på ny data.

Hur man undviker:

  • Använd ut-of-sample testing: Testa på en period som inte användes för optimering
  • Välj parametrar som fungerar bra över flera olika marknadsförhållanden
  • Undvik att optimera för många parametrar samtidigt
  • Föredra enklare strategier med färre parametrar
Framtida Prestanda

Backtesting visar historisk prestanda, inte framtida. Marknadsförhållanden kan ändras:

  • Volatilitet kan öka eller minska
  • Marknadstrender kan vända
  • Nya regler eller händelser kan påverka marknaden
  • Strategier som fungerade i bull markets kan misslyckas i bear markets
Rekommendationer
  1. Starta konservativt: Använd de optimerade parametrarna med lägre position sizing initialt
  2. Monitorera: Följ upp hur strategin presterar i verkligheten
  3. Justera: Om prestanda skiljer sig från backtesting, justera parametrarna
  4. Diversifiera: Använd inte bara en strategi - kombinera flera för att minska risk

Tips & Best Practices

Välj Rätt Period
  • För day trading: 3-6 månader ger tillräckligt med data utan att vara för långt
  • För swing trading: 1-2 år ger bättre statistisk signifikans
  • Undvik perioder med extrema händelser (t.ex. COVID-19 crash) om du vill testa "normala" förhållanden
Välj Rätt Tickers
  • Testa på flera tickers för att få mer robusta resultat
  • Välj tickers med liknande egenskaper (volatilitet, sektor, etc.)
  • Undvik att optimera på bara en ticker - det kan leda till överoptimering
Antal Scenarior
  • 10-30 scenarior: Snabbt, bra för initial screening
  • 50-100 scenarior: Balanserat - rekommenderas för de flesta
  • 100-200 scenarior: Omfattande, tar längre tid men ger bättre täckning

Med adaptiv optimering behöver du ofta färre scenarior eftersom systemet fokuserar på lovande områden.

Iterationer
  • 2 iterationer: Snabbt, bra för initial testning
  • 3 iterationer: Balanserat - rekommenderas (standard)
  • 4-5 iterationer: Omfattande förfining, kan ta längre tid

Spara och Använda Strategiprofiler

Efter att ha kört en backtest-optimering kan du spara de bästa parameterkombinationerna som profiler och sedan använda dem direkt i live-trading via Settings-sidan.

Spara en Profil
  1. Kör en backtest-optimering och vänta på resultaten
  2. I resultattabellen, klicka på "Spara"-knappen för det scenario du vill spara
  3. En dialog öppnas där du kan:
    • Namnge profilen: Systemet föreslår automatiskt ett namn baserat på strategi, rank, return och datum (t.ex. Spike_Rank1_15pct_20241201)
    • Redigera namnet: Klicka på förslaget för att använda det, eller skriv in ett eget namn
    • Lägga till beskrivning: En beskrivning med backtest-resultat läggs automatiskt till, men du kan redigera den
  4. Klicka på "Spara Profil" för att spara
Vad sparas?
  • Strategiparametrar: Threshold, Window, Volume Multiplier, etc.
  • Exit-parametrar: Take Profit, Stop Loss, Max Hold Time
  • Backtest-metadata: Total Return, Win Rate, Antal Trades, Profit Factor
  • Beskrivning: Din anpassade beskrivning
  • Datum: När profilen skapades och när den senast applicerades
Använda en Profil i Live Trading
  1. Gå till Settings → Strategy Settings (/strategy-edit)
  2. Scrolla ner till sektionen "Anpassade Profiler (från Backtest Optimization)"
  3. Du kommer se alla sparade profiler med:
    • Profilnamn
    • Total Return som badge (t.ex. +15%)
    • Tooltip med beskrivning när du hovrar
  4. Klicka på den profil du vill använda
  5. Systemet applicerar automatiskt parametrarna på din live-konfiguration
  6. Du kan fortfarande justera individuella parametrar manuellt efter att ha applicerat profilen
Fördelar:
  • Snabbt: Applicera optimerade parametrar med ett klick
  • Säkert: Se exakt vilka parametrar som kommer användas innan du applicerar
  • Spårbart: Håll koll på vilka profiler som presterat bra i backtests
  • Flexibelt: Du kan alltid justera parametrar manuellt efter att ha applicerat en profil
Hantera Profiler

Profiler sparas permanent i databasen och kan användas när som helst. Du kan:

  • Applicera samma profil flera gånger: Om du ändrat parametrar och vill återställa till en sparad profil
  • Jämföra profiler: Testa olika profiler och se vilken som fungerar bäst i live-trading
  • Uppdatera profiler: Om du kör en ny optimering och hittar bättre parametrar, spara en ny profil
Viktigt: När du applicerar en profil från backtest-optimering, appliceras endast strategiparametrar och exit-parametrar. Andra inställningar som Risk Management, Market Filters, och Market Regime påverkas inte. Dessa bör konfigureras separat baserat på dina riskpreferenser.

Asynkron Batchhantering

För stora optimeringsjobb (mer än 20 tickers eller längre än 60 dagar) körs optimeringen automatiskt asynkront i bakgrunden för att undvika timeout-problem.

Hur det fungerar
  1. När du startar ett stort jobb skapas ett batchjobb i systemet
  2. Du får ett Job-ID som du kan använda för att följa upp jobbet
  3. Jobbet körs i bakgrunden via en Timer-triggered Azure Function
  4. UI:et pollar automatiskt jobbstatus var 5:e sekund
  5. När jobbet är klart visas resultaten automatiskt
Jobbstatus

Jobbet kan ha följande statusar:

  • Pending - Jobbet är skapat och väntar på att processas
  • Running - Jobbet körs just nu
  • Completed - Jobbet är klart, resultat är tillgängliga
  • Failed - Jobbet misslyckades (felmeddelande visas)
Progress Tracking & Uppskattad Tid

Systemet spårar framsteg under körningen och visar både progress bar och uppskattad tid kvar.

  • Progress Bar: Visar faktisk framsteg (0-100%) baserat på antal testade scenarior
  • Uppskattad tid kvar: Beräknas dynamiskt baserat på:
    • Faktisk framsteg och förfluten tid (när progress > 0%)
    • Initial uppskattning baserat på antal tickers och scenarior (när progress = 0%)
  • Progress Message: Visar aktuellt steg, t.ex. "Iteration 1: Tested 15/50 scenarios"
  • Toast-notifiering: Du får en notifiering när jobbet är klart (även om du har stängt fliken)
Uppskattad tid

Systemet beräknar uppskattad tid baserat på:

  • ~2.4 minuter per scenario för 68 tickers (baserat på historisk data)
  • Skalning: Tiden skalar linjärt med antal tickers (t.ex. 34 tickers = ~1.2 min/scenario)
  • 20% buffer: Läggs till för API-fördröjningar och nätverksvariationer

Exempel: 68 tickers, 50 scenarior ≈ ~144 minuter (2.4 × 50 × 1.2)

Fördelar
  • Inga timeouts: Jobbet kan köra så länge det behövs (timmar om nödvändigt)
  • Stäng fliken: Du kan stänga webbläsaren och komma tillbaka senare - jobbet fortsätter köras
  • Progress tracking: Se framsteg i realtid med progress bar och uppskattad tid
  • Automatisk uppdatering: UI:et uppdateras automatiskt var 5:e sekund med senaste status
  • Toast-notifiering: Få en notifiering när jobbet är klart
  • Persistent: Jobbet sparas i databasen och kan återupptas om något går fel
När används asynkron hantering?

Systemet detekterar automatiskt om ett jobb är stort nog att köras asynkront:

  • Mer än 20 tickers - Automatisk async
  • Längre än 60 dagar - Automatisk async
  • Mindre jobb - Körs synkront (direkt resultat)
Tips
  • För stora jobb (68 tickers, 3-4 månader): Räkna med att det kan ta 30-60 minuter eller mer
  • Progress bar: Om progress bar står kvar på 0% i flera minuter, kan det bero på att jobbet precis startat - vänta lite till
  • Uppskattad tid: Uppskattningen blir mer exakt ju längre jobbet har kört (baserat på faktisk framsteg)
  • Du kan stänga fliken och komma tillbaka senare - jobbet fortsätter köras och du får en toast-notifiering när det är klart
  • Om jobbet tar för lång tid, kontrollera att du har valt en rimlig period och antal scenarior
  • För snabbare resultat, testa med färre tickers först (t.ex. 10-15) för att validera parametrarna

Lagra & Jämför Testfall

Alla backtest-optimeringar sparas automatiskt som testfall och kan öppnas i efterhand via sidan /backtest-optimization-history. Här får du en komplett historik över varje jobb och kan jämföra, filtrera eller städa bort resultat.

Jobb-historik
  • Alla jobb visas i kronologisk ordning med status, period, antal tickers/strategier och bästa resultat
  • Klicka på ett jobb för att öppna detaljer – resultat laddas även om du stängde fliken när jobbet kördes
  • Se snabbt vilka jobb som kördes adaptivt (badge) och hur många scenarior som ingår
Filtrera resultat

Håll endast de bästa scenariona i ett jobb genom filtreringsdialogen:

  • Top N: Behåll t.ex. bara de 5 bästa resultaten
  • Min Total Return / Win Rate / Trades: Sätt trösklar för att rensa bort brus
  • Filtreringen uppdaterar både tabellen och jobbsammanfattningen (bästa return & win rate)
Ta bort scenarion eller hela jobb
  • Ta bort scenario: Klicka på sopikonen i resultattabellen för att ta bort oönskade kombinationer
  • Ta bort jobb: Rensa hela testfall som inte längre är relevanta
  • All borttagning kräver bekräftelse för att undvika misstag
Jämför testfall
  • Öppna ett jobb i högerkolumnen och fortsätt bläddra i listan till vänster för att snabbt skifta mellan testfall
  • Resultattabellen visar alla centrala metrics (Total Return, Win Rate, Profit Factor, Drawdown, Trades)
  • Rank 1 markeras tydligt med grönt men med mörk text för maximal läsbarhet
Workflow-tips: Kör en optimering, granska resultaten, spara lovande profiler, rensa bort övriga scenarion – historiken ger dig ett bibliotek av testfall att återvända till när du vill jämföra tidigare körningar.