Commit Graph

64 Commits

Author SHA1 Message Date
Michael Schimmel c7a865d12e Ast Playground 1. visualization 2025-08-30 01:38:40 +02:00
Michael Schimmel 77d2cb3f92 Data POD 2025-08-28 13:32:54 +02:00
Michael Schimmel f4b5882080 Scalar 64bit decimal type 2025-08-28 12:30:13 +02:00
Michael Schimmel afb8f459c6 Types-JSON 2025-08-27 18:00:01 +02:00
Michael Schimmel 284fb95985 AST 2025-08-27 15:16:13 +02:00
Michael Schimmel 1ff603bd10 New type system - Decimals 2025-08-26 13:47:38 +02:00
Michael Schimmel 262ee8ff69 New type system 2025-08-26 12:44:10 +02:00
Michael Schimmel 5adbe67d0b Type System 2025-08-26 11:06:35 +02:00
Michael Schimmel c0fd594008 Indicator with new types 2025-08-25 19:27:13 +02:00
Michael Schimmel ce653c83b1 Data Types next 2025-08-25 14:01:22 +02:00
Michael Schimmel 27f1cc5486 Data Types 2025-08-25 10:26:48 +02:00
Michael Schimmel 468adcf203 Testing data processing 2025-07-27 08:39:16 +02:00
Michael Schimmel aa53a88953 Unit refactoring
Fixed massive heap corruption bug in TDataRecord
2025-07-25 11:54:53 +02:00
Michael Schimmel e20e359919 DataPoint renamed to DataFlow 2025-07-25 08:58:05 +02:00
Michael Schimmel b623be13fa TSeries optimized + Unit tests 2025-07-23 14:46:49 +02:00
Michael Schimmel c530f2fc0b Reworking DataRecords and DataFlow 2025-07-22 15:49:29 +02:00
Michael Schimmel 5b8b475da7 Reworking DataRecords and DataFlow 2025-07-22 14:44:48 +02:00
Michael Schimmel bf4ef71cba Refactoring DataFlow, 1st Generic Data records working 2025-07-22 01:13:01 +02:00
Michael Schimmel dd50049b06 DataRecord 2025-07-20 20:21:55 +02:00
Michael Schimmel 6010f61953 DataRecord almost finished 2025-07-19 14:24:04 +02:00
Michael Schimmel d2c47843a7 DataRecord 2025-07-17 23:00:56 +02:00
Michael Schimmel a896b7fcf0 Directory-Monitor... experimentell... klappt nicht so recht mit UNC-Pfaden :( 2025-07-17 16:21:13 +02:00
Michael Schimmel ce0cba720a Unit refactoring 2025-07-15 09:13:40 +02:00
Michael Schimmel 1a2b6cf8a0 Polished DataProvider & Converter, RTTI field access 2025-07-15 01:56:44 +02:00
Michael Schimmel 4247fde7cd Old DataStream removed 2025-07-14 19:55:16 +02:00
Michael Schimmel 6f0b927a05 TTicker 2025-07-14 16:44:29 +02:00
Michael Schimmel d0ad547aa3 Units renamed & Chart refactored 2025-07-14 15:07:36 +02:00
Michael Schimmel 45ff69fd92 Code-Formatting 2025-07-12 17:10:01 +02:00
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