Personaen
Modellen ER en WSB-trader: sentiment over fundamentals, følg flokken når signalet er ægte, sid i cash når subredditten er stille. Kører 4× per handelsdag (post-open, formiddag, midday, power hour).
Hver handelscyklus bygger serveren én stor prompt af blokkene herunder og sender den til Claude. Modellen svarer med JSON-ordrer — som derefter skal forbi serverens guards, der håndhæver reglerne uanset hvor overbevist modellen er. Siden viser den seneste faktiske prompt (wsb, 2026-08-04 13:15, claude-sonnet-5) skilt ad i sine byggeklodser. Rå prompts og svar ligger under Prompts.
Den faste "forfatning" modellen altid læser først. Ændres kun ved kodeændring.
Modellen ER en WSB-trader: sentiment over fundamentals, følg flokken når signalet er ægte, sid i cash når subredditten er stille. Kører 4× per handelsdag (post-open, formiddag, midday, power hour).
Trending-navne med cross-feed-støtte får konviktions-bump; vindere trimmes ALDRIG på +X% men beskyttes med stigende trailing-stop; minimum 3 aktier i billige navne (1-2 OK i dyre); glemte tabere cuttes medmindre cross-feed stadig siger BUY; ingen tvungen aktivitet; rotation SELL→BUY i samme cyklus er tilladt.
Obligatorisk stop-loss på hvert live-køb (modellen vælger 2-15%, serveren backstopper); VOLATILITY ANCHOR: initial stop ≈ 1,5× navnets typiske dagsudsving — ellers size ned. Trailing-ratchet er raise-only, og GAP-FLOOR forbyder at traile strammere end dagsudsvinget.
Regime-tilt (rød NASDAQ → cash-bias), VIX/Fear&Greed som sizing-dial, FEED-FACIT-kalibrering mod egne resultater, tolket-signal-kvalificering (aldrig dobbelt-tælle Reddit), overnight-gap som retning+risiko, MIN-EDGE (forventet move skal dværge gebyret).
Navngiver rationalet selv en modvind for navnet man køber, SKAL den vejes (size ned eller skip). WSB-hype må kun citeres når navnet faktisk står i dagens blokke — ellers mærkes rationalet ærligt.
You are the pre-open stop-review desk for a WSB-mandate portfolio.
It is ~15 minutes before the US open. You get each held position with its entry,
last close, current protective stop and pre-market move, plus the macro tape
(futures, VIX). Decide per position whether its stop should be TIGHTENED now,
before the open.
HARD RULES:
- RAISE-ONLY: you can only propose a TIGHTER stop (a smaller distance below the
current price). The engine ignores anything looser — never propose it.
- stop_loss_pct means: percent below CURRENT price (allowed 2-15). The engine
computes the level; you choose the distance.
- Respect the GAP-FLOOR idea: never propose a distance tighter than the name's
normal daily swing — a stop inside the noise band is a donation.
- A position that gapped UP overnight and holds gains into the open is the
classic ratchet case: lock in the move. A position gapping DOWN toward its
stop needs NO action (the stop is doing its job) — do not chase it down.
- Only tickers from the input. Empty stop_updates is a fine answer.
Reply ONLY with JSON:
{"stop_updates": [{"ticker": "XXX", "stop_loss_pct": 6.0}],
"assessment": "1-2 sentences on the book's pre-open posture"}
Grøn = med i seneste prompt (klik for det rå indhold). Grå = ikke aktiv i den cyklus — de fleste blokke er fail-soft og udelades når der ikke er data (fx ingen stops fyret, intet regnskab forude). I alt 585 tegn.
Hvilken portefølje og hvilket tidsslot cyklussen kører i — modellen ved fx om det er post-open eller power hour.
PORTFOLIO: wsb — pre-open stop review POSITIONS: CLSK: 20 shares, entry 14.68, close 14.65 | stop 13.21 (9.8% below close) | pre-market -1.1% FIG: 15 shares, entry 24.05, close 24.92 | stop 22.90 (8.1% below close) | pre-market -1.7% OKLO: 11 shares, entry 40.02, close 41.22 | stop 38.58 (6.4% below close) | pre-market +3.0% SPCE: 150 shares, entry 2.60, close 2.82 | stop 2.56 (9.3% below close) | pre-market +1.1% MACRO TAPE: S&P-futures: 7652.2 (+0.1% vs close) Nasdaq-futures: 29219.2 (+0.7% vs close) VIX: 15.6 (-1.7% vs close) Return the stop_updates JSON now.
Kontant beholdning, hver position med indkøbspris, aktuel kurs og urealiseret PnL — modellens billede af hvad den ejer lige nu.
Cyklussens hårde tal: minimum handelsstørrelse (fee-gulvet + 8% headroom-sigtepunkt), max positionsstørrelse, fee-guard-ratio, trailing-stop-ladder og min-shares-regler. Single-sourced fra samme konstanter serveren håndhæver, så prompt og guards aldrig drifter.
Hvor koncentreret bogen er per tema (fx crypto_miners, ai_infra). Fire tickers i samme tema er ét bet, ikke fire — modellen skal sprede konviktionen.
Sidste 10 handelsdages lukkekurser per ticker i universet — råmaterialet for momentum-læsning og volatilitets-ankeret på stops (regel #10/#13).
Gårsdagens luk → nu, per navn: markedets destillerede dom over alt der er sket siden i går. Et beholdt navn der gapper ned er et risikoflag; et stort op-gap er chase-risiko (regel #16).
Seneste 5 snapshots af porteføljens samlede værdi — er kurven op eller ned?
Exits udført af beskyttelses-stops siden sidste cyklusser — med realized DKK og instruks om post-mortem: wick-out (pris tilbage over stoppen = for stram trail) eller ægte brud. Uden denne blok vidste modellen bogstaveligt ikke at dens stop var fyret.
Vises kun når dagens realiserede tab har udløst serverens breaker: nye KØB afvises resten af sessionen — så modellen ikke spilder basket-legs på dem.
Navne solgt med tab inden for re-entry-cooldown-vinduet (3 dage). Gen-køb kræver conviction ≥ 0.7 og — på gatede tiers — serverhåndhævet cross-feed-korroboration (B4).
Planlagt vs. faktisk holdetid på egne lukkede handler — lærer modellen dens egen horisont-bias (fx 'planlagt 1-2 uger → faktisk 4 dage').
30 dages lukkede round-trips per navn, vindere OG tabere ('CLSK: 2 exits, -618 DKK'). Den lange hukommelse bag cooldown-vinduet — et navn man gentagne gange har tabt på kræver en ændret thesis før gen-køb.
14 dages fee-regning som eksplicit tal: hvor stor andel af omsætningen æder gebyrerne, og hvad en rundtur skal slå for at gå i nul. Fees er ellers bagt ind i PnL og usynlige.
Per-tier tilsidesættelse af 'cut det glemte'-reglen: på tiers hvor de frivillige panik-cuts historisk var rene tabere, udskydes cuttet til den obligatoriske stop.
Vises på tiers hvor serveren kræver uafhængige cross-feed BUY-votes bag et køb — så modellen kender reglen i stedet for at opdage den via afvisninger.
Win-rate og gennemsnitlig realized PnL per signal-kilde over 30 dage — modellens empiriske track record per feed. Svage feeds (⚠ SVAG) kræver ekstra korroboration; stærke (✓ STÆRK) berettiger normal sizing (regel #14).
Hit-raten på den lokale LLM-tolknings egne reads: forudsagde dens bullish/bearish-læsninger den efterfølgende kursbevægelse? Kalibrerer hvor meget regel #15-signalet skal vægtes.
Seneste cyklussers beslutninger med UDFALD: hver handel med kurs dengang → nu, realized DKK på salg, '(position siden lukket)'-markering, fill-slippage og AFVISTE ordrer med årsag — så modellen ikke genforeslår det guards bliver ved at afvise.
Navne med regnskab inden for 7 dage — retningsneutral risiko-timing (volatilitets-event forude).
Den lukkede liste af tickers modellen overhovedet MÅ handle. Alt udenfor afvises af serveren uanset begrundelse.
Konkrete regneeksempler på hvor store ordrer skal være før gebyret er ubetydeligt.
Saxos bid/ask/last mod yfinance — afslører spread og stale kurser før en live-ordre sendes.
Hver live-position med entry, aktuel kurs, PnL%, den hvilende broker-stop under den — og 'avg dagsmove ±X%' (GAP-FLOOR-målestokken: trail aldrig strammere end navnets normale dagsudsving). Herfra styrer modellen stop-ratchet via stop_updates (raise-only).
Dollar, renter, VIX og Fear & Greed fra FRED m.fl. — sizing-dial, ikke handelssignal (regel #12).
Dagens NASDAQ/S&P-retning. WSB-navne er høj-beta og forstærker tapen: rød dag → højere bar og mindre size; grøn dag → læn ind (regel #11).
11 uafhængige eksterne kilder (short interest, analytikere, EDGAR-insiders, Polymarket, Truth Social, teknisk, makro…) stemmer BUY/SELL/HOLD per ticker. 3+ enige feeds er stærkere end noget enkelt signal — og reglerne kræver ægte UAFHÆNGIG bekræftelse, ikke Reddit i tre forklædninger.
De 25 hotteste posts lige nu (titel, upvotes, kommentarer) — råstoffet for vibe-læsningen.
Tickers udtrukket af post-titlerne med mention-tal + novelty/recurrence-tags (NEW/RISING/SPIKE-CHRONIC…): er navnet friskt, accelererende eller et evigt-trending navn hvor flokken allerede er inde (reversal-risiko)?
Top-5 i-univers navne efter dagens samlede DB-mentions på tværs af ALLE feeds — bredere end post-titlerne. Eksplicit markeret som SAMME kilde som WSB-hypen: må aldrig stackes som ekstra bekræftelse.
Megathread-kommentarerne (Daily Discussion m.fl. — 5-15k kommentarer/dag som post-listen aldrig viser): mekanisk optælling af omtalte tickers (cashtags + kendte symboler) plus PULS — qwen's samlede læsning af samtalen: bull-%, stemning, hvilke navne samtalen HANDLER om (med stance) og en gist. Paper-først: live-tiers ser PULS-linjerne først når wsb_comment_pulse_live_enabled flippes.
Den lokale LLM (qwen på Mac Mini) har LÆST post-kroppene: net-sentiment med ironi vendt og loss-porn nedvægtet, konviktion, bull/bear-split, 'katalysator c/n' (posts med konkret kommende katalysator) og 'pos:' (forfatternes egne positioner — skin in the game). Kvalificerer mention-tallene; må primært sænke konviktion (regel #15).
Deterministiske regler i serveren der efterprøver hver ordre. Tallene her læses live fra samme konstanter som guards'ene håndhæver — de kan ikke drifte fra virkeligheden.
Afviser ordrer hvor gebyret æder for stor andel af handlen — små ordrer er matematisk urentable. Fuld-exit-salg er undtaget.
Hård grænse for hvor stor andel af porteføljen én position må udgøre — oversized køb afvises.
Gen-køb af et navn solgt med tab kræver conviction ≥ 0.7 — og på gatede tiers uafhængig cross-feed-bekræftelse (B4).
Hvert live-køb SKAL have en broker-stop. Glemmer modellen den, sætter serveren en default — en live-position går aldrig ind ubeskyttet.
Et live-køb afvises hvis markedet er løbet mere end båndet fra beslutningskursen — beskytter mod stale kurser.
Overskrider dagens realiserede TAB grænsen, afvises alle nye køb resten af dagen. Salg og stops rammes aldrig — nedrisikering er altid mulig.
Serverens uafhængige feed-optælling — et signal modellen ikke kan forfalske med selvrapporteret konviktion.
Ordrer uden for sessionens univers afvises uanset begrundelse — en hallucineret ticker kan aldrig handles.
Volumen i det seneste døgn, talt direkte i databasen. Datalag: SQLite er ledger og source-of-truth · TimescaleDB (Postgres) spejler til kurver og analytics — status: forbundet ✓.
| Kilde | I dag (indtil nu) | I går (hele døgnet) |
|---|---|---|
| Truth Social | 0 | 106 |
| reddit:wsb:comments | 80 | 77 |
| r/wallstreetbets (titler) | 10 | 32 |
| r/gold | 5 | 6 |
| WSB post-tekster (qwen-læste kroppe) | 7 | 5 |
| reddit:options | 0 | 4 |
| r/investing | 3 | 2 |
| reddit:stocks | 3 | 1 |
| r/bonds | 0 | 1 |
Hver post læses i sin helhed: sentiment, ironi, loss-porn, katalysator, forfatter-position.
Polles hvert 3. minut fra 4 konti; kun nye posts gemmes.
Handelscyklusser + skrivere (Vagtchefen, avisen, video-prompts).
Samlet svar-volumen seneste døgn.
Én per portefølje-cyklus — hver er samlingen af blokkene ovenfor.
grøn = frisk · gul = fejler lige nu · grå = inaktiv (>48 t siden succes — typisk pensioneret probe)