Commit Graph

65 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 644b6074d6 Chart 2025-07-03 21:27:10 +02:00
Michael Schimmel 58ce84e567 Chart Control V1 2025-07-02 14:49:33 +02:00
Michael Schimmel b453236b1e 1st Aura Project Layout 2025-06-28 12:43:19 +02:00
Michael Schimmel 9802c8c924 Refactoring 2025-06-25 15:38:45 +02:00
Michael Schimmel 10b653e16f TaskManager refactoring 2025-06-25 15:00:51 +02:00
Michael Schimmel e2a262bc5a Fixed protected mutable Exchange 2025-06-25 10:45:55 +02:00
Michael Schimmel dce0d83e18 ProtectedMutable 2025-06-25 10:44:33 +02:00
Michael Schimmel e1159e883b Writeables revised
Read-ahead for DataStream Processing
2025-06-25 10:07:00 +02:00
Michael Schimmel f791667264 parallel PathData creation 2025-06-24 21:40:06 +02:00
Michael Schimmel 13c41d01b5 TaskManager.RunTask() & TFuture.Chain(Proc) 2025-06-24 20:17:04 +02:00
Michael Schimmel a65a5f2b0a TWriteable<T> 2025-06-24 19:11:29 +02:00
Michael Schimmel 3797507d95 Bugfix in TEvent, DataServer Push-Mode 2025-06-24 18:32:32 +02:00
Michael Schimmel 35413f5966 GUI Signals 2025-06-24 14:37:38 +02:00
Michael Schimmel 3048c28fe3 DataSeries.Copy 2025-06-24 12:42:28 +02:00
Michael Schimmel 6077d094f7 Chart visible in View 2025-06-24 12:02:49 +02:00
Michael Schimmel 9022f60376 Bugfix Race Condition in Notifier List 2025-06-24 11:31:29 +02:00
Michael Schimmel ed8619650c Code formatting 2025-06-24 11:18:10 +02:00
Michael Schimmel fdea3cf26a Notifier-Subscription-List robustness 2025-06-24 11:17:29 +02:00
Michael Schimmel 6ea0f94e36 Refactoring IState - ISignal 2025-06-24 09:24:37 +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 a9aff8c41a AuraTrader Sample 2025-06-17 21:49:09 +02:00
Michael Schimmel f81337c98d Data file handling 2025-06-15 20:07:18 +02:00
Michael Schimmel 2c56f6e750 Data file handling 2025-06-15 17:29:56 +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 8ca85473d7 TSeries 2025-06-11 13:38:24 +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 0e598d595e Test-Apps für Gemini Api und Blockly 2025-06-10 17:08:09 +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 590e98d614 DataCache 2025-06-07 14:51:39 +02:00
Michael Schimmel 1f02733071 Refactoring 2025-06-07 12:28:50 +02:00
Michael Schimmel 2cdae3d3f6 Streamlining DataServer 2025-06-07 10:12:41 +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 f70cfe0ec1 TMutable 2025-06-06 01:34:44 +02:00
Michael Schimmel c4d8607d17 TMutable 2025-06-06 01:22:25 +02:00
Michael Schimmel 73d656cda5 Refactoring 2025-06-05 23:46:09 +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 c9817ca200 Global LoadCache for DataSeries 2025-06-05 16:19:01 +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 f033ef2c0f TLatch extended 2025-06-04 01:54:20 +02:00