Multi-Agent Signaalsysteem  ·  Voor professionele beleggers
Event-Driven
Alpha

Een autonoom, 24×7 draaiend systeem van 14 gespecialiseerde agents dat globale gebeurtenissen vertaalt naar traceerbare buy/sell-signalen — met focus op asymmetrische kansen en geautomatiseerde uitvoering via Trading212.

14 agents · 3 lagen
Gewogen confidence score
Volledig traceerbaar
Per-user portfolios & notificaties
Trading212 · live executie
AI kandidaatsuggesties (US + EU)
Strategie-spreiding · Buy-the-dip
Hetzner VPS · 24/7
De these
Waar zit de edge?
Magnitude, niet alleen richting
Event-driven trading draait om de grootte van de uitslag. Lage historische volatiliteit + directe event-exposure betekent dat de markt het nieuws nog niet heeft ingeprijsd.
Snelheid is de bottleneck
Event → sector → ticker handmatig nalopen kost uren. Tegen die tijd is de kans vaak al verdwenen. Het systeem doet dit in minuten, 24/7.
🌐
Dekking die mensen niet hebben
Niemand monitort continu geopolitiek, macro, techniek, fundamentals, insider-transacties én optiestroom tegelijk. Elke agent doet één ding, en doet dat goed.
🎯
Penny stocks als zoekdomein
Grote modellen missen small- en micro-caps. Juist die reageren het heftigs op directe event-exposure bij lage HV — asymmetrisch potentieel.
Het venster van kans
event-exposure →
HV hoog ↑ laag / laag hoog / hoog
al ingeprijsd
HV laag ↓ laag / laag
DOELZONE
lage HV +
hoge exposure

Magnitude-edge: de markt heeft de impact nog niet verwerkt. Het systeem markeert dit vóór de uitslag.

Architectuur
14 agents · 3 lagen
Laag 1 — Data-ingest  (9 agents, parallel, eigen intervallen)
01News & Events 30 min · ×1.5
02Technical Analysis 1 uur · ×1.0
03Fundamentals 24 uur · ×1.0
07Macro 6 uur · ×0.5
08Earnings Catalyst 06:00 · ×0.8
09Sentiment 2 uur · ×0.5
10Insider Transactions 07:00 · ×1.0
11Options Flow 30 min · ×0.8
12Momentum & Meelift 30 min · ×1.0
Elke agent schrijft naar data/*.json — onafhankelijk, geen wachttijden
▼  gewogen synthese van alle ingest-outputs
Laag 2 — Signal Synthesis
04Signal Synthesis — leest alle data/*.json → gewogen confidence 1–10 → BUY / WATCH / SELL
1
10 SELL ≤2.9 NEUTRAL WATCH ≥6.0 BUY ≥7.5
⚡ High-impact event uit Agent 1 triggert Agent 4 direct — niet wachten op het uurschema
Laag 3 — Output & Executie (4 agents)
05Risk & Position Sizing — positiegrootte · stop-loss · take-profit · R/R
06Notification — per-user Telegram · e-mail · eigen portfolio-filter
13Portfolio Manager — buffers signalen · dispatcht 08:30/15:00 CET · T212 executie
14Take-Profit Monitor — bewaakt posities elke 15 min · TP1/TP2 triggers
Signalen worden per user gefilterd op hun persoonlijke tickerportfolio. Agent 13 voert uit via Trading212 en respecteert bestaande posities.
Laag 1 — Data-ingest
De 9 informatiebronnen
01
News & Events
30 min · Anthropic API + web_search
Scant 24/7 op geopolitieke events, macro-shocks en sector-nieuws. Redeneert over indirecte effecten (second-order): een virusuitbraak → biotech-tickers. High-impact = directe trigger naar Agent 4.
gewicht ×1.5 −3…+3
02
Technical Analysis
1 uur · yfinance + pandas-ta
RSI, MACD, Bollinger Bands, EMA-kruisingen, volume-anomalieën per ticker. Configureerbaar: RSI oversold/overbought drempel.
gewicht ×1.0 −4…+4
03
Fundamentals
24 uur · yfinance + FMP API
Quick Ratio, Current Ratio, D/E, revenue growth, FCF yield. Health score 1–10 per bedrijf. Filtert zwakke balansen.
gewicht ×1.0 −3…+3
07
Macro
6 uur · FRED API
Fed Funds Rate, CPI, 10j/2j Treasury yield, werkloosheid. Bepaalt macro-regime (6 varianten). RECESSION blokkeert BUYs.
gewicht ×0.5 −2…+2
08
Earnings Catalyst
06:00 dagelijks · yfinance + Alpha Vantage + FMP
Beat-rate (4 kwartalen) + historische koersreactie op earnings-dag. EARNINGS_DANGER blokkeert BUYs.
gewicht ×0.8 −2…+2
09
Sentiment
2 uur · Finnhub news + StockTwits + Twitter/Nitter
Contrair signaal: extreme euforie = sell-waarschuwing, extreme paniek = koopsignaal. Nieuws via Finnhub /company-news → Claude, tweets via Nitter → Claude.
gewicht ×0.5 −2…+2
10
Insider Transactions
07:00 dagelijks · OpenInsider + SEC EDGAR
SEC Form 4-meldingen. Detecteert koop- en verkoopclusters door executives. SELL_CLUSTER blokkeert BUYs.
gewicht ×1.0 −2…+2
11
Options Flow
30 min (markturen) · Tradier / Unusual Whales / yfinance
Ongewoon call/put-volume vs. 20-daags gemiddelde. Leading indicator voor institutionele posities. Telt alleen bij open markt.
gewicht ×0.8 −2…+2
12
Momentum & Meelift
30 min (markturen) · yfinance
Detecteert momentum-breakouts en sector-rotatie. Rijdt mee op aandelen met versnellende koers én volumebevestiging. Gecorrigeerd voor risicoprofiel.
gewicht ×1.0 −2…+2
Laag 2 — Signal Synthesis
Het gewogen signaalmodel
Agent Scorebereik Gewicht Max bijdrage
01News & Events−3…+3×1.5±4.5
02Technical Analysis−4…+4×1.0±4.0
03Fundamentals−3…+3×1.0±3.0
07Macro−2…+2×0.5±1.0
08Earnings Catalyst−2…+2×0.8±1.6
09Sentiment−2…+2×0.5±1.0
10Insider Transactions−2…+2×1.0±2.0
11Options Flow−2…+2×0.8±1.6
12Momentum & Meelift−2…+2×1.0±2.0
Totaal bereik −20.7…+20.7
Normalisatie naar confidence 1–10:
raw = Σ (agent_score × gewicht)

confidence = ((raw + 20.7) / 41.4) × 9 + 1
confidence = clamp(confidence, 1.0, 10.0)
Drempelwaarden:
SELL
≤ 2.9
NEUTRAAL
3.0–5.9
WATCH
6.0–7.4
BUY
≥ 7.5
Per signaal opgeslagen
Elke agent-bijdrage (raw score, gewogen score, label) wordt vastgelegd in signals.db → volledige Signal Breakdown per advies.
Risicobeheer
Drie harde vetoes op BUY-signalen

Bepaalde condities blokkeren een BUY-advies volledig, ongeacht de confidence score. De agent-score telt dan niet mee.

📉
MACRO_RECESSION
Macro-regime = RECESSION
Agent 7 detecteert: yieldcurve inversie + verslappende arbeidsmarkt. In een recessie worden geen nieuwe longposities aanbevolen, ongeacht hoe goed de technische of event-score is.
→ Alle nieuwe BUYs geblokkeerd
📊
EARNINGS_DANGER
Kwartaalcijfers binnen 2 dagen
Agent 8 detecteert: earnings ≤ 2 dagen én onduidelijke of negatieve history. De koers kan elke kant op; een bestaand signaal is dan onbetrouwbaar.
→ BUY geblokkeerd tot na earnings
🔍
INSIDER_SELL_CLUSTER
≥ 3 insiders verkochten ≤ 14 dagen
Agent 10 detecteert via SEC Form 4: een cluster van insider-verkopen is het sterkste wettelijk verplichte negatieve signaal. Insiders kennen het bedrijf van binnenuit.
→ BUY geblokkeerd zolang cluster actief
Laag 3 — Output & Executie
Van signaal naar uitvoerbaar advies
05
Risk & Position Sizing

Berekent per signaal de optimale positiegrootte, stop-loss en take-profit op basis van portfoliowaarde en confidence score.

Portfolio (default)€ 50.000
Max positie3% per trade
Stop-loss−8%
Take-profit+20%
R/R ratio2.5×
06
Notification

Verstuurt actionable alerts bij confidence ≥ 7.5. Elke alert bevat de volledige breakdown: agent-bijdragen, entry, SL, TP, thesis. Per user gefilterd.

✈️
Telegram — per user
Eigen chat-ID per account. Testknop beschikbaar in Mijn instellingen.
📧
E-mail — per user
Dagelijkse samenvatting via Gmail SMTP. Instelbaar per account.
13
Portfolio Manager

Buffert BUY/SELL-signalen per user en dispatcht om 08:30 en 15:00 CET. Past het persoonlijke risicoprofiel toe en voert orders uit via Trading212. Ondersteunt twee parallelle strategieën met eigen budgetverdeling.

  • Per-user risicoprofiel: CONSERVATIVE / NEUTRAL / AGGRESSIVE
  • Bestaande T212-posities geïmporteerd als "inherited" — geen double-buy
  • Strategie-spreiding: 60/40-verdeling over twee eigen strategieën mogelijk
  • Buy-the-dip: S&P 500 ≥5% daling triggert extra synthese met verlaagde drempel en 2× positiegrootte
  • Maandelijks herbalanceringsvoorstel op basis van TWR-prestaties per strategie
14
Take-Profit Monitor

Bewaakt alle openstaande posities elke 15 minuten. Triggers automatisch gedeeltelijke of volledige verkoop bij doelniveaus.

  • TP1 — gedeeltelijke verkoop bij eerste winstdrempel
  • TP2 — volledige sluiting bij tweede winstdrempel
  • Dagelijkse trades geregistreerd in signals.db
  • Werkt onafhankelijk van de reguliere agent-cyclus
Watchlist · AI Suggesties · Trading212
Kandidaat-discovery & broker-integratie
🗂️
Watchlist thema's
Gebruikers beheren thematische tickers per risicoprofiel: Cybersecurity, Defense, Energy, Quantum, SaaS en meer. Alle 14 agents analyseren de tickers continu.
  • AI brengt de thematische universe in kaart (recall)
  • Ontleedt het thema in zijn waardeketen: upstream → midstream → downstream + picks-and-shovels
  • US + EU, large/mid én speculatief small/micro — als zachte voorkeur, geen quotum
  • Géén filter op waardering of timing — dat doen de agents
  • Kandidaten zijn candidate-discovery, geen koopadvies
Kandidaten worden eerst gescoord en gevalideerd — pas na Accept toegevoegd aan de watchlist
🤖
AI Kandidaatvalidatie
Een sterk AI-model met live web-search stelt gestructureerde kandidaten voor met verse, bestaande tickers. Elk voorstel wordt parallel pre-gevalideerd via yfinance en Trading212 vóór het de watchlist bereikt.
  • Web-search/grounding: actuele universe, minder verzonnen tickers
  • yfinance: koers, volume, liquiditeitsschatting
  • Trading212: beschikbaarheid (best-effort)
  • Score: theme_fit · data_coverage · liquiditeit
  • Validatiestatus: PASS / WARNING / FAIL per kandidaat
  • Accept / Reject / Ignore per kandidaat
Sessies bewaard · oude suggesties altijd raadpleegbaar
🏦
Trading212 & Notificaties
Per-user koppeling met Trading212 (live + demo). Bestaande posities worden passief gerespecteerd. Dashboard biedt directe controle over alle instellingen.
  • Per-user API-key, live én demo modus
  • Import bestaande T212-posities als "inherited"
  • Cashbudget synchroon met T212 vrij saldo
  • Telegram chat-ID instellen + testknop in Mijn instellingen
  • E-mail: dagelijkse samenvattingen per user
  • Per-user risicoprofiel: CONSERVATIVE / NEUTRAL / AGGRESSIVE
T212 executie via Agent 13 · notificaties via Agent 6
Portfolio · Strategie · Timing
Geavanceerde portfolio-strategieën
⚖️
Strategie-spreiding
Gebruikers kunnen hun schaduwportefeuille splitsen over twee onafhankelijke strategieën met eigen agentgewichten en een vrij instelbare budgetverdeling.
  • Bijv. 60% Momentum & Events / 40% Quality & Value
  • Elke strategie krijgt een eigen Agent 4-LLM-aanroep met eigen gewichten
  • Live T212-trading volgt dezelfde verdeling als de schaduwportefeuille
  • Instelbaar per gebruiker via Portfolio → Strategie
Modes: shadow_strat_1 · shadow_strat_2
📉
Buy-the-dip
Automatische extra synthese-run bij een S&P 500-daling van ≥5% op dag- of intradagbasis, mits de markt in een gezond regime zit.
  • Regime-filters: VIX < 35 en SPX boven 200-daags gemiddelde
  • Portfolio-check: cash > 30% vereist vóór bijkoop
  • Koopdrempel verlaagd van 7.5 naar 7.0 (confidence)
  • Positiegrootte ×2, gemaximeerd op 6% van portfolio
  • Direct dispatch — niet wachten op 08:30/15:00
  • 6-uurs cooldown voorkomt meervoudige triggers
Telegram-waarschuwing bij actief dip-signaal · status zichtbaar op Portfolio-pagina
🔄
Maandelijks herbalanceren
Het systeem vergelijkt elke maand de TWR-prestaties van beide strategieën en stelt een stapsgewijze herverdeling voor als het verschil groter is dan 3%.
  • Drempel: >3% TWR-verschil voor een voorstel
  • Max verschuiving: 15 procentpunt per maand (geen extreme swings)
  • Minimaal 10% budgetaandeel per strategie (diversificatie bewaard)
  • Optie: auto-herbalanceren — direkt toepassen zonder bevestiging
  • Telegram-bericht bij zowel voorstel als automatische wijziging
  • Handmatig: voorstel zichtbaar in portfolio-pagina met accepteren/afwijzen
Auto-herbalanceren instelbaar per gebruiker via de toggle in strategie-keuze
📊
Strategie backtesting
Toont het historische effect van alternatieve gewichtsverdelingen op de eigen schaduwportefeuille over 3, 6 of 12 maanden.
  • Vergelijkt 5 vaste splits: 100/0, 75/25, 50/50, 25/75, 0/100
  • Huidige verdeling gemarkeerd als referentielijn (★)
  • Eindrendement gesorteerd: direct zien welke mix het beste zou hebben gepresteerd
  • Berekend op werkelijke portfolio_snapshots — geen gesimuleerde data
  • Grafiek en samenvattingstabel zichtbaar op Portfolio-pagina
Automatisch zichtbaar zodra gebruiker "Beide strategieën" kiest
Transparantie · vaste parameters
Spelregels & parameters
Laden…
Live waarden uit de systeemconfiguratie. Ordergroottes schalen mee met je werkelijke portefeuille; sommige drempels verschillen per risicoprofiel (Conservative / Neutral / Aggressive).
Vertrouwen & controle
Elk advies is volledig te herleiden

Elke stap in de keten legt zijn bronnen en redenering vast. Geen onverklaarbare sprongen.

🌐
Event vastgelegd
Bron-URL, tijdstempel, impactniveau
🏭
Sectorlogica
Waarom dit event deze sector raakt, in woorden
🎯
Ticker-koppeling
Expliciete reden van exposure per aandeel
📐
Kwantitatieve toets
HV, techniek, fundamentals — reproduceerbaar
⚖️
Gewogen synthese
Component-scores per agent → confidence
📋
Eindadvies
BUY/SELL + volledige keten in signals.db
📖 Volledig logboek
Elke agent-stap is terug te lezen — geen black box, geen onverklaarbare signalen.
🔁 Reproduceerbaar
Met as_of_date is elk historisch signaal exact na te rekenen. Geen look-ahead bias.
Auditbaar
Geschikt voor verantwoording richting compliance, investeerders of eigen post-trade analyse.
Validatie
Bewijs zonder vooruitkijken

Het backtesting-module draait hetzelfde systeem op een datum in het verleden. Via as_of_date ziet elke agent alléén informatie die vóór het signaal bestond.

Zelfde agents, zelfde logica — live en historisch delen identieke code. Geen aparte backtest-versie die mooier scoort.
Geen look-ahead bias — cutoff-datum sluit toekomstige data, nieuws en koersen volledig uit.
Periode door gebruiker te kiezen — CLI-parameter --months bepaalt de lookback.
HTML-rapport als output — vergelijkt signaal met koersontwikkeling erna.
Validatie vóór kapitaalinzet — bewijs dat het proces werkt, niet dat het systeem het verleden overfitte.
backtest — CLI
$ python backtest/backtest_runner.py \
    --ticker PL \
    --months 6 \
    --interval 1d \
    --output rapport.html

→ Evalueert Planet Labs (PL)
per historische signaaldatum
via volledige agent-keten
met cutoff = vandaag − 6 maanden

✓ as_of_date toegepast op alle agents
✓ Geen toekomstige data beschikbaar
✓ Signaal vs. werkelijke koers vergeleken
Infrastructuur & externe diensten
Tech stack & datadiensten
Anthropic API (primair)
Agent 01 · 04 · 09 · AI suggesties
AI-redenering, web_search, batch-sentiment, AI kandidaatsuggesties. Primaire lopende kosten van het systeem.
Google Gemini API (failover)
Agent 01 · 04 · 09 · AI suggesties
Automatische failover bij rate-limit of usage-limit op Anthropic. Eén adapter wisselt transparant van provider — het systeem draait 24/7 door.
yfinance
Agent 02 · 03 · 05 · 07 · 11 · 12 · validatie
OHLCV-data, kwartaalcijfers, optiedata, AI-kandidaatvalidatie. Geen API-key vereist.
FRED API
Agent 07
Federal Reserve macro-indicatoren: rente, CPI, yieldcurve, werkloosheid.
Trading212
Agent 13 · 14
Per-user REST API (live + demo). Order-executie, portfolio-sync, cashbudget, positie-import. API-key per gebruiker instellen.
Financial Modeling Prep
Agent 03 · 08
Kwartaalcijfers en earnings-historie voor fundamentals en earnings catalyst.
Alpha Vantage
Agent 08
Aanvullende earnings-datapunten. Gratis developer account, optioneel.
Finnhub company-news · StockTwits · Nitter
Agent 09
Sentiment-bronnen. Finnhub /company-news (gratis, API-key) → Claude analyse. StockTwits en Nitter publiek, geen credentials.
OpenInsider · SEC EDGAR
Agent 10
SEC Form 4-meldingen via scraping (OpenInsider, HTTP) en EDGAR als fallback. Geen API-key — User-Agent vereist voor EDGAR.
Tradier · Unusual Whales
Agent 11
Opties-data. Tradier gratis developer account; Unusual Whales betaald (optioneel, meest gedetailleerd).
Telegram Bot · Gmail SMTP
Agent 06
Notificaties: per-user Telegram (eigen chat-ID + testknop), dagelijkse e-mail samenvatting.
Runtime
Python 3.x · virtualenv · APScheduler · FastAPI · SQLite
Hosting
Hetzner VPS · systemd · 24/7 autonoom
Dashboard
FastAPI (poort 8080) · Vanilla HTML/CSS/JS · Signal Breakdown per advies
Executie — Roadmap
Van notificatie naar automatische order
Nu live
14 agents · Trading212 live executie
14 agents draaien 24/7 op de VPS. Agent 13 voert orders automatisch uit via Trading212 (per-user API-key, live + demo). Bestaande T212-posities worden geïmporteerd als "inherited" en passief beheerd. Agent 14 monitort take-profit continu. AI kandidaatsuggesties voor watchlists met US + Europese aandelen.
Alle 14 agents operationeel   Trading212 live + demo executie   Portfolio-import & cashbudget-sync   AI kandidaatsuggesties — waardeketen-discovery met web-search (US + EU)   Multi-provider AI: Anthropic met Gemini-failover   Per-user Telegram met testknop   Dashboard met Signal Breakdown & backtesting
Volgende stap
Saxo Bank API — paper trading
Saxo Bank SaxoOpenAPI: officieel gedocumenteerde REST API met developer portal, simulatie-omgeving en streaming. Automatische orders eerst in sandbox, gevalideerd met backtest-resultaten.
developer.saxobank.com  Paper trading met volledige backtest-validatie
Fase 3
Multi-broker & volledige automatisering
Live order-executie via Saxo voor geselecteerde signalen naast Trading212. Portfolio-monitoring, stop-loss en take-profit volledig geautomatiseerd over meerdere brokers.
Agent 5 output direct naar meerdere order-APIs  Gecombineerde portfolio-weergave in dashboard
Waarom Saxo als volgende broker
Officiële, volledig gedocumenteerde REST API
Developer portal + simulatie-omgeving
Geen risico op account-suspensie door inofficiële client
Streaming-ondersteuning voor realtime koersen
Samenvatting
Waarom dit verdedigbaar is
Een echte, herhaalbare edge
Asymmetrie-logica zoekt magnitude — lage HV + directe event-exposure vóórdat de markt het heeft ingeprijsd. Systematisch, consistent, zonder emotie of bias.
🔬
14 gespecialiseerde agents
Nieuws, techniek, fundamentals, macro, earnings, sentiment, insider-transacties, optiesflow én momentum — elk gewogen naar betrouwbaarheid, samen één confidence score. Agent 1 redeneert ook over indirecte verbanden.
🛡️
Ingebouwde risicobescherming
Drie harde vetoes (recessie, earnings-gevaar, insider-verkoopcluster) blokkeren BUYs ongeacht de score. Per-user risicoprofiel stuurt positiegroottes. Take-profit monitor werkt 24/7.
🏦
Live executie via Trading212
Per-user API-koppeling met Trading212 (live + demo). Bestaande posities worden als "inherited" gerespecteerd — geen double-buy, geleidelijke overgang naar bot-beheer.
📋
Volledig traceerbaar & auditbaar
Elk advies is van event tot order te herleiden via de Signal Breakdown. Backtesting zonder look-ahead bewijst het proces vóór kapitaalinzet.
👤
Per-user portfolios & watchlists
Eigen tickerlijst, risicoprofiel, T212-koppeling, Telegram chat-ID en AI-watchlist suggesties per user. Signalen en notificaties automatisch gefilterd op eigen portfolio.
⚖️
Strategie-spreiding & Buy-the-dip
Schaduwportefeuille splitsen over twee strategieën met eigen budgetverdeling. Maandelijks herbalanceringsvoorstel (of automatisch). Buy-the-dip verdubbelt positiegroottes bij ≥5% marktdaling binnen een gezond regime.