Hilfe

Alle Funktionen der Plattform — und die, die es noch nicht gibt, mit der Phase, in der sie kommen. Jede Kurzerklärung in der Oberfläche verweist auf den Abschnitt hier.

Übersicht

Aufträge

verfügbar

Ein Auftrag durchläuft feste Zustände, die nicht übersprungen werden können — die Datenbank lehnt einen Sprung ab, nicht erst die Anwendung. Neben jedem Auftrag steht, ob und warum er freigegeben wurde. Diese Begründung steht bewusst in der Liste und nicht in einer Detailansicht, die niemand öffnet.

Ausführungen

verfügbarADR-016

Beim Fill wird der Handel vollständig festgeschrieben: Zeitstempel von Broker und System, Menge, Kurs, Handelswährung, Wechselkurs zur Berichtswährung, Kosten getrennt nach Art, Order-IDs, Strategie samt Version und die Risikoentscheidung. Der Grund ist nicht Ordnungsliebe: Wechselkurs und Kostenaufteilung lassen sich später nicht mehr in brauchbarer Qualität herstellen, sobald ein Lot geteilt oder in Fremdwährung gehandelt wurde. Wer sie nicht beim Fill schreibt, hat sie verloren.

Beobachtungsliste

verfügbarBeobachten und Handeln-Dürfen sind getrennte Tabellen. Ein Eintrag legt keinen Auftrag an und schaltet nichts frei.

Eine Liste je Mandant, unabhängig vom Depot: Was hier steht, muss niemand besitzen. Zu jedem Eintrag steht der aktuelle Kurs, sein Alter und seine Quelle — und wenn keiner dasteht, warum nicht. Für Krypto liefert Krakens öffentliche Schnittstelle Kurse; für Aktien und ETFs gibt es bis zur IBKR-Anbindung keine Quelle, und diese Zeilen bleiben ausdrücklich leer statt geschätzt. Der wichtigste Punkt ist, was die Liste NICHT tut: Sie ist keine Handelsfreigabe. Was ein Mandant handeln darf, steht in seinem Universum, nicht hier — diese beiden Bedeutungen einmal zusammenzulegen hieße, sie nie wieder trennen zu können.

Bestände

verfügbar

Die Menge je Instrument und der durchschnittliche Einstandskurs. Der Bestand ist keine zweite Wahrheit, sondern muss zur Buchhaltung passen: Er wird gegen die Summe der offenen Lots geprüft. Weicht er ab, ist das genau der Fall, den ein Abgleich mit dem Broker meldet.

Bewertung und Kursalter

verfügbarTRADING_SAFETY.md

Neben jedem Bestand stehen Kurs und Wert, und daneben, wie verlässlich der Kurs ist. Drei Zustände, nicht zwei: frisch, veraltet und „nicht beurteilbar". Der dritte ist kein Ausweichen — ohne Handelskalender lässt sich ein zwei Tage alter Aktienkurs nicht von einem toten Feed unterscheiden; es kann Wochenende sein. Als „veraltet" gezeigt wäre das jeden Montag ein Fehlalarm, als „frisch" eine Lüge. Anzeigen und Handeln sind dabei zweierlei: Für die Übersicht genügt ein Kurs, dessen Abholzeit bekannt ist; für eine Order muss die Quelle zusätzlich sagen, wann der Markt ihn erzeugt hat. Tut sie das nicht, sieht ein eingefrorener Feed taufrisch aus. Der Depotwert nennt außerdem, was in ihm fehlt — sonst wäre er eine Zahl, die ein Depot kleiner darstellt, als es ist.

Ergebnis je Instrument

verfügbar

Dieselben geschlossenen Scheiben, nach Instrument zusammengefasst. Nützlich für die Frage, die eine Gesamtzahl verschweigt: ob ein gutes Ergebnis aus vielen kleinen Gewinnen kommt oder aus einem, der zufällig größer war als alle Verluste zusammen.

Ergebnis je Monat

verfügbarADR-016

Sie wird nicht aus Marktdaten nachgerechnet und nicht beim Broker neu abgefragt, sondern aus dem gebildet, was beim Fill festgeschrieben wurde. Der Grund ist nicht Ordnungsliebe: Wechselkurs und Kostenaufteilung sind später nicht mehr in brauchbarer Qualität herstellbar, sobald ein Lot geteilt oder in Fremdwährung gehandelt wurde. Wer sie nicht im Augenblick der Ausführung schreibt, hat sie verloren.

Geschlossene Scheiben

verfügbarADR-016

Wer 10 Stück kauft, 10 weitere zu einem anderen Kurs, und dann 15 verkauft, hat kein einzelnes Geschäft abgeschlossen, sondern ein ganzes Lot und ein angebrochenes. Welches zuerst drankommt, entscheidet nicht der Code, sondern eine Regel: das älteste zuerst. Die Datenbank erzwingt sie, damit nicht zwei Stellen zu zwei verschiedenen steuerlichen Ergebnissen für denselben Sachverhalt kommen. Die Haltedauer steht mitgeschrieben statt gerechnet — eine Zeitzonenumstellung zwischen Buchung und Auswertung darf keine Frist verschieben.

Handelsjournal

verfügbarADR-016

Die Monatsauswertung muß sich allein aus gespeicherten Daten rekonstruieren lassen — ohne Nachrechnen aus Marktdaten und ohne erneute Broker-Abfrage. Das Journal ist der Datensatz, der das trägt: beide Zeitstempel (Broker und System, denn ihr Abstand ist die einzige Auskunft über Uhrenversatz), Instrument, Seite, Menge, Kurs, Handels- und Berichtswährung, Wechselkurs, Kosten getrennt nach Art, Order-Kennungen, Herkunft aus Strategie und Signal sowie die Fassung der Risikorichtlinie. Die Seite rechnet nichts nach, sie liest. Über den Zahlen steht eine Probe: Nennt die Order eine Strategie, muß das Journal dieselbe nennen — sonst ist die Aufschlüsselung je Strategie für diese Zeilen unvollständig, und das gehört dazugesagt statt weggerechnet.

Kostenaufteilung

verfügbarADR-016

In der Spalte steht die Summe, weil sie sich lesen lässt. Die Aufteilung steht daneben, weil sie sich später nicht mehr herstellen lässt. Eine einzelne Kostenzahl wäre bequem und für jede Auswertung, die zwischen Handelskosten und Abgaben unterscheidet, wertlos.

Offene Lots

verfügbar

Hier steht der Einstand, nicht der heutige Wert: gespeichert, exakt, ohne Kursquelle. Was die Lots aktuell wert sind, beantwortet die Übersicht — dort gilt die Regel, ab wann ein Kurs zu alt ist, und dieselbe Regel wendet das Risk Engine an. Sie hier ein zweites Mal umzusetzen wäre eine zweite Gelegenheit, sie anders zu treffen.

Portfolios

verfügbar

Ein Portfolio bündelt Bestände, Aufträge und Ausführungen. Jedes hat seinen eigenen Handelsmodus — ein Depot kann im Papierhandel stehen, während ein anderes bereits gegen einen echten Broker läuft. Die Berichtswährung ist die Währung, in der ausgewertet wird; gehandelt werden darf in einer anderen, dann wird der Wechselkurs zum Zeitpunkt der Ausführung mitgeschrieben.

Realisiertes Ergebnis

verfügbarADR-064

Realisiert heißt: verkauft. Ein Gewinn, der noch im Depot liegt, steht nicht hier, sondern in der Wertentwicklung — er ist eine Kursmeinung, keine Buchung. Die Rechnung steht vollständig da: brutto minus Kaufkosten minus Verkaufskosten ergibt netto. Das ist keine Verzierung. Genau diese Rechnung war lange falsch — die Kaufkosten fehlten, und niemand merkte es, weil nirgends stand, woraus das Netto entsteht. Eine Summe ohne ihre Teile lässt sich nicht prüfen.

Wertentwicklung

verfügbar

Der Depotwert wird stündlich festgehalten, statt bei jeder Anfrage neu gerechnet zu werden. Erst damit lassen sich zwei Zeitpunkte vergleichen: Die Verlustgrenze sieht den Buchverlust einer gehaltenen Position, und der Drawdown misst das Depot statt eines einzelnen Instruments. Ein Tag ohne feststellbaren Wert bleibt eine Lücke und wird nicht übersprungen — eine Linie, die darüber hinwegzeichnet, behauptet eine Entwicklung, die niemand gemessen hat. Solange für Aktien keine Kursquelle angebunden ist, ist das der Normalfall.

Handel

Bestandteile eines Signals

verfügbarADR-016

Ein Signal, das nur sagt: das Momentum war stark, ist keine Begründung. momentum_63 = 0,18 bei Gewicht 0,6 ist eine. eine. Jeder Bestandteil wird im selben Schreibvorgang festgehalten wie das Signal; eines ohne seine Bestandteile wäre ein halber Datensatz. Die Herkunft steht als eigene Spalte, nicht als Fußnote: Man muß sehen können, wann ein maschinell erzeugter Wert an einer Entscheidung beteiligt war — und bei einem Modellanteil stehen Modell- und Promptversion dabei. Heute ist jeder Bestandteil eine Regel.

Demodaten

verfügbar

Der Befehl pnpm demo:seed legt ein Demodepot mit zwölf Papierhandel an. Kein Mock: Der Seeder schreibt als Anwendungsrolle durch den vollständigen Orderfluss und muss an jeder Bedingung des Schemas vorbei, FIFO eingeschlossen. Ein Seeder, der am Schema vorbeischriebe, erzeugte eine Oberfläche, die Daten zeigt, welche im Betrieb nie entstehen könnten. In PROD bricht er ab.

Gebühr am Handelsplatz

verfügbarADR-042

Die Taker-Gebuehr gehoert zum Platz, nicht zum Instrument: Dasselbe Paar kostet an zwei Plaetzen Verschiedenes. Ist sie nicht hinterlegt, bricht ein Backtest ab, statt null einzusetzen — das Ergebnis waere sonst genau um den unbekannten Betrag zu gut, und an einem Backtest haengt ein Reifegrad. Der Papierhandel rechnet mit einem eigenen Kostenmodell und nicht mit dieser Gebuehr. Das ist gewollt, weil er eine Simulation ist — aber der Abstand ist gross genug, dass ein Papierlauf und ein Backtest auf demselben Instrument verschiedene Kosten annehmen. Wer das nicht weiss, sucht den Unterschied in der Strategie.

Handelsmodus

verfügbar

Die Stufen sind BACKTEST → SIMULATION → PAPER → SHADOW → MANUAL_LIVE → AUTO_LIVE und werden der Reihe nach gegangen; ein Sprung wird abgelehnt. Der aktive Modus steht prominent in der Oberfläche und in jedem Handels-Audit-Eintrag. Wer nicht auf einen Blick sieht, ob er in Paper oder Live arbeitet, trifft irgendwann eine Entscheidung im falschen Modus.

Instrument eintragen

verfügbarInstrumente sind globale Referenzdaten — was ein Mandant einträgt, sehen alle. Deshalb wird geprüft statt geraten, und deshalb bleiben unbekannte Stammdaten leer.

Steht ein Instrument noch nicht im Katalog, kann es beim Beobachten angelegt werden: Symbol, Name, Handelsplatz, Währung, wahlweise ISIN. Die ISIN wird auf ihre Prüfziffer geprüft — das Format allein fängt einen Zahlendreher nicht. Tickgröße, Lotgröße und Mindestmenge werden ausdrücklich NICHT abgefragt und bleiben leer: Die kennt erst ein Broker. Eine erfundene Tickgröße wäre schlimmer als eine fehlende, weil sie wie eine Angabe aussieht und eine Menge auf ein Raster runden würde, das es am Handelsplatz nicht gibt. Solange sie fehlen, ist das Instrument beobachtbar und nicht handelbar — einer Risikoprüfung fehlt dann die Eingabe, und eine fehlende Prüfung blockiert echtes Geld. Krypto ist dabei auf BTC und ETH begrenzt, nicht weil die Kursquelle mehr nicht könnte, sondern weil der Handelsumfang des MVP so festgelegt ist. Ändern darf die Liste, wer die Berechtigung `watchlist.manage` hat; Nur-Lesen-Rollen sehen sie, ändern sie aber nicht.

Marktdaten

verfügbar

Kurse kommen aus einer austauschbaren Quelle; die Handelslogik kennt keine konkrete. Angebunden ist bisher Krakens öffentliche Schnittstelle — ohne Zugangsdaten, nur lesend, für BTC und ETH. Für Aktien und ETFs gibt es noch keine Quelle: Interactive Brokers verlangt eine angemeldete Gateway-Sitzung. Diese Bestände erscheinen deshalb in der Liste, aber ohne Wert — ein erfundener Kurs wäre die einzige Alternative, und der wäre schlimmer als eine Lücke. Noch offen sind Zeitreihen im Parquet-Katalog, Handelskalender und Kapitalmaßnahmen.

Märkte

verfügbar

Der Katalog war bisher nur ueber Umwege sichtbar: was man haelt, was man beobachtet, und beim Bestellen die Liste der Instrumente mit Kurs. Was es sonst gibt und warum es nicht geht, stand nirgends — man erfuhr es, indem man dagegenlief. Zwei Huerden stehen jetzt in einer Spalte: ein Platz ohne hinterlegte Gebuehr traegt keinen Backtest, und ein Instrument ohne Kursquelle laesst sich weder bewerten noch handeln.

Order von Hand aufgeben

verfügbarTRADING_SAFETY.md · Kein Weg am Risk Engine vorbei.

Eine Order entsteht als OrderIntent, wird vom Risk Engine geprüft und nur mit gespeicherter ALLOW-Entscheidung abgesendet — die Datenbank erzwingt das zusätzlich mit einem Trigger, nicht nur der Code. Läuft sie durch, entstehen in derselben Transaktion Ausführung, Kosten nach Art getrennt, Wechselkurs, Journaleintrag, Lot und Position. Bricht irgendetwas ab, entsteht nichts davon halb. Nach dem Absenden steht jeder einzelne Befund da — auch die zwanzig, die noch niemand prüft. Eine Freigabe, die nur „erlaubt“ sagt, verschweigt genau das. Verfügbar ist heute der Papierhandel gegen den eingebauten Broker: Es bewegt sich kein Geld, aber Kosten, Spread und Slippage werden gerechnet. Für echtes Geld fehlen der Broker-Adapter (Phase 11/12), der Manual-Live-Workflow (Phase 22) und die zwanzig noch nicht umgesetzten Pflichtprüfungen — die blockieren Live von sich aus.

Papier-Broker

verfügbarADR-027

Der eingebaute Broker macht drei Dinge bewusst nicht: Er erfindet keinen Kurs (ohne Kurs keine Ausführung, auch auf Papier nicht), er würfelt nicht (zweimal derselbe Auftrag ergibt denselben Kurs — sonst wäre kein Backtest mit einem anderen vergleichbar), und er führt eine Limit-Order nur aus, wenn das Limit hält. Kosten werden nach Art getrennt gerechnet: Kommission mit Mindestbetrag, Gebühren, Spread und Slippage. Die Zahlen sind Annahmen der Simulation und gehören dem Betreiber; eine Simulation ganz ohne Kosten wäre die gefährlichere Lüge, weil sie jede Strategie profitabel aussehen lässt, die häufig genug handelt. Was er nicht kann: Teilausführungen. Er füllt immer sofort und vollständig, ein echter Broker tut das nicht. Das ist die größte Lücke zwischen Simulation und Wirklichkeit — sie kommt mit Phase 8.

Papierhandel (Paper)

verfügbar

Im Papierhandel läuft ein Auftrag durch dieselbe Kette wie ein echter: Signal, Absicht, Risikoprüfung, Order, Ausführung, Journal, Lot. Nur der letzte Schritt geht nicht an eine Börse, sondern an einen Simulator, der Gebühren, Spread, Slippage und Teilausführungen nachbildet. Es ist die Stufe, auf der eine Strategie beim Lügen ertappt wird, bevor sie Geld kostet. Nichts, was Sie hier sehen, hat einen Cent bewegt — und alles davon ist so entstanden, wie es auch echt entstünde.

Signale

verfügbarADR-054

Ein Signal ist eine Meinung mit Begründung, kein Auftrag. Ob daraus eine Order wird, entscheidet das Risk Engine, und es sieht Dinge, die eine Strategie nicht sieht: Deckung, Gewichte, Handelsstopps, den Reifegrad der Strategie selbst. Deshalb steht auf dieser Seite das Ergebnis vor der Meinung. Am wichtigsten sind die beiden Fälle, die man sonst nirgends findet: ein Signal, aus dem keine Absicht wurde, und eine Absicht, die abgelehnt wurde — mit dem Grund. Eine Strategie, deren Meinungen alle im Nichts enden, sieht in einer Liste sonst genauso beschäftigt aus wie eine, die handelt.

Versionen vergleichen

verfügbarADR-076

Zwei Läufe sind nur dann vergleichbar, wenn der Versuch derselbe war: dasselbe Instrument, derselbe Zeitraum, dieselbe Anzahl Kerzen, derselbe Gebührenanteil, dasselbe Startkapital. Weicht auch nur eine dieser Angaben ab, stehen die Zahlen zwar nebeneinander, aber ohne Sieger — der Unterschied gehörte dann dem Zeitraum oder dem Markt und nicht der Strategie. Genannt wird jede Abweichung einzeln, denn auf „nicht vergleichbar“ folgt immer die Frage, warum nicht. Fehlt einer Seite der Lauf ganz, ist die Differenz nicht null, sondern nicht vorhanden. Und die Differenz zweier Renditen sind Prozentpunkte, keine Prozent: Der Abstand zwischen 0,34 und 0,41 sind 7 Prozentpunkte; 7 Prozent von 0,34 wären 0,0238.

Automatischer Handel

Phase 23ADR-018

Automatischer Handel ist ein Projektziel, aber nie global eingeschaltet. Er hängt immer an einem Mandat: einer befristeten Autorisierung für genau eine Kombination aus Mandant, Portfolio, Broker-Konto, Strategieversion, Modellversionen, Risk-Policy und Instrumentenliste. Ändert sich ein einziges dieser Elemente, erlischt das Mandat sofort. Die Asymmetrie ist der Rahmen: Einschalten verlangt Berechtigung, Step-up-Authentifizierung, Vier-Augen-Bestätigung und belegte Historie. Ausschalten verlangt niemanden. Und eine Suspendierung endet nie von allein — auch nicht nach einem Neustart.

Broker-Anbindung

Phase 11 (IBKR) und Phase 12 (Kraken)

Die Handelslogik kennt keinen konkreten Broker, sondern nur die Schnittstellen BrokerAdapter, MarketDataAdapter, ExecutionAdapter und AccountAdapter. Dadurch ist ein Broker austauschbar, ohne die Strategien anzufassen. Zugangsdaten liegen verschlüsselt und niemals im Code. Abhebungen sind in keiner Ausbaustufe vorgesehen — es gibt dafür weder Domäne noch API noch angefragten Berechtigungsumfang.

Strategien

Phase 10

Eine Strategie durchläuft DEVELOPMENT → BACKTESTED → VALIDATED → PAPER → SHADOW → LIVE_APPROVED → RETIRED. Die Version ist unveränderlich: Wer die Regeln ändert, erzeugt eine neue Version statt die alte umzuschreiben — sonst wäre jede Auswertung der Vergangenheit wertlos.

Sicherheit

Anmeldung

verfügbar

Zugangsdaten gehören zum Identitätsanbieter (Keycloak). Eine eigene Maske wäre eine zweite Stelle, durch die Passwörter laufen, und genau eine zu viel. Der Browser bekommt außerdem nie ein Token zu sehen: Zugriffs- und Auffrischungstoken liegen verschlüsselt in einem httpOnly-Cookie, und die Oberfläche spricht die API serverseitig an. Ein einziger XSS-Fehler würde sonst genügen, um ein gültiges Token für eine Handelsplattform mitzunehmen.

KI redet nie mit einem Broker

verfügbarAGENTS.md

Kein Modell und kein Sprachmodell bekommt Broker-Zugangsdaten, eine Netzroute dorthin oder die Möglichkeit, eine Order abzusenden, zu ändern, freizugeben oder zu stornieren. KI liefert Bewertungen, Belege und Erklärungen; die Entscheidung und die Ausführung liegen woanders. Ein erneutes Training befördert außerdem nie automatisch ein Produktionsmodell.

Kill-Switches

verfügbarTRADING_SAFETY.md

Es gibt Stopps für GLOBAL, TENANT, BROKER, STRATEGY, CRYPTO, AI und AUTO_LIVE. Sie wirken „fail closed": Im Zweifel wird nicht gehandelt. Ein aktiver Stopp steht ganz oben in der Übersicht, farbig und ohne Klick — ein Handelsstopp, den man suchen muss, ist ein Handelsstopp, den niemand bemerkt. Ein globaler Stopp lässt sich immer setzen, auch ohne Mandantenkontext; aufheben nur im eigenen Mandanten.

Mandantentrennung

verfügbarSECURITY.md

Jede mandantenbezogene Tabelle trägt eine Mandanten-Kennung, und PostgreSQL setzt die Trennung über Row-Level-Security durch. Die Anwendungsrolle besitzt die geschützten Tabellen nicht und darf RLS nicht umgehen. Ohne gesetzten Mandantenkontext liefert eine Abfrage null Zeilen statt fremder Daten. Die Prüfung im Anwendungscode kommt hinzu — sie ersetzt die Datenbank nicht, denn eine vergessene Bedingung im Code wäre sonst ein Datenleck.

Risikofreigabe

verfügbarTRADING_SAFETY.md

Jede broker-gebundene Order entsteht als Absicht und braucht eine gespeicherte ALLOW-Entscheidung, bevor sie abgesendet werden darf. Die Entscheidung trägt die Version der Regeln, die zum Zeitpunkt galten — sonst ließe sich später nicht mehr sagen, wogegen geprüft wurde. Die Datenbank lehnt eine Order ab, deren Freigabe zu einer anderen Absicht gehört. Die Prüfung selbst ist deterministisch: Sie liest nichts selbst, sondern entscheidet allein aus dem, was ihr übergeben wird. Zwei Läufe mit derselben Ausgangslage liefern dieselbe Entscheidung — heute und in einem Jahr bei der Frage, warum diese Order durchging. Und es werden immer alle Regeln geprüft, nicht nur bis zum ersten Nein: Wer einen Grund behebt und erneut scheitert, weiß sonst nie, wie viele noch kommen.

Unklare Aufträge

verfügbarTRADING_SAFETY.md

Bricht die Verbindung ab, nachdem eine Order abgesendet wurde, ist unklar, ob der Broker sie angenommen hat. Dieser Zustand heißt UNKNOWN und wird getrennt von „offen" gezählt. Ein erneutes Senden ist gesperrt, und der Ausweg führt ausschließlich über einen Abgleich mit dem Broker: Die Datenbank verweigert das Verlassen dieses Zustands, solange kein Abgleich darauf zeigt. Nie blind erneut senden, nie als „fehlgeschlagen" abhaken — beides erzeugt Doppelkäufe.

Warum Live noch gesperrt ist

verfügbarADR-025

Die Sicherheitsvorgabe nennt eine Liste von Pflichtprüfungen: Systemzustand, Broker-Verbindung, Exposure nach Anlageklasse, Sektor, Land und Währung, Mindestbarreserve, Liquidität, Spread, Volatilität, Korrelation, Tages- und Wochenverlust, Drawdown und weitere. Umgesetzt sind bisher acht: Kill-Switches, Instrumentenstatus, Kursaktualität, Ordergröße, Ordervolumen, Long-only, Orderrate und Handelsmodus. Für die übrigen fehlen schlicht die Daten — es gibt keine Sektorzuordnung, keine Durchschnittsvolumina, keine Volatilität, keine Drawdown-Historie. Prüfungen dafür zu schreiben hieße, Zahlen zu erfinden. Die Lücke bleibt deshalb sichtbar und wirksam: Jede nicht umgesetzte Pflichtprüfung wird vermerkt, und in einem Modus mit echtem Geld führt jede davon zur Ablehnung. Wer heute auf Manual Live schaltet, bekommt keine einzige Freigabe, sondern eine Aufzählung dessen, was fehlt. Damit ist der Zustand keine Notiz in einer Aufgabenliste mehr, sondern eine Sperre — und es gibt keinen Schalter, der sie übergeht.

Zugriff: Rollen und Rechte

verfügbarSECURITY.md

Die Rollen und ihre Rechte standen bisher nur in der Datenbank. Damit war eine Frage unbeantwortbar, die vor jedem Live-Gang steht: Wer könnte AUTO_LIVE einschalten? Die wichtigere der beiden Listen ist deshalb die zweite — welche Rechte gar keine Rolle trägt. Was niemand hat, kann niemand ausüben. Sie unterscheidet dabei zwei Fälle, die man leicht zu einer beruhigenden Zeile verschmelzen würde: Ein Recht, dessen Zuordnung der Seeder ausdrücklich verbietet und ein Test festhält, ist eine Zusicherung. Ein Recht, das niemand trägt, ohne daß es jemand aufgeschrieben hat, ist eine offene Frage — und sieht der Zusicherung zum Verwechseln ähnlich. Vergeben wird auf dieser Seite nichts: Rechte per Klick zu verteilen wäre der kürzeste Weg zu dem einen, den niemand haben soll. Benutzer entstehen ohnehin im Identitätsanbieter, nicht hier.

Zweiter Faktor

verfügbar

Jedes Konto richtet bei der ersten Anmeldung einen Authenticator ein. Ob ein zweiter Faktor tatsächlich verwendet wurde, muss das Token nachweisen — später hängt daran die Step-up-Prüfung für privilegierte Aktionen. Steht hier „nicht verwendet", obwohl gerade ein Einmalcode abgefragt wurde, trägt das Token den Nachweis nicht. Das sperrt, statt fälschlich zu öffnen, und muss vor dem automatischen Handel gelöst sein.

Betrieb

Betriebszustand

verfügbarADR-059

Die Seite zeigt jeden Dienst, der sich melden muss, gegen eine Sollliste. Der wichtigste Fall ist der ohne Daten: Ein Dienst, der beim Start gescheitert ist, hat nie eine Zeile geschrieben und steht nirgends. Genau daran ist eine fruehere Pruefung vorbeigelaufen — sie iterierte ueber das, was da ist, und konnte nicht sagen, was fehlt. Deshalb steht ein nie gemeldeter Dienst hier ganz oben und nicht unten bei den Auffaelligkeiten. Ueberfaellig heisst: laenger als das Doppelte des eigenen Takts nichts gehoert. Nicht knapper, denn eine Anzeige, die staendig rot ist, wird nicht mehr gelesen.

Broker-Konten

verfügbarADR-025

Drei Angaben haengen an einem Konto: ob echtes Geld darueber laeuft, ob Zugangsdaten hinterlegt sind, und ob je ein Abgleich mit dem Broker stattgefunden hat. Die dritte ist die unauffaelligste und die folgenreichste: „Noch nie abgeglichen“ ist im Papierhandel eine richtige Auskunft — es gibt keinen Broker, mit dem sich etwas abgleichen liesse. In einem Modus mit echtem Geld wird daraus eine Ablehnung. Wer den Modus wechseln will, soll das vorher lesen und nicht bei der ersten abgelehnten Order. Angelegt oder umgestellt wird hier nichts. Ein Formular dafuer waere der kuerzeste Weg von einem Klick zu echtem Geld.

Einstellungen

verfügbarADR-078

Die Konfiguration kommt ausschließlich aus der Umgebung, sie bricht beim Start ab statt mit einem stillen Vorgabewert weiterzulaufen, und jeder Vorgabewert ist die sichere Variante. Was bisher fehlte, ist die Unterscheidung: Ein Wert aus einem Vorgabewert sieht im Betrieb genauso aus wie einer aus der Umgebung — nur ist er keine Entscheidung, sondern eine Abwesenheit. Das ist in diesem Aufbau die häufigste stille Fehlkonfiguration, weil der Umgebungsblock einer Compose-Datei eine Positivliste ist: Was dort fehlt, kommt ohne jede Fehlermeldung nicht an. Geheimnisse zeigt die Seite nie — nur, ob eines hinterlegt ist. Auch aus einer Adresse wird der Benutzerteil entfernt, denn eine Redis-Adresse trägt ihr Passwort oft mitten in der URL. Geändert wird hier nichts.

Hilfe

verfügbar

Jede Funktion ist genau einmal beschrieben; die Kurzerklärung am Bedienelement und der Abschnitt hier stammen aus demselben Eintrag. Neue Funktionen erscheinen hier nicht aus gutem Willen, sondern weil ein Abschnitt der Oberfläche ohne Eintrag nicht kompiliert.

Mailversand

verfügbarADR-079

Die Zugangsdaten für den Postausgang gehören einem Mandanten, nicht dem Container: Sie werden deshalb hier eingerichtet und nicht über die Umgebung. Das Passwort landet verschlüsselt im Geheimnisdienst und wird nie wieder angezeigt — auch nicht verkürzt; sichtbar ist nur, ob eines hinterlegt ist. Ein leer abgeschicktes Passwortfeld läßt das gespeicherte unangetastet, denn wer den Port korrigiert, will es nicht neu tippen. Die Probe geht ausschließlich an die eigene Adresse: Ein Empfängerfeld wäre ein Versandweg über fremde Infrastruktur, im Namen und mit dem Ruf des Mandanten. Jeder Versuch bleibt stehen, auch der gescheiterte: „noch nie geprüft“ ist eine andere Auskunft als „geprüft und gescheitert“.

Sicherung und Rückspielprobe

verfügbarADR-058

Der erste Takt erzeugt eine Sicherung, der zweite spielt die juengste tatsaechlich zurueck und prueft Schema, Tabellen und Policies. Eine Datei, die entsteht und nie zurueckgespielt wurde, ist eine Vermutung. Ein Ausfall der Sicherung haelt den Handel nicht an: Sie steht bewusst nicht in den Pflichtdiensten der Risk-Policy. Ueberwacht wird sie trotzdem — welche Dienste fuer eine Handelsentscheidung da sein muessen und welche ueberwacht gehoeren, sind zwei verschiedene Fragen und deshalb zwei Listen.

Systemzustand

verfügbar

Zeigt die laufende Umgebung, die Version und den Zustand der Abhängigkeiten. Die Umgebung steht bewusst sichtbar: LOCAL, DEV und PROD sehen im Browser identisch aus, und der Pfad in der Adresszeile beweist nichts.

Berichte und E-Mail

Phase 15

Die Monatsauswertung muss sich allein aus gespeicherten Daten rekonstruieren lassen — ohne Nachrechnen aus Marktdaten und ohne erneute Broker-Abfrage. Die Voraussetzung dafür steht bereits: Jede Ausführung wird beim Fill vollständig festgeschrieben. Ob deutsche Steuerlogik abgebildet wird, ist noch nicht entschieden und braucht einen eigenen Beschluss; die Rohdaten sind die Voraussetzung dafür, nicht der Ersatz.