Naar inhoud
DienstenProjectenInvesteringAanpakOver LynuxisBlog Plan gesprek
Case · Eigen tool · Fintech

Polaris — een AI-trader die van zichzelf leert

Trading-bots zijn er genoeg. Wat altijd ontbreekt is een eerlijke leer-loop: niet alleen "wat is mijn rendement", maar "waarom besloot ik wat ik besliste, en wat had ik anders gemoeten". Polaris is onze eigen AI-trading-terminal — gratis, lokaal, je eigen brein. Elke X minuten data ophalen, Claude (of lokaal Ollama) vraagt om buy/sell/hold, risk-guards kijken mee, paper-trade. Iedere beslissing belandt in een journal dat de AI later leert. Geen advies, geen casino — een leer-omgeving.

TypeEigen Lynuxis-tool
Doorlooptijd4 weken MVP
TeamLudi (solo)
StatusBeta · paper-trading dagelijks
2
Brein-opties — Claude · Ollama
5
Indicators — SMA · RSI · MACD · BB · ATR
€0
Echt geld (paper only)
Symbolen — multi-asset config

Het probleem

"Wat denkt mijn bot eigenlijk?"

Commerciële trading-bots geven je een rendement-cijfer en een grafiek. Dat helpt niet als je een verlies in week 6 wilt begrijpen — was het marktbreed, een mis-interpretatie van een indicator, of een AI die op net-niet-relevante context reageerde?

Wie z'n eigen kennis wil opbouwen heeft een loop nodig waar elke beslissing een kwalitatieve reden krijgt, en waar je later die reden tegen de uitkomst kunt leggen.

Plus: we wilden een tool die niet ergens op een SaaS-server draait waar onze data nut maakt voor andermans modellen. Lokaal, transparant, geen vendor.

Onze aanpak

Een loop in Python — alles transparant

Zeven bestanden, alles te lezen. data.py haalt gratis prijsdata bij Yahoo Finance, berekent SMA/RSI/MACD/Bollinger/ATR. ai.py stuurt context naar Claude (of lokaal Ollama) en vraagt een gestructureerde JSON-respons: actie (buy/sell/hold), confidence, reasoning.

risk.py rejects elke beslissing die buiten de regels valt: max 2% van portfolio per trade, emergency-stop bij −10% drawdown van de week. paper.py houdt je nep-portfolio bij in JSON. journal.py bewaart elke beslissing + uitkomst.

De killer-feature: learn.py kan op historische data alle beslissingen replay-en en vergelijkt de AI-respons met wat achteraf optimaal was. Lessen worden in het journal teruggepushed — zodat het volgende echte besluit context heeft van wat eerder werkte.

UI is een dunne Streamlit-app die het journal, de equity-curve en de risk-guards zichtbaar maakt. Voor ons — geen klant — voldoende.

Equity-curve · 90 dagen paper

Wat zou er gebeurd zijn?

Cyaan = Polaris paper-portfolio. Violet dashed = buy-and-hold SPY ter referentie. Buy/sell-events als bolletjes met date-tooltip.

polaris · paper portfolio · 90 dagen · multi-symbol

Equity curve — 90 dagen

Claude Sonnet · 4 symbolen · 12 trades
Apr-01 Jun-30
Start€ 10.000
Nu€ 11.840
Rendement+18,4%
SPY referentie+9,6%
Het leer-journal

Elke beslissing met reden, achteraf gewogen

Geen "+€42 winst". Wel: "Ik kocht omdat MACD-cross-over én RSI uit oversold; achteraf was de timing 2 dagen vroeg." Dat type lessen verzamelen.

polaris · journal · laatste 4 beslissingen

Journal · 23 juni 14:30

Last 4 cycles
BUY
SPY +12 shares · €5.832 (60% portfolio)

MACD crossover bevestigd, RSI uit oversold (28→42), 200-EMA flat. Confidence 0.78. Geen earnings deze week. Risk-guard: positie binnen 60%-cap.

14:30 · Claude Sonnet 4.6 · 6 indicators · 0,9s
+€158na 2 dagen · gerealiseerd op +2,7%
HOLD
TSLA · skip beslissing

Hoge volatiliteit (ATR boven 3σ), geen duidelijke trend, RSI middle-zone. Conf 0.31 — onder threshold 0.55. Niet handelen.

14:30 · 0,7s
achteraf: +0,4% → goede skip
SELL
NVDA −8 shares · €1.244

RSI 78 (overbought), Bollinger upper band geraakt, dalend volume. Closing partial position 50%. Achteraf: te vroeg, miste 4% verder up.

14:30 · Claude · 0,8s
−€52opportunity-cost · les voor journal
HOLD
BTC-USD · vasthouden

Sideways range 5 dagen, geen breakout-signaal. Risk-guard: max 1 crypto-positie open (BTC al).

14:30 · 0,6s
positie sinds 11-jun · +6,8%
Risk-guards · altijd aan

Voor de bot ergens dom op stuk gaat

Acht harde regels die elke AI-respons doorlopen. Komt 'ie buiten een van deze ranges, wordt 'ie geweigerd — ook al klinkt 't redelijk.

polaris · risk panel · 8 guards live
Position sizeMax 2% / trade
1.4% · OK
Portfolio drawdownStop bij −10% wk
−1,8% · OK
ConcentrationMax 60% in 1 ticker
58% SPY · OK
Trade frequencyMax 5/dag
4 / 5 · let op
Confidence threshold≥ 0.55
0.78 · OK
Earnings blackout±2 dgn rondom
geen vandaag
Crypto capMax 1 positie open
BTC · OK
Budget capHard stop −€500 mnd
−€84 · OK
Tech stack

Onder de motorkap

  • BreinClaude (Anthropic SDK) of lokale Ollama llama3.1:8b
  • Marktdatayfinance (Yahoo Finance) — gratis, geen API-key
  • IndicatorsSMA · RSI · MACD · Bollinger · ATR (pandas-ta)
  • UIStreamlit — paginas voor equity / journal / risk / backtest
  • StorageLokale JSON-bestanden (portfolio.json, journal.jsonl)
  • SchedulerAPScheduler — om de X minuten één cycle draaien
  • BacktesterEigen replay-engine in learn.py
  • Geen brokerPaper-only — geen Alpaca/IB-koppeling in defaults
Slimme details

Waar het anders is

  • Beslissing met motivatieJSON-respons bevat reasoning, niet alleen actie
  • Achteraf-metenOptimaal-alternatief uit history wordt erbij gelegd
  • Multi-brainClaude voor kwaliteit, Ollama voor offline tests
  • Risk-guards als laagOnder de AI — AI mag niet om regels heen
  • Volledig lokaalGeen account, geen SaaS, geen data-deling
  • Leer-journalDe volgende beslissing krijgt vorige lessen als context

"De grootste waarde van Polaris is voor ons niet het rendement — het is het journal. Voor het eerst zien we precies wáárom onze bot een beslissing nam en kunnen we vergelijken met wat we zelf bedacht hadden. Dat is een leer-loop die geen commerciële tool ons geeft."

— Eigen ontwerp-notitie, Lynuxis bouw-log

Eigen AI-beslissingsloop in jouw vakgebied?

Trading, hiring, planning, voorraadbeheer — overal waar je menselijke besluiten neemt op basis van data, kan een transparante AI-loop met motivering en journal je vakkennis versnellen.