Swing-screener (EMA · RSI · Bollinger) & backtest med hybrid ATR-stop — C25
Screeneren henter den seneste kursdata for alle C25-aktier fra Yahoo Finance, beregner tre uafhængige indikatorer på dagsbasis og giver hver aktie en score fra 0 til 6 efter hvor mange swing-betingelser der er opfyldt lige nu. Den fortæller hvad der ser interessant ud i dag — ikke om strategien historisk har virket (det er backtestens job).
Pointen er at dække tre forskellige dimensioner, så man ikke måler det samme tre gange. Mange begyndere kombinerer RSI + Stochastic + MACD, men de er alle momentum-mål og giver falsk tryghed.
| Trend (EMA) | To eksponentielle glidende gennemsnit (EMA20 og EMA50) viser retningen. Swing handles bedst med trenden. |
| Momentum (RSI) | RSI(14) måler styrke og timing — er aktien overkøbt/oversolgt, og holder kraften? |
| Volatilitet (Bollinger) | Bollinger Bands viser hvor strakt prisen er væk fra gennemsnittet — bruges til entry-timing. |
RSI bruger Wilder-udglatning — samme metode som TradingView og de fleste handelsplatforme — så tallene matcher det du ser i din platform.
For hver aktie beregnes konkrete niveauer ud fra ATR (Average True Range — aktiens normale daglige udsving), så de tilpasser sig den enkelte akties volatilitet i stedet for en fast procent:
| Entry | Aktuel lukkekurs — niveauet du ville gå ind på. |
| Initial-stop | entry − 2×ATR. Det stramme stop du sætter på dag ét. Rammer kursen det, er handlen forkert, og du er ude. Risiko% og position-sizing baseres på dette niveau. |
| Trailing-stop | højeste_kurs − 3×ATR (her vist ved entry). Dette stop følger kursen opad for at sikre gevinst — og flyttes aldrig nedad. Ved entry ligger det under initial-stoppet og er endnu ikke aktivt; det overtager når kursen er steget nok (ca. 1×ATR i gevinst). |
| Mål | entry + 2× risiko = et 2:1 reward/risk-niveau. Et statisk referencepunkt til at vurdere om handlen er værd at tage. |
| Risiko% | Afstanden fra entry til stop i procent — altså hvor meget du taber på pengene i selve positionen hvis stoppet rammes. Fx betyder 6,9% ud for Novo: køber du til 285,55 og rammer stoppet på 265,73, taber du 6,9% af det du lagde i Novo. |
| Antal / Position | Position-sizing-beregner: indtast dit depot og hvor mange % du vil risikere pr. handel i felterne over tabellen. Kolonnerne viser så hvor mange aktier du skal købe (depot × risiko% ÷ risiko pr. aktie) og positionens størrelse i kr — opdateres live. Så taber du præcis dit risikobudget hvis stop-loss rammes, uanset hvor volatil aktien er. |
Pas på forskellen: Risiko%-kolonnen er risikoen på positionen — IKKE på dit depot. De 6,9% for Novo er ikke 6,9% af din konto. Hvor meget af depotet du risikerer, styrer du selv med positionsstørrelsen: med depot 100.000 og 1% risiko køber beregneren 50 Novo-aktier (14.278 kr) — falder Novo de 6,9% til stoppet, taber du 6,9% af de 14.278 kr ≈ 1.000 kr = 1% af depotet. Position-risiko ≠ konto-risiko.
Stoppet er ikke fast. Du starter med initial-stoppet på dag ét (det er alt der er at beskytte, for du har endnu ingen gevinst), og derefter trailer du det opad for at sikre gevinst:
entry − 2×ATR).højeste_kurs siden entry − 3×ATR. Er det højere end dit nuværende stop, så ryk stoppet op dertil. Ellers lad det stå."Trailing-stop"-kolonnen viser niveauet beregnet ved entry. For aktier du allerede er i, viser backtest-fanen hvor trailing-stoppet sidder lige nu (det er rykket med op i takt med kursen).
Vigtigt: backtest-strategien exit'er i praksis via trailing-stoppet der følger kursen op — ikke ved et fast mål. "Mål"-kolonnen er derfor et referenceniveau for reward/risk, ikke et mekanisk salgssignal. Lader du vinderne løbe med trailing-stoppet, kan exit blive både højere og lavere end målet.
Højere score = flere uafhængige betingelser peger samme vej samtidig. En score på 5–6 er et stærkt sammenfald; 0–2 betyder at aktien ikke er i et swing-setup nu. Klik på en kolonneoverskrift for at sortere. Brug "Signaler" til at se hvilke betingelser der udløste scoren.
| Aktie | Score | RSI | Entry | Initial-stop | Trailing-stop | Mål | Risiko% | Antal | Position | Signaler |
|---|
Score 0–6: trend (EMA20>EMA50, pris>EMA20) · momentum (RSI sund / kryds op fra oversolgt) · volatilitet (pris ved nedre Bollinger) · volumen over snit. Højere = flere swing-betingelser opfyldt samtidig.
Dette er en selektiv reversal-strategi der KUN kigger på C25. Den leder efter én bestemt situation: en sund optrend tager en kort korrektion ned til sit korte gennemsnit (EMA20), momentum køler af — og så vender det med en bekræftende candle. Så køber du dukken frem for at jagte toppen.
| Kun C25 | Kun de største, mest likvide danske aktier. |
| Ikke sidelæns | EMA50 skal hælde opad (over slope-dage). Et fladt marked har ingen trend at købe pullbacks i — de aktier springes over. |
| Ikke ekstrem volatilitet | Biotech/vækst med springvise, nyhedsdrevne udsving passer ikke til et roligt pullback-setup. Genmab og Bavarian Nordic er hårdt ekskluderet, og et dynamisk ATR%-loft (standard 5%) fjerner alt andet der bliver for volatilt — fx Ørsted/Vestas i urolige perioder. |
| Hammer | Lille krop i toppen af dagens range med en lang nedre skygge: sælgerne pressede kursen ned, men køberne tog kontrollen tilbage før luk. |
| Bullish engulfing | En grøn dag hvis krop helt omslutter gårsdagens røde — et tydeligt skift fra sælger- til køber-dominans. |
RSI bruger Wilder-udglatning (som TradingView), så tallene matcher din platform. Entry, stop og mål beregnes med samme ATR-baserede hybrid-stop som resten af appen, så pullback-handler er direkte sammenlignelige med screeneren og backtesten.
| Aktie | RSI | ATR% | Entry | Initial-stop | Trailing-stop | Mål | Risiko% | Antal | Position | Signaler |
|---|
Kun C25 · ikke sidelæns (EMA50 stiger) · ikke biotech/ekstrem volatilitet (navneliste + ATR%-loft). Købssignal = pullback til EMA20 + RSI vender op + hammer/bullish engulfing. Ikke investeringsrådgivning.
Kør præcis samme entry-regel dag-for-dag på historikken og se om den har en edge. Exit sker via det samme hybrid ATR-stop som backtest-fanen (stramt initial-stop, derefter trailing-stop der følger kursen op). Kun C25, biotech ekskluderet.
| Aktie | Handler | Win% | Afk/handel | Strategi | Buy&Hold | MaxDD | Status | Åbnet | Trailing-stop |
|---|
Samme entry som scanneren; exit via hybrid ATR-stop. Inkl. kurtage; uden slippage/udbytte. Historisk afkast er ingen garanti. Ikke investeringsrådgivning.
En backtest simulerer strategien dag for dag på historiske kurser og viser hvordan den ville have klaret sig. Hvor screeneren kigger på i dag, svarer backtesten på det vigtige spørgsmål: har reglerne overhovedet en edge? Den handler én position ad gangen pr. aktie, long-only.
Køb til næste dags luk når alle tre er opfyldt (intet fremtidskig — signalet bruger gårsdagens data):
slope dage siden). Dette filter sorterer lokale optrends i flade/faldende markeder fra.ATR (Average True Range) måler aktiens normale daglige udsving, så stoppet tilpasser sig den enkelte akties volatilitet i stedet for en fast procent. Stoppet kombinerer to ben og rykker kun opad:
entry − init×ATR kapper tabere hurtigt.højeste_kurs − trail×ATR overtager når handlen kommer i gevinst og lader vinderen løbe.Det giver det bedste fra begge: hurtig beskyttelse nedad, plads til at ride trenden opad.
| Init-stop ×ATR | Hvor stramt det indledende stop sidder. Lavere = kapper tab hurtigere, men piskes oftere ud af normal støj. |
| Trail-stop ×ATR | Hvor meget luft vinderen får. Højere = rider trends længere, men giver mere gevinst tilbage ved vendinger. |
| EMA50-slope | Antal dage EMA50 skal være steget over. 0 = filter fra (flere handler, mere risiko). 10–20 = mere selektiv. |
| Kurtage %/ben | Handelsomkostning pr. ben. En rundtur (køb+salg) koster det dobbelte. Modelleret realistisk på begge ben. |
| Handler | Antal gennemførte handler. Få handler = lille stikprøve = mindre statistisk troværdigt. |
| Win% | Andel vindende handler. Må gerne være under 50% og stadig give overskud — trailing-stoppet gør vinderne større end taberne (asymmetri). |
| Afk/handel | Gennemsnitligt afkast pr. handel efter kurtage. |
| Strategi | Samlet afkast med renters rente over perioden. |
| Buy&Hold | Hvad man fik ved bare at eje aktien hele perioden — referencepunktet. |
| MaxDD | Max drawdown: største fald fra top til bund på egenkapitalkurven. Strategiens vigtigste egenskab er typisk lav drawdown. |
| Status | Om strategien har en åben position lige nu (på seneste handelsdag): "I marked" = long, "Ude" = ingen position. |
| Trailing-stop | Det live stop-niveau lige nu for aktier hvor status er "I marked" — dvs. hvor du ville lægge dit stop i dag hvis du fulgte strategien. Hold musen over tallet for entry, aktuel kurs og afstand til stop. |
Status- og trailing-stop-kolonnerne bygger bro mellem den historiske test og i dag: for de aktier hvor strategien aktuelt er long, ser du præcis hvor det trailing-stop sidder nu (højeste_kurs − trail×ATR).
| Aktie | Handler | Win% | Afk/handel | Strategi | Buy&Hold | MaxDD | Status | Åbnet | Trailing-stop |
|---|
Strategi: køb ved RSI-kryds op gennem 40 i optrend (EMA20>EMA50 + EMA50 stigende). Exit via hybrid ATR-stop. Inkl. kurtage; uden slippage/udbytte. Ikke investeringsrådgivning.
Et parameter-sweep kører backtesten igen og igen med forskellige indstillinger og sammenligner dem, så du kan finde den kombination der historisk har virket bedst — i stedet for at gætte parametrene. Det automatiserer den kedelige del af tuning.
Sweepet kører alle meningsfulde kombinationer af et grid over tre parametre (kombinationer hvor trailing er smallere end initial-stoppet springes over):
| Init-stop | 1,5 · 2,0 · 2,5 ×ATR |
| Trail-stop | 2,5 · 3,0 · 4,0 ×ATR |
| EMA50-slope | 0 (fra) · 10 · 20 dage |
Hver tickers kursdata hentes kun én gang og genbruges på tværs af hele gridet, så det ikke spammer datakilden. Hver række i resultatet er gennemsnittet over alle de valgte aktier for den parameterkombination.
Rækkerne rangeres efter en risikojusteret score: gns. afkast / gns. max drawdown. Den belønner altså ikke bare højt afkast, men højt afkast pr. enhed nedside-risiko. To strategier med samme afkast adskilles af, hvor ondt det gjorde undervejs.
| Init | Trail | Slope | Afkast | Win% | MaxDD | Handler | Score |
|---|
Sweep tester (init × trail × slope) over de valgte aktier og rangerer efter score = afkast/drawdown. Kan tage et par minutter. Vælg en robust top-række frem for den med højest råt afkast (overfitting-fare).
Den daglige rutine til at vedligeholde dine stop. Indtast de aktier du faktisk ejer med din entry-dato (og evt. din præcise entry-kurs), så beregnes dagens korrekte trailing-stop ud fra din entry — ikke som om du gik ind i dag (det er forskellen fra screeneren).
Stop-ratchet'en replays dag for dag fra din entry: initial-stop ved entry − 2×ATR, derefter højeste_kurs − 3×ATR der kun rykker opad — nøjagtig som strategien. Resultatet er det niveau du skal lægge dit stop på i dag.
Dine positioner gemmes lokalt i browseren, så du ikke skal taste dem ind igen hver dag.
| Aktie | Entry | Kurs | Højeste | Gevinst | Trailing-stop | Nordnet trail % | Status |
|---|
Trailing-stoppet regnes fra din faktiske entry-dato med samme ATR-logik som strategien. Brug enten det absolutte niveau (almindelig stop-loss, justeret dagligt) eller "Nordnet trail %" i Nordnets trailing stop. %'en er afstanden fra aktuel kurs til stoppet — den placerer stoppet på niveauet nu og traier op. Da Nordnets % er fast (ikke ATR), bør den gentjekkes jævnligt.