Politieke markten bewegen op basis van verhalen. Machines “lezen” verhalen alleen als we ze omzetten in getallen. Deze week zette 3DN een kleine, lokale machine-learningruggengraat op voor PolitiCap: elk artikel van het Engelse bureau wordt ingebed in een Postgres-vector-database, en vervolgens gekoppeld aan daadwerkelijke uitgevoerde transacties op het burgerlijke lint. Het doel is geen casino-kristallen bol. Het is een lokaal, inspecteerbaar model dat uiteindelijk kan helpen bij het voorspellen van korte politieke schommelingen op virtuele tickers – als de gemeenschap genoeg eerlijke handelsactiviteit genereert om van te leren.
Meld je aan en handel: politicap.eu — gratis account, dibs (virtuele DutchBud-credits) op een gesloten-loop grootboek. Meer transacties na echte nieuwsgebeurtenissen = betere labels voor het net.
Wat we hebben gebouwd
De pijplijn is opzettelijk saai en lokaal:
- EN artikel op politicap.eu (mooi gelinkte tickers in de body).
- Embedder
sentence-transformers/all-MiniLM-L6-v2→ 384-dimensionale vectoren (dezelfde familie als onze vloot RAG). - Postgres-database
politicap_mlmetpgvector(HNSW-cosinus-indices). - ETL-builds
article_symbol_windows: voor elk artikel×symbool×horizon, haal uitgevoerde orders op na publicatietijd.

Vectoren: wat “gelijkenis” betekent
Elke Engelse post wordt een eenheidsvector e in ℝ384. Fragmenten van de body krijgen hun eigen vectoren voor fijnere opvraging. Nabijgelegen punten in die ruimte delen vaak thema’s (AI-race, TRUMPD-geopolitiek, Dutch cabinet wire).

Cosine-gelijkenis tussen twee L2-genormaliseerde vectoren u en v valt samen op een eenvoudig inwendig product:
sim(u, v) = (u · v) / (‖u‖ ‖v‖) = uᵀ v
Dat is handig voor “verhalen zoals deze”. Het is niet op zichzelf een prijsvoorspelling. Transacties gaan door een andere deur.
Hoe transacties zich hechten aan embeddings
We stoppen nooit order-id’s in de vector. De join is een gebeurtenisruggengraat:
article_tickers.symbol— waar het verhaal over gaat (uitdata-symbol-mooi-links).articles.published_at = t₀— wanneer het nieuwsgebeurtenis begint (UTC).- Horizons H ∈ {5 min, 30 min, 2 h, 1 dag} — alleen activiteit na t₀ telt als reactie.

Voor de laatste prijs P en het uitgevoerde volume V in het venster:
- Eenvoudige retour:
r_H = P(t₀+H) / P(t₀) − 1 - Log-retour:
ℓ_H = ln P(t₀+H) − ln P(t₀) - Volume-shock:
z_H = (V_after − V_prev) / max(V_prev, 1)vergelijking van het venster na de gebeurtenis met het gelijkwaardige venster net voor t₀
Die getallen komen terecht in article_symbol_windows naast de inbedding. Die tabel is waar een neuraal net (of een saaie gradiëntbooster) daadwerkelijk op traint.
Een voorspellend model — zonder de hype

Een trainingsrij ziet er zo uit:
x = [ e_doc ‖ f_pre(s, t₀) ‖ 1_s ]ŷ_H = g_θ(x) ≈ r_H of sign(r_H) of “volume piek”
Hier is e_doc de bevroren artikelinbedding, f_pre zijn marktkenmerken vóór het nieuws (dus we lekken het antwoord niet), en 1_s tagt het symbool. Begin met ridge of gradiëntboosting op bevroren MiniLM-kenmerken. Pas daarna een klein neuraal net. Walk-forward splitsen op tijd. Versla eerst een domme baseline.
Disclaimer: PolitiCap is een burgerlijk spel met virtuele DutchBud-credits — geen licentie voor effectenadvies, geen voorspellingsmarkt voor fiat-uitbetaling. Een “succesvol” model betekent een betere beschrijving van de dynamiek van virtuele tape, geen claim waar je op kunt banken in de echte wereld.
Eerste kaart: top 10 symbolen op basis van nieuwsgelinkte 1-daagse volume
Na het inbedden van 203 Engelse berichten en het samenvoegen van ~247k uitgevoerde vullingen, hadden deze symbolen het meeste post-artikelvolume in 1-daagse gebeurtenisvensters (samengevat over gelabelde verhalen — overlappende AI-berichten kunnen dezelfde tape van dezelfde dag delen):

| # | Symbool | 1d volume (totaal) | Belangrijkste nieuwsdrivers (op basis van volume) |
|---|---|---|---|
| 1 | AI | 867 247 | Laat er licht zijn; vertraging van AI in China “Cold War playbook” |
| 2 | TRUMPD | 757 480 | GROKAI leert kaarsen; TRUMPD Iran-plan tape; Taiwan enquête |
| 3 | GROKAI | 627 238 | Laat er licht zijn; vertraging van AI in China; AI Index free-float soak |
| 4 | MUSKE | 606 844 | FBI Grassley e-mails; MUSKE/MENGW IPO; kaarten in de strijd notitie |
| 5 | CHATGPT | 579 296 | Laat er licht zijn; vertraging van AI in China; free-float soak |
| 6 | METAAI | 493 536 | Zelfde strijd / AI-index cluster |
| 7 | GEMINAI | 470 226 | Zelfde strijd / AI-index cluster |
| 8 | DEEPSEK | 410 550 | Zelfde strijd / AI-index cluster |
| 9 | LIANGW | 236 176 | GROKAI leert kaarsen (primair) |
| 10 | ALTMS | 204 734 | GROKAI leert kaarsen; Grok 4.7 bureau notitie |
Patroon: Battle of the AIs-vermeldingen en TRUMPD/MUSKE geopolitiek domineren gelabeld volume. Dat is precies het soort herhaalde gebeurtenisstructuur dat een lokaal model kan leren – als mensen blijven verschijnen in het boek wanneer het bureau een draad laat vallen.
Hoe mensen het model beter maken
- Handel na echt nieuws — je vullingen worden (symbool, t₀, H) labels. Dunne boeken leren ruis.
- Gebruik de koppelingslinks — mooie links zijn de sleutels tot de tape.
- Speel geen lege symbolen uit — wasvolume zonder nieuws verwart de ramen.
- Blijf in de gesloten lus — dibs / DutchBud virtuele banktaal houdt de burgerlijke markt eerlijk: fintech ruggengraat, geen casino uitbetaling.
Maak een PolitiCap-account → speel de burgerlijke markt, laat een spoor van transacties achter waar het lab van kan leren.
Stapel notities (voor de nieuwsgierigen)
- DB:
politicap_mlop fleet Postgres met pgvector - Embed bij publiceren: bureauvaardigheid voert
embed_en.py --only-iduit voor elke EN-post - Windows ETL: uitgevoerde bestellingen (
status=E) uit het PolitiCap MySQL-boek - Volgende: walk-forward baselines, dan een klein net — nog steeds lokaal, nog steeds van ons
3DN bouwt de rails: soevereine rekengewoonten, open tooling en producten die onder onze vingers blijven. Een voorspellende burgerband is nog een reden waarom de stack – hosting, bank, marktplaats, PolitiCap – bij elkaar hoort.
Geef een reactie