first commit

This commit is contained in:
Melchior Reimers
2026-01-23 16:30:35 +01:00
commit ccfee645e8
10 changed files with 333 additions and 0 deletions

50
README.md Normal file
View File

@@ -0,0 +1,50 @@
# Trading Data Daemon
Ein modularer Daemon zum Herunterladen und Speichern von Handelsdaten von verschiedenen Börsen in einer Time-Series-Datenbank.
## Unterstützte Exchanges
- **European Investor Exchange (EIX)**: Lädt tägliche Kursblatt-CSVs herunter.
- **Lang & Schwarz (LS)**: Fragt die heutigen Trades über deren JSON/CSV-RPC ab.
## Architektur
- `src/exchanges/base.py`: Basisklasse für neue Börsen (einfach erweiterbar).
- `src/database/questdb_client.py`: Speichert Daten in QuestDB via Influx Line Protocol (ILP).
- `daemon.py`: Der Orchestrator, der die Daten abruft und speichert.
## Installation und Setup
### 1. QuestDB (Timeseries DB) starten
Am einfachsten via Docker Compose:
```bash
docker-compose up -d
```
QuestDB ist dann unter `http://localhost:9000` erreichbar.
### 2. Python Abhängigkeiten installieren
```bash
pip install -r requirements.txt
```
### 3. Systemd Service einrichten
Kopiere die Dateien nach `/etc/systemd/system/`:
```bash
sudo cp systemd/trading-daemon.service /etc/systemd/system/
sudo cp systemd/trading-daemon.timer /etc/systemd/system/
```
Pfade in `trading-daemon.service` müssen ggf. angepasst werden (aktuell auf `/Users/melchiorreimers/...` gesetzt).
Dienste aktivieren:
```bash
sudo systemctl daemon-reload
sudo systemctl enable --now trading-daemon.timer
```
### 4. Manuell testen
```bash
python3 daemon.py
```
## Erweiterung
Um eine neue Börse hinzuzufügen, erstelle einfach eine neue Klasse in `src/exchanges/`, die von `BaseExchange` erbt und implementiere `fetch_latest_trades()`. Füge sie dann in `daemon.py` zur Liste hinzu.