[{"data":1,"prerenderedAt":484},["ShallowReactive",2],{"home-testimonials":3,"portfolio-de-featured-3":4},[],[5,160,300],{"_path":6,"_dir":7,"_draft":8,"_partial":8,"_locale":9,"title":10,"description":9,"slug":11,"year":12,"stack":13,"tags":22,"cover":28,"summary":29,"featured":30,"order":31,"body":32,"_type":154,"_id":155,"_source":156,"_file":157,"_stem":158,"_extension":159},"\u002Fportfolio\u002Foffline-first-pos.de","portfolio",false,"","Offline-first POS für die Gastronomie","offline-first-pos","2024 - present",[14,15,16,17,18,19,20,21],"Kotlin","Vue","Node","Express","PostgreSQL","SQLite","Prisma","Stripe",[23,24,25,26,27],"POS","SaaS","Mobile","Hospitality","Offline-first","\u002Fimages\u002Fportfolio\u002Foffline-first-pos\u002Fcover.jpg","Eine Mobile-first POS-Plattform für kleine Unternehmen in Gastronomie und Einzelhandel. Läuft standardmäßig offline und ist in mehreren Ländern fiskalkonform.",true,1,{"type":33,"children":34,"toc":148},"root",[35,44,50,55,60,66,77,87,97,102,112,122,127,133,138,143],{"type":36,"tag":37,"props":38,"children":40},"element","h2",{"id":39},"das-problem",[41],{"type":42,"value":43},"text","Das Problem",{"type":36,"tag":45,"props":46,"children":47},"p",{},[48],{"type":42,"value":49},"Die meisten POS-Systeme, die an kleine Unternehmen verkauft werden, teilen sich ein paar bekannte Schwächen. Sie verlangen ein Web-Dashboard, um alles Wichtige zu verwalten, was einen Laptop im Backoffice voraussetzt, nicht das Telefon in der Hosentasche. Sie zwingen den Betreiber an den hauseigenen Payment-Processor des Anbieters. Sie verlangen Premium-Preise und binden diese an lange Verträge. Sie kommen mit kaputten oder fehlenden Funktionen (Inventar, das nicht abgleicht, Berichte, die nicht aufgehen). Und fast immer brauchen sie eine Internetverbindung, um ihren eigentlichen Job zu erledigen: Zahlungen entgegenzunehmen.",{"type":36,"tag":45,"props":51,"children":52},{},[53],{"type":42,"value":54},"Für den kleinen Betreiber, ein Café, eine Bar, einen Friseursalon, einen kleinen Laden, sind das echte Kosten. Eine abgebrochene WLAN-Verbindung wird zum verlorenen Verkauf. Eine Preisänderung verlangt den Weg nach Hause an den Laptop. Die Bindung an einen Payment-Processor wird zur dauerhaften Steuer auf jede Transaktion.",{"type":36,"tag":45,"props":56,"children":57},{},[58],{"type":42,"value":59},"Dieses Produkt wurde gebaut, um genau das zu lösen, für kleine Unternehmen, die sich Reibung an der Kasse nicht leisten können.",{"type":36,"tag":37,"props":61,"children":63},{"id":62},"der-ansatz",[64],{"type":42,"value":65},"Der Ansatz",{"type":36,"tag":45,"props":67,"children":68},{},[69,71],{"type":42,"value":70},"Das Produkt baut auf drei bewussten Entscheidungen auf: ",{"type":36,"tag":72,"props":73,"children":74},"strong",{},[75],{"type":42,"value":76},"Mobile-first-Verwaltung, Offline-first-Betrieb und freie Wahl des Payment-Processors.",{"type":36,"tag":45,"props":78,"children":79},{},[80,85],{"type":36,"tag":72,"props":81,"children":82},{},[83],{"type":42,"value":84},"Native Android für Kasse und Verwaltung.",{"type":42,"value":86}," Die Kasse und das Verwaltungs-Dashboard leben in derselben nativen Kotlin-App. Betreiber können eine Kasse betreiben, Inventar verwalten, Preise anpassen, Analytics ansehen und Personal einarbeiten, alles vom Telefon aus, mitten im Betrieb, zwischen den Kunden. Das Web-Dashboard existiert als optionaler Zusatz für Schreibtischarbeit, nicht als Abhängigkeit.",{"type":36,"tag":45,"props":88,"children":89},{},[90,95],{"type":36,"tag":72,"props":91,"children":92},{},[93],{"type":42,"value":94},"Offline-first by Design.",{"type":42,"value":96}," Die Kasse funktioniert ohne Internetverbindung. Die Einrichtung braucht Konnektivität: ein Admin meldet sich an, weist ein Gerät einer Kasse zu, und das Gerät zieht alles, was es braucht, Produkte, Preise, Steuern, Tische, Personal, Fiskalkonfiguration. Danach läuft das Gerät unbegrenzt offline. Belege, Verkäufe, Lagerbewegungen werden lokal in SQLite (via Room) gespeichert und synchronisieren sich mit dem Server, sobald die Verbindung wieder da ist.",{"type":36,"tag":45,"props":98,"children":99},{},[100],{"type":42,"value":101},"Die Sync-Schicht ist der unspektakuläre Engineering-Kern des Produkts. Sie löst Konflikte zwischen Geräten, kommt mit Fiskalregeln zurecht, die verzögerte Fiskalisierung erlauben (Kroatien verlangt, dass jeder Beleg \"so schnell wie möglich\" fiskalisiert wird, eine nicht-triviale Bedingung), und verwaltet die Grenze zwischen Online-wenn-möglich und Offline-wenn-nötig, ohne Daten zu verlieren oder doppelt zu schreiben.",{"type":36,"tag":45,"props":103,"children":104},{},[105,110],{"type":36,"tag":72,"props":106,"children":107},{},[108],{"type":42,"value":109},"Freie Wahl des Payment-Processors.",{"type":42,"value":111}," Die meisten POS-Anbieter zwingen ihren Kartenprozessor auf. Dieses System integriert Stripe, Square, Teya und SumUp out of the box, mit weiteren in der Roadmap. Betreiber behalten ihre bestehenden Beziehungen zu Banken und Anbietern.",{"type":36,"tag":45,"props":113,"children":114},{},[115,120],{"type":36,"tag":72,"props":116,"children":117},{},[118],{"type":42,"value":119},"Multi-Location und Multi-Country, per Architektur.",{"type":42,"value":121}," Filialen, Lager, Kassen und Inventar bilden die reale Hierarchie ab. Ein Unternehmen kann mehrere Filialen betreiben, jede mit eigenem Lager und eigenen Kassen. Inventar wird auf Lagerebene geführt. Die fiskalische Konformität ist pro Land austauschbar, aktuell unterstützt sind das kroatische und das britische Fiskalregime. Neue Regionen kommen als Fiskal-Module dazu, nicht als Re-Architektur.",{"type":36,"tag":45,"props":123,"children":124},{},[125],{"type":42,"value":126},"Der kroatische Fiskalisierungs-Flow wurde bewusst zuerst gebaut. Das kroatische Fiskalrecht zählt zu den strengsten überhaupt: jeder Beleg muss kryptografisch signiert, an die Steuerbehörde übermittelt und abgeglichen werden, inklusive offline aufgelaufener Belege. Sobald Kroatien gelöst war, ging das Hinzufügen von UK (ein einfacheres Regime) reibungslos. Die Architektur kehrt die übliche Fiskal-Schmerzkurve um.",{"type":36,"tag":37,"props":128,"children":130},{"id":129},"das-ergebnis",[131],{"type":42,"value":132},"Das Ergebnis",{"type":36,"tag":45,"props":134,"children":135},{},[136],{"type":42,"value":137},"Die Plattform ist in der finalen QA mit fünf Pilot-Betreibern aus Gastronomie und Einzelhandel. Unterstützt werden zwei Länder (Kroatien, UK), wobei die Multi-Country-Architektur auf dem schwierigeren Fall zuerst bewiesen wurde. Die App läuft seit drei Monaten im Pilot ohne einen einzigen Absturz. Das Onboarding ist ein zweistufiger Prozess in der App, ohne Vertriebsanruf.",{"type":36,"tag":45,"props":139,"children":140},{},[141],{"type":42,"value":142},"Die erste Vertriebspartnerschaft ist in Vorbereitung, mit einem Partner, der vorhat, seinen eigenen Betrieb auf derselben Plattform zu führen. Dieses Vertrauenssignal nehmen wir vor jeder Marketing-Seite.",{"type":36,"tag":45,"props":144,"children":145},{},[146],{"type":42,"value":147},"Als nächstes: öffentlicher Launch, Erweiterung der fiskalischen Abdeckung auf weitere EU-Regionen und Einführung der geplanten Payment-Processor-Anbindungen.",{"title":9,"searchDepth":149,"depth":149,"links":150},2,[151,152,153],{"id":39,"depth":149,"text":43},{"id":62,"depth":149,"text":65},{"id":129,"depth":149,"text":132},"markdown","content:portfolio:offline-first-pos.de.md","content","portfolio\u002Foffline-first-pos.de.md","portfolio\u002Foffline-first-pos.de","md",{"_path":161,"_dir":7,"_draft":8,"_partial":8,"_locale":9,"title":162,"description":9,"slug":163,"year":164,"stack":165,"tags":173,"cover":178,"summary":179,"featured":30,"order":149,"body":180,"_type":154,"_id":297,"_source":156,"_file":298,"_stem":299,"_extension":159},"\u002Fportfolio\u002Fvoice-ai-enterprise-telephony.de","Voice-AI-Agent für Enterprise-Telefonie","voice-ai-enterprise-telephony","2026 - present",[166,167,168,169,170,15,18,171,172,20],"TypeScript","Fastify","WebSockets","Telnyx","Azure","pgvector","RAG",[174,175,24,176,177],"AI","Voice","Multi-tenant","Enterprise","\u002Fimages\u002Fportfolio\u002Fvoice-ai-enterprise-telephony\u002Fcover.jpg","Eine Multi-Tenant Voice-AI-Plattform für ein europäisches Softwareunternehmen, das international 20.000+ Handwerksbetriebe bedient. Eingehende Anrufe werden Ende-zu-Ende verarbeitet, auf DSGVO-konformer Infrastruktur.",{"type":33,"children":181,"toc":292},[182,186,191,196,201,206,210,215,225,235,253,263,273,277,282,287],{"type":36,"tag":37,"props":183,"children":184},{"id":39},[185],{"type":42,"value":43},{"type":36,"tag":45,"props":187,"children":188},{},[189],{"type":42,"value":190},"Der Kunde ist ein europäisches Softwareunternehmen, das international 20.000+ Handwerksbetriebe bedient, Maler, Installateure, Elektriker, Dekorateure. Die Art von Betrieben, deren Inhaber meist selbst die Arbeit machen.",{"type":36,"tag":45,"props":192,"children":193},{},[194],{"type":42,"value":195},"Das ist die Einschränkung: jeder Anruf, den sie annehmen, ist Zeit, in der sie nicht am Auftrag sind. Jeder verpasste Anruf ist ein Angebot, das an die Konkurrenz geht. Generische Call-Center und IVR-Menüs haben es nicht gelöst. Anrufer aus dem Handwerk stellen konkrete Fragen (\"Können Sie bis Freitag einen neuen Heizkessel einbauen?\"), erwarten ein echtes Gespräch und sitzen keine Sprachmenüs aus.",{"type":36,"tag":45,"props":197,"children":198},{},[199],{"type":42,"value":200},"Der Kunde wollte einen AI-Agenten, der diese Anrufe 24\u002F7 entgegennimmt, ein natürliches Gespräch führt, Angebots- und Rückrufanfragen aufnimmt und strikt beim Thema bleibt, über Tausende unabhängiger Handwerksbetriebe hinweg, jeder mit eigenen Leistungen, Preisen und Wissensbasis.",{"type":36,"tag":45,"props":202,"children":203},{},[204],{"type":42,"value":205},"Der Auftrag war Multi-Tenant per Definition. Die Umsetzung musste DSGVO-konform, Enterprise-Niveau und für nicht-technische Endnutzer bedienbar sein.",{"type":36,"tag":37,"props":207,"children":208},{"id":62},[209],{"type":42,"value":65},{"type":36,"tag":45,"props":211,"children":212},{},[213],{"type":42,"value":214},"Wir haben die gesamte Architektur spezifiziert und einen Aufbau in vier Stages vorgeschlagen, jede Stage baut auf der vorherigen auf. Datenbank, Modelle und Abstraktionen sind in Stage 1 definiert, sodass Stages 2-4 keine Re-Architektur erfordern. Der Vorschlag wurde innerhalb von 24 Stunden nach dem Pitch-Call angenommen.",{"type":36,"tag":45,"props":216,"children":217},{},[218,223],{"type":36,"tag":72,"props":219,"children":220},{},[221],{"type":42,"value":222},"DSGVO als Architektur-Treiber.",{"type":42,"value":224}," Jede externe Abhängigkeit wurde gegen Prinzipien der Datenresidenz und minimaler Drittanbieter geprüft. Telnyx für die Telefonie (developer-friendly, EU-Region-Routing). Azure OpenAI für STT, LLM und TTS, mit Data Zone Standard, damit jede Modell-Inferenz innerhalb der EU bleibt, auch wenn Azure die Last zwischen Regionen verschiebt. Mailguns EU-Region für transaktionalen E-Mail-Versand der Anrufzusammenfassungen. Auf keiner Ebene des Stacks verlassen Daten die EU.",{"type":36,"tag":45,"props":226,"children":227},{},[228,233],{"type":36,"tag":72,"props":229,"children":230},{},[231],{"type":42,"value":232},"Echtzeit-Voice-Pipeline.",{"type":42,"value":234}," Ein Fastify-Backend über WebSockets verarbeitet den Live-Audio-Stream. Eingehendes Anrufer-Audio wird transkribiert, mit dem relevanten Tenant-Kontext an das LLM geschickt, und die Antwort wird via TTS zurück gestreamt, alles unter Latenzbudgets für ein natürliches Gespräch. Voice Activity Detection (VAD), Barge-in-Handling, Vermeidung von doppeltem Sprechen und die Grenzentscheidung \"denkt der Anrufer gerade nach oder ist er fertig?\" wurden empirisch kalibriert. Das ist die Arbeit, die entscheidet, ob der Agent natürlich oder roboterhaft wirkt.",{"type":36,"tag":45,"props":236,"children":237},{},[238,243,245,251],{"type":36,"tag":72,"props":239,"children":240},{},[241],{"type":42,"value":242},"Tenant-scoped RAG über eine Wissensbasis.",{"type":42,"value":244}," Jeder Tenant lädt eigenes Wissen hoch: PDFs, URLs, Leistungsbeschreibungen. Der Inhalt wird gechunkt und in einen ",{"type":36,"tag":246,"props":247,"children":249},"code",{"className":248},[],[250],{"type":42,"value":171},{"type":42,"value":252},"-Index eingebettet. Beim Anruf wird die Frage des Anrufers per Cosine Similarity gegen die Chunks dieses Tenants gematcht, und nur der relevanteste Kontext geht an das LLM. Das hält die Prompts klein (Kosten), die Antworten beim Thema (Qualität) und die Inputs strikt innerhalb des Tenants (kein Tenant-übergreifendes Datenleck). Der Similarity-Threshold wurde gezielt auf die Grenze zwischen Kosten und Qualität abgestimmt.",{"type":36,"tag":45,"props":254,"children":255},{},[256,261],{"type":36,"tag":72,"props":257,"children":258},{},[259],{"type":42,"value":260},"Ein vollständiges Multi-Tenant-SaaS für den Betrieb.",{"type":42,"value":262}," Zwei Dashboards: eine Super-Admin-Sicht für die Marken- und Tenant-Verwaltung des Kunden, und eine Tenant-Sicht für die Handwerksbetriebe selbst. RBAC mit 4 Rollen (Super Admin, Brand Admin, Tenant Admin, Tenant User). Pro-Tenant-Konfiguration der AI-Begrüßung, des DSGVO-Hinweises und des CTA-Textes, die drei Dinge, die der Agent direkt nach Annahme des Anrufs sagt. Geschäftszeiten pro Tenant konfigurierbar und der KI als Kontext mitgegeben. Preismodell mit inkludierten Minuten plus Abrechnung pro Mehrminute, berechnet und pro Tenant einsehbar. Anrufprotokolle mit vollständigen Transkripten, KI-generierten Zusammenfassungen, Klassifizierungen (Angebotsanfrage, Rückruf, allgemeine Frage) und konfigurierbaren E-Mail-Benachrichtigungen.",{"type":36,"tag":45,"props":264,"children":265},{},[266,271],{"type":36,"tag":72,"props":267,"children":268},{},[269],{"type":42,"value":270},"Gebaut für das, was als nächstes kommt.",{"type":42,"value":272}," Die Architektur ist durchgängig Adapter-style: ein LLM gegen ein anderes tauschen, ein STT\u002FTTS-Anbieter gegen einen anderen, beliebig viele ERPs einbinden. Das System ist bereits für die ERP-Integration in einer späteren Stage vorbereitet, was Status-Update-Anrufe ermöglicht (\"wann wird meine Arbeit ausgeführt?\") sowie das automatische Anlegen von Auftragstickets. Interaktive Setup-Skripte automatisieren das Azure-Provisioning Ende-zu-Ende.",{"type":36,"tag":37,"props":274,"children":275},{"id":129},[276],{"type":42,"value":132},{"type":36,"tag":45,"props":278,"children":279},{},[280],{"type":42,"value":281},"Stage 1 ging in Produktion mit einem AI-Agenten, der reale eingehende Anrufe in zwei Sprachen ab Launch bearbeitet. Bis zur ersten Demo hatte der Kunde 20 Beta-Tenants in der Pipeline. Nach Abschluss von Stage 1 hat der Kunde Stage 2 sofort beschleunigt, Monate vor dem ursprünglichen Plan.",{"type":36,"tag":45,"props":283,"children":284},{},[285],{"type":42,"value":286},"Der Agent nimmt Anrufe 24\u002F7 entgegen, bleibt strikt beim Thema des jeweiligen Tenant-Geschäfts, halluziniert nicht über die Wissensbasis des Tenants hinaus, nimmt Angebots- und Rückrufanfragen auf und leitet Anrufzusammenfassungen an die richtigen Leute weiter.",{"type":36,"tag":45,"props":288,"children":289},{},[290],{"type":42,"value":291},"Nächste Stages: Expansion in weitere Länder, ERP-Integration für Live-Statusabfragen zum Auftrag und erweiterte Mehrsprachigkeit.",{"title":9,"searchDepth":149,"depth":149,"links":293},[294,295,296],{"id":39,"depth":149,"text":43},{"id":62,"depth":149,"text":65},{"id":129,"depth":149,"text":132},"content:portfolio:voice-ai-enterprise-telephony.de.md","portfolio\u002Fvoice-ai-enterprise-telephony.de.md","portfolio\u002Fvoice-ai-enterprise-telephony.de",{"_path":301,"_dir":7,"_draft":8,"_partial":8,"_locale":9,"title":302,"description":9,"slug":303,"year":304,"stack":305,"tags":312,"cover":316,"summary":317,"featured":30,"order":318,"body":319,"_type":154,"_id":481,"_source":156,"_file":482,"_stem":483,"_extension":159},"\u002Fportfolio\u002Fsentinel-trading-strategy-platform.de","Sentinel - Plattform für Trading-Strategien","sentinel-trading-strategy-platform","2025 - present",[306,307,18,308,309,15,310,311],"Python","FastAPI","TimescaleDB","SQLAlchemy","Claude","Alpaca API",[313,314,24,174,315],"Quant","Trading","Time-series","\u002Fimages\u002Fportfolio\u002Fsentinel-trading-strategy-platform\u002Fcover.jpg","Eine Plattform für systematische Trader zum Prototyping, Backtesting und Live-Ausführen von Trading-Strategien, mit Multi-Source-Composite-Scoring und demselben Code-Pfad von der Forschung bis in die Produktion.",3,{"type":33,"children":320,"toc":476},[321,325,330,335,340,344,349,359,393,419,439,452,456,461,466,471],{"type":36,"tag":37,"props":322,"children":323},{"id":39},[324],{"type":42,"value":43},{"type":36,"tag":45,"props":326,"children":327},{},[328],{"type":42,"value":329},"Die meisten Retail-Trading-Tools erzwingen eine Wahl. Nutze ein Backtesting-Framework: deine Strategie lebt in einem mentalen Modell, ausgelegt fürs Wiederabspielen historischer Bars. Nutze eine Plattform für Live-Ausführung: schreibe die Strategie in einem anderen mentalen Modell neu, mit anderen Gebührenannahmen, anderen Order-Typen, anderen State Machines. Jeder Rewrite ist eine Gelegenheit, dass das Live-Verhalten still und leise von dem abweicht, was der Backtest versprochen hat.",{"type":36,"tag":45,"props":331,"children":332},{},[333],{"type":42,"value":334},"Die Plattformen, die beides zu vereinen versuchen (QuantConnect, MetaTrader, die größeren institutionellen Tools), sind entweder zu teuer, an einen bestimmten Broker gebunden oder um meinungsstarke Strategy-DSLs gebaut, die die Multi-Source-Signal-Aggregation, die echte systematische Strategien brauchen, nicht ausdrücken können.",{"type":36,"tag":45,"props":336,"children":337},{},[338],{"type":42,"value":339},"Sentinel wurde gebaut, um den Rewrite überflüssig zu machen. Von \"Idee\" zu \"validiert gegen vier Jahre historische Daten\" sollte ein einziger CLI-Befehl reichen. Von validiert zu Live-Paper-Trading sollte ein Config-Flip reichen. Und der Code-Pfad zwischen diesen beiden Zuständen sollte derselbe Code-Pfad sein.",{"type":36,"tag":37,"props":341,"children":342},{"id":62},[343],{"type":42,"value":65},{"type":36,"tag":45,"props":345,"children":346},{},[347],{"type":42,"value":348},"Sentinel ist ein Python + FastAPI-Backend mit einem Vue-3-Dashboard, das auf TimescaleDB läuft. Drei architektonische Entscheidungen tragen die Plattform.",{"type":36,"tag":45,"props":350,"children":351},{},[352,357],{"type":36,"tag":72,"props":353,"children":354},{},[355],{"type":42,"value":356},"Eine Execution-Engine, zwei Betriebsarten.",{"type":42,"value":358}," Ein gemeinsames Execution-Modul modelliert Gebühren, Slippage, Teilausführungen, Bracket-Orders (Parent + Take-Profit + Stop-Loss als ein atomarer Submit) und Exit-Stufen. Sowohl der Live-Runner als auch die Backtest-Replay-Engine rufen dasselbe Modul auf. Der einzige Unterschied zwischen den Betriebsarten ist die Quelle der Wahrheit: Alpacas API für Live, OHLCV-Bar-Daten für Backtest. Gleiches Gebührenmodell, gleiche Lot-Aufteilung, gleiche Exit-Logik. Kein Drift.",{"type":36,"tag":45,"props":360,"children":361},{},[362,367,369,375,377,383,385,391],{"type":36,"tag":72,"props":363,"children":364},{},[365],{"type":42,"value":366},"Ein Signal-Store, zwei Zugriffsmuster.",{"type":42,"value":368}," Jedes Signal, aus jeder Quelle, für jedes Asset, zu jedem Zeitstempel, lebt in einer einzigen TimescaleDB-Hypertable, indiziert nach ",{"type":36,"tag":246,"props":370,"children":372},{"className":371},[],[373],{"type":42,"value":374},"(asset, source_id, ts)",{"type":42,"value":376},". Backtest fragt sie mit ",{"type":36,"tag":246,"props":378,"children":380},{"className":379},[],[381],{"type":42,"value":382},"ts \u003C= X",{"type":42,"value":384}," ab, um Point-in-Time-Korrektheit zu erzwingen: kein Durchsickern zukünftiger Daten in historische Entscheidungen. Live fragt sie mit ",{"type":36,"tag":246,"props":386,"children":388},{"className":387},[],[389],{"type":42,"value":390},"latest",{"type":42,"value":392}," ab. Ein Datenmodell bedient beide Betriebsarten; Backtest-Genauigkeit und Live-Entscheidungsfindung teilen sich dieselbe Quelle der Wahrheit.",{"type":36,"tag":45,"props":394,"children":395},{},[396,401,403,409,411,417],{"type":36,"tag":72,"props":397,"children":398},{},[399],{"type":42,"value":400},"Pure-Function-Scorer, komponierbare Signale.",{"type":42,"value":402}," Jede Signalquelle (RSI, MACD, Fear-Greed, Claude-kalibriertes News-Sentiment usw.) ist eine reine Funktion: bei gegebenem Kontext liefert sie ein Tupel ",{"type":36,"tag":246,"props":404,"children":406},{"className":405},[],[407],{"type":42,"value":408},"(score in [-100, +100], confidence)",{"type":42,"value":410},". Das Composite ist ",{"type":36,"tag":246,"props":412,"children":414},{"className":413},[],[415],{"type":42,"value":416},"Σ (source_score × weight × confidence\u002F100)",{"type":42,"value":418},", normalisiert gegen Schwellen pro Asset. Eine neue Quelle hinzuzufügen heißt eine Scorer-Funktion plus ein Config-Eintrag, und sie steht sofort sowohl im Backtest- als auch im Live-Modus zur Verfügung.",{"type":36,"tag":45,"props":420,"children":421},{},[422,424,429,431,437],{"type":42,"value":423},"Die Claude-Integration verdient eine eigene Erwähnung. Die meiste LLM-getriebene Sentiment-Arbeit ist Klassifikation (\"bullish\u002Fbearish\u002Fneutral\"): grob, schwer zu gewichten, schwer zu debuggen. Sentinel nutzt Claude für ",{"type":36,"tag":72,"props":425,"children":426},{},[427],{"type":42,"value":428},"kalibriertes numerisches Scoring",{"type":42,"value":430},": bei einem Batch von News-Headlines für ein Asset liefert das Modell ein strukturiertes ",{"type":36,"tag":246,"props":432,"children":434},{"className":433},[],[435],{"type":42,"value":436},"{sentiment: -100..+100, confidence: 0..100, reasoning: string}",{"type":42,"value":438},". Der Reasoning-String wird neben jedem Score gespeichert, zur Auditierbarkeit. Wenn eine Strategie aufgrund von News-Sentiment auslöst, kann später nachgelesen werden, warum das Modell so bewertet hat.",{"type":36,"tag":45,"props":440,"children":441},{},[442,444,450],{"type":42,"value":443},"Operativ: GitHub Actions deployen in ~90 Sekunden über ein idempotentes Deploy-Skript auf Hetzner. Postgres wird täglich nach S3 gesichert. HetrixTools-Monitoring mit Slack-Alerts. Eine ",{"type":36,"tag":246,"props":445,"children":447},{"className":446},[],[448],{"type":42,"value":449},"source_health",{"type":42,"value":451},"-Tabelle verfolgt für jede externe Integration den letzten Erfolg und die rollierende Fehlerrate, sichtbar im Dashboard, sodass ein ausgefallener News-Feed oder ein RPC-Ausfall sofort auffällt.",{"type":36,"tag":37,"props":453,"children":454},{"id":129},[455],{"type":42,"value":132},{"type":36,"tag":45,"props":457,"children":458},{},[459],{"type":42,"value":460},"Sentinel ist in aktiver Entwicklung und läuft live im Paper-Trading-Modus gegen die Alpaca-API. Die erste Strategie, validiert per Walk-Forward-Analyse, eine Opening-Range-Breakout-Strategie, führt echte Bracket-Orders gegen aktuelle Marktdaten aus. Composite-Multi-Source-Scoring läuft über vier Crypto- und vier Equity-Ticker, mit 8 gewichteten Quellen pro Asset.",{"type":36,"tag":45,"props":462,"children":463},{},[464],{"type":42,"value":465},"Drei Strategien wurden bisher gebaut und ausgewertet: die ORB-Strategie (validiert, live), Mean Reversion (per Walk-Forward verworfen und beiseitegelegt) und eine Composite-Stocks-Variante (nur mit MACD validiert und zurückgestellt, bis der Quellen-Mix abgestimmt ist). Verworfene Ergebnisse bleiben im Engineering-Protokoll: negative Ergebnisse sind für die Iteration der Strategie genauso informativ wie positive.",{"type":36,"tag":45,"props":467,"children":468},{},[469],{"type":42,"value":470},"Walk-Forward-Validierung über ein Vier-Jahres-Fenster mit zwölf Splits und einem vollständigen Threshold-Grid läuft in etwa fünf Minuten. Rund 38.000 Signal-Zeilen werden alle 30 Tage erzeugt. Neun externe Integrationen werden live verfolgt (FRED, Polygon, Etherscan, Helius RPC, News-Feeds, Reddit, Alpaca, Solscan, LunarCrush), mit Health-Anzeige im Dashboard.",{"type":36,"tag":45,"props":472,"children":473},{},[474],{"type":42,"value":475},"Als nächstes: weitere Broker-Anbindungen, erweiterte Asset-Klassen und ein Early-Access-Programm für systematische Trader.",{"title":9,"searchDepth":149,"depth":149,"links":477},[478,479,480],{"id":39,"depth":149,"text":43},{"id":62,"depth":149,"text":65},{"id":129,"depth":149,"text":132},"content:portfolio:sentinel-trading-strategy-platform.de.md","portfolio\u002Fsentinel-trading-strategy-platform.de.md","portfolio\u002Fsentinel-trading-strategy-platform.de",1780863208540]