51 lines
1.6 KiB
Markdown
51 lines
1.6 KiB
Markdown
# 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.
|