Aktienresearch, Makrodaten und KI-Investorenpersonas — nur Research
Gebaut von Rogue AI · Research-Terminal, keine Orderausführung · Self-hosted
Begann Anfang 2026 als Watchlist- und Yahoo-Quote-Viewer. Der Analytik-Kern (DCF, Risiko, Optimierung) und die Makro-Schicht entstanden als bewusster Python-nach-TypeScript-Port über Q2 2026, damit die Mathematik unit-getestet und in-process laufen kann. Zuletzt: der Signal-Scanner und das Investorenpersona-Panel.
Research-Tools für Privatanleger sperren entweder die nützliche Analytik hinter ein Abo oder liefern eine Zahl, ohne dass man die Annahmen dahinter sehen kann. Ich wollte ein Terminal, in dem die DCF-Eingaben mir gehören, die Risikokennzahlen aus echten Renditereihen berechnet werden und eine KI-Zweitmeinung an denselben Fundamentaldaten verankert ist — ohne mein Portfolio an Dritte zu senden oder irgendetwas zu verdrahten, das eine Order auslösen könnte.
Ein Aktienresearch- und Analyse-Terminal. Es screent und chartet Aktien, importiert Broker-Positionen (IBKR und Trading-212-CSV), rechnet ein Mehrwährungs-Portfolio in eine Basiswährung um und führt eine Analytik-Suite aus — annahmengetriebenes DCF, Risikokennzahlen und Portfolio-Optimierung mit Effizienzgrenze — geschrieben als reines TypeScript. Eine Makro-Sektion zieht schlüssellose Reihen von FRED, Weltbank, IWF und DBnomics; ein Signal-Scanner rankt Ticker aus Trend, RSI, MACD und Bollinger %B; und ein KI-Panel erzeugt fünf Investorenpersona-Lesarten eines Werts. Es ist reines Research.
Analytik-Kern
Reines, seiteneffektfreies TypeScript: Renditen, Sharpe/Sortino/VaR/CVaR/Max-Drawdown, DCF, Mean-Variance-Optimierung + Effizienzgrenze — voll unit-getestet mit Vitest
Marktdaten
Yahoo Finance für Quotes und Historie, FMP für Fundamentaldaten und Screening, hinter einem 3-stufigen Cache (Redis → PostgreSQL → Fetch)
Makro-Schicht
Schlüssellose Adapter für FRED, Weltbank, IWF SDMX und DBnomics, 24 Stunden gecacht
Signal-Scanner
Komposit aus SMA-Cross, RSI, MACD und Bollinger %B mit einem Score von -100..+100 und lesbaren Begründungen; flüchtig, pro Nutzer Redis-gecacht
KI-Panel
Fünf Investorenpersonas über eine umschaltbare Bridge (lokales Ollama oder Claude), Prompts an den abgerufenen Fundamentaldaten verankert
Auth & Daten
Custom-JWT (jose)-Sessions, Prisma 7 mit PrismaPg-Adapter, Watchlists, Portfolios und Alerts pro Nutzer
Den Optimierer von scipy SLSQP auf einen reinen TS-Projected-Gradient-Solver zu portieren war der schwierige Teil — die Long-only-Nebenbedingung bindet anders, also kennzeichne ich die Methode in der UI, statt so zu tun, als wären die Gewichte identisch zur Python-Referenz.
Yahoo Finance drosselt hart. Ein naiver Abruf pro Ticker scheiterte an einer Watchlist mit 20 Namen; ein 3-stufiger Cache (Redis 5 Min → DB 24 h → Fetch) plus parallelitätsbegrenzte Batches haben es gelöst.
Die Investorenpersonas sind nur so ehrlich wie ihr Disclaimer. Sie lesen dieselben Fundamentaldaten auf fünf Arten; ich halte den Prompt an den tatsächlichen Zahlen verankert und kennzeichne es als Analyse, nie als Beratung.
Ein einzelnes self-hosted Terminal, in dem jede Analytik nachvollziehbar ist: DCF-Annahmen sind editierbar, Risikozahlen stammen aus echten Renditereihen, und das KI-Panel argumentiert einen Wert auf fünf Arten, verankert an den Fundamentaldaten. Keine Orderausführung, keine Portfoliodaten, die den Host verlassen.
Nur Research — es gibt keinen Schreibpfad zum Broker, und in diesem Build wird es ihn nie geben. Makro-Serien werden 24 h gecacht, Intraday-Makro ist also außen vor. Der Optimierer ist Mean-Variance mit Long-only-Projected-Gradient, kein Ersatz für ein echtes Risk-Desk. Persona-Ausgaben sind LLM-Kommentar, ausdrücklich nicht-treuhänderisch.