first commit
This commit is contained in:
50
README.md
Normal file
50
README.md
Normal 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.
|
||||
Reference in New Issue
Block a user