Commit Graph

36 Commits

Author SHA1 Message Date
Michael Schimmel 487169afe0 Implementing first "strategy" for proof of concept 2025-07-11 11:06:18 +02:00
Michael Schimmel 10b653e16f TaskManager refactoring 2025-06-25 15:00:51 +02:00
Michael Schimmel 13c41d01b5 TaskManager.RunTask() & TFuture.Chain(Proc) 2025-06-24 20:17:04 +02:00
Michael Schimmel a3da63ad6a DataPoint 2025-06-24 08:11:46 +02:00
Michael Schimmel 6c7cc2569b DataProvider 2025-06-23 12:09:26 +02:00
Michael Schimmel bbd9d1752a Pascal Interface Extract 2025-06-13 16:13:03 +02:00
Michael Schimmel 4d67e587ba # Projektplan: Meilenstein Daten-Infrastruktur
*Datum: 13. Juni 2025*

## Status: Design-Phase abgeschlossen, Basis-Implementierung erfolgt

---

## Stufe 1: Asynchrone Datenstrom-Schnittstelle (`IDataStream<T>`) - **ABGESCHLOSSEN**

* **Motivation**: Das ursprüngliche, zustandsbehaftete Design war für die Verarbeitung asynchron eintreffender Daten (z.B. von `TFuture`-Objekten) zu komplex und fehleranfällig.

* **Ziel**: Die Schaffung eines robusten, ereignisgesteuerten und non-blocking Modells, das den Datenproduzenten sauber vom Konsumenten entkoppelt.

* **Ergebnis**:
    * Die `IDataStream<T>`-Schnittstelle wurde überarbeitet. Die `HasData`-Eigenschaft liefert nun ein `TSignal`, das Konsumenten aktiv über potenziell neue Daten informiert.
    * Die Referenzimplementierung `TAuraFileStream<T>` wurde erfolgreich angepasst und nutzt eine saubere Ereignis-Kopplung (`Subscribe`) für eine robuste und wartungsarme Logik.
    * Die korrekte Funktionalität wurde durch eine angepasste DUnitX-Test-Suite verifiziert.

---

## Stufe 2: Abstraktion für Handelssysteme (`IDataSeriesProvider`) - **ENTWORFEN**

* **Motivation**: Ein Handelssystem benötigt einen stets validen und kontinuierlichen Daten-Lookback. Ein roher `IDataStream<T>` kann dies nicht garantieren, da Lücken in den Daten auftreten können (z.B. beim Übergang von Historie zu Live).

* **Ziel**: Die Konzeption einer übergeordneten Abstraktionsschicht, die diese komplexe Anforderung kapselt, die Datenintegrität sicherstellt und dem Handelssystem eine einfache, sichere Schnittstelle bietet.

* **Ergebnis**:
    Entworfen wurde der `IDataSeriesProvider`, der als "Black Box" für das Handelssystem fungiert und die Komplexität der Datenbeschaffung vollständig verbirgt. Er wurde mit zwei unterschiedlichen, vom Anwender wählbaren Betriebsmodi konzipiert:

    ### Modus 1: "Live-Handel"
    * **Motivation**: Um einen echten **"Sofort-Start"** im Live-Handel zu ermöglichen, muss die Lücke zwischen den statischen, lokalen Historiendaten und dem aktuellen Zeitpunkt geschlossen werden.
    * **Ziel**: Ein lückenloser, tagesaktueller Start des Handelssystems ohne manuelles Eingreifen oder lange Wartezeiten für den Nutzer.
    * **Ergebnis**: Das Design einer **Drei-Phasen-Synchronisation**: (1) Lokale History laden, (2) "Catch-up"-Daten vom Broker holen, (3) auf den Live-Stream umschalten.

    ### Modus 2: "Simulation & Backtest"
    * **Motivation**: Für Entwicklung, Test und Analyse muss die Software **völlig autonom** und ohne Abhängigkeit von einer externen, potenziell nicht verfügbaren Broker-API lauffähig sein.
    * **Ziel**: Einen "Sofort-Start" für Backtests zu jedem beliebigen Zeitpunkt in der Vergangenheit zu ermöglichen, der rein auf lokalen Dateien basiert.
    * **Ergebnis**: Ein Design, bei dem der relevante Datenkontext in den Speicher geladen wird, um von dort aus einen schnellen Start und ein "Playback" der Daten zu ermöglichen.
2025-06-13 10:50:40 +02:00
Michael Schimmel 7f6672db24 TSeries 2025-06-11 13:33:46 +02:00
Michael Schimmel d282d2c40d TDataPoint<T> review 2025-06-11 08:53:30 +02:00
Michael Schimmel 312be15cc8 implementing DataStream 2025-06-07 23:53:45 +02:00
Michael Schimmel 776067d0a8 Refactoring DataStream 2025-06-07 16:41:46 +02:00
Michael Schimmel 031b99acc8 DataServer
Bugfix in DataSeries
2025-06-06 23:24:08 +02:00
Michael Schimmel a6c0c3d6b3 DataSeries refactoring 2025-06-06 13:20:18 +02:00
Michael Schimmel e7f381bc46 TFuture<T>.Result --> TFuture<T>.Value 2025-06-06 12:50:59 +02:00
Michael Schimmel 98de7176c3 DataServer 1st Version 2025-06-06 12:43:51 +02:00
Michael Schimmel c4d8607d17 TMutable 2025-06-06 01:22:25 +02:00
Michael Schimmel a57b2d50e4 Moved signal interfaces inside records 2025-06-05 23:27:48 +02:00
Michael Schimmel 7ba42b0c7c Refactoring 2025-06-05 22:59:39 +02:00
Michael Schimmel e06a023742 Test Refactoring of signals 2025-06-05 22:11:54 +02:00
Michael Schimmel f8c3ffceb8 TDataSeries<T> 2025-06-05 14:36:05 +02:00
Michael Schimmel 6bed68748d Code formatting 2025-06-05 10:26:28 +02:00
Michael Schimmel f438c91dbd New tests for atomic ops 2025-06-03 19:49:48 +02:00
Michael Schimmel 556690fa5e Refactoring 2025-06-03 18:20:02 +02:00
Michael Schimmel 254eb7b114 Implemented TLazy + Tests 2025-06-03 17:12:20 +02:00
Michael Schimmel 38c9e2830d Refactoring TFuture 2025-06-03 13:11:59 +02:00
Michael Schimmel e1beb7ff5b Future<T> helper record 2025-06-02 14:27:00 +02:00
Michael Schimmel 48f4c945ce Refactoring 2025-06-02 13:19:13 +02:00
Michael Schimmel 762e7f83e2 Refactoring 2025-06-02 12:27:52 +02:00
Michael Schimmel 86e2729a52 refactoring tasks 2025-06-02 01:14:33 +02:00
Michael Schimmel 63484cd495 added Futures 2025-06-02 00:45:30 +02:00
Michael Schimmel ca101a3452 renamed Semaphore to Latch 2025-05-27 11:51:06 +02:00
Michael Schimmel 95fddb0181 TaskFactory added 2025-05-26 00:27:09 +02:00
Michael Schimmel 10ef4cbcf2 Notifier & Tests added 2025-05-25 14:37:57 +02:00
Michael Schimmel 46264ea041 refactoring 2025-05-24 16:08:11 +02:00
Michael Schimmel 46f7b594d9 renamed some units, added TMycAtomicStack 2025-05-24 16:02:26 +02:00
Michael Schimmel 08a110b02f Heap Tests 2025-05-24 14:59:47 +02:00