From bb180acf7a5468d343195c9810adf5bb2d709f00 Mon Sep 17 00:00:00 2001 From: cbazza Date: Sat, 20 Dec 2025 18:12:39 +0100 Subject: [PATCH] Add setup scripts and documentation for Git workflow --- .gitignore | 3 + SETUP.md | 233 ++++++++++++++++++++++++++++++++++++++++++++++++++ setup.bat | 71 +++++++++++++++ start_bot.bat | 52 +++++++++++ 4 files changed, 359 insertions(+) create mode 100644 SETUP.md create mode 100644 setup.bat create mode 100644 start_bot.bat diff --git a/.gitignore b/.gitignore index f545a2a..8c7a73f 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,9 @@ __pycache__/ *.egg-info/ dist/ build/ +venv/ +env/ +ENV/ # OS Files .DS_Store diff --git a/SETUP.md b/SETUP.md new file mode 100644 index 0000000..240fc88 --- /dev/null +++ b/SETUP.md @@ -0,0 +1,233 @@ +# 🚀 Setup Guide - Place Order Trading Bot + +## ✅ Erstmalige Einrichtung (ABGESCHLOSSEN) + +Die folgenden Schritte wurden bereits durchgeführt: + +- ✅ Repository geklont von Gitea +- ✅ Git User konfiguriert (cbazza / froehlich.sebastian@gmail.com) +- ✅ `telegram_config.json` erstellt +- ✅ `trading_bot.db` aus altem Ordner kopiert +- ✅ Virtuelle Python-Umgebung erstellt + +--- + +## 🔄 Täglicher Workflow + +### 1. Vor dem Arbeiten - Änderungen vom Server holen + +```bash +cd Place-Order-Trading-Bot +git pull +``` + +### 2. Virtuelle Umgebung aktivieren + +```bash +# Windows +.\venv\Scripts\activate + +# Sie sehen dann: (venv) vor Ihrer Kommandozeile +``` + +### 3. Bot starten + +```bash +# Jupyter Notebook (wie bisher) +jupyter notebook TradingBot_V1.6_Adaptive_Complete_CORRECTED.ipynb + +# ODER: GUI starten +python trading_bot_gui.py + +# ODER: Dashboard +streamlit run trading_dashboard.py +``` + +### 4. Nach dem Arbeiten - Änderungen speichern + +```bash +# Status prüfen +git status + +# Alle geänderten Dateien hinzufügen +git add . + +# ODER: Nur bestimmte Dateien +git add TradingBot_V1.6_Adaptive_Complete_CORRECTED.ipynb + +# Commit mit aussagekräftiger Nachricht +git commit -m "Beschreibung der Änderung" + +# Zum Server pushen +git push +``` + +--- + +## 🌿 Branch-Strategie (Empfohlen für größere Änderungen) + +### Neues Feature entwickeln + +```bash +# Neuen Feature-Branch erstellen +git checkout -b feature/mein-neues-feature + +# ... arbeiten und committen ... +git add . +git commit -m "Feature: Beschreibung" + +# Zum Server pushen +git push -u origin feature/mein-neues-feature +``` + +### Zurück zum Hauptbranch + +```bash +# Änderungen committen +git add . +git commit -m "Work in progress" + +# Zu main wechseln +git checkout main + +# Aktualisieren +git pull +``` + +### Feature-Branch mergen + +```bash +# Auf Gitea einen Pull Request erstellen +# ODER lokal mergen: +git checkout main +git merge feature/mein-neues-feature +git push +``` + +--- + +## 📁 Wichtige Dateien (nicht in Git) + +Diese Dateien werden von `.gitignore` ignoriert und bleiben lokal: + +- `telegram_config.json` - Ihre Telegram Credentials +- `trading_bot.db` - Trading Datenbank +- `venv/` - Python virtuelle Umgebung +- `*.log` - Log-Dateien +- `__pycache__/` - Python Cache + +**WICHTIG:** Diese Dateien werden NICHT zum Server gepusht! + +--- + +## 🔧 Nützliche Git-Befehle + +### Status prüfen +```bash +git status # Zeigt geänderte Dateien +git log --oneline -5 # Letzte 5 Commits +git diff # Zeigt Änderungen +``` + +### Änderungen rückgängig machen +```bash +# Vor dem Commit (Working Directory) +git checkout -- datei.py + +# Nach dem Commit (letzte Änderung rückgängig) +git revert HEAD + +# ACHTUNG: Alle lokalen Änderungen verwerfen! +git reset --hard HEAD +``` + +### Branches verwalten +```bash +git branch # Alle lokalen Branches +git branch -a # Alle Branches (inkl. remote) +git branch -d feature/alt # Branch löschen (lokal) +``` + +--- + +## 🆘 Problemlösung + +### "Your branch is behind 'origin/main'" +```bash +git pull +``` + +### "Changes not staged for commit" +```bash +git add . +git commit -m "Update" +git push +``` + +### "Conflict" beim Pull +```bash +# Datei öffnen, Konflikte manuell lösen (<<<, ===, >>> entfernen) +git add konflikt-datei.py +git commit -m "Merge conflict resolved" +``` + +### Versehentlich Datei hinzugefügt (z.B. Credentials) +```bash +# Vor dem Commit +git reset HEAD datei.json + +# Nach dem Commit (aber vor dem Push!) +git rm --cached datei.json +git commit --amend +``` + +--- + +## 📦 Dependencies installieren + +Falls neue Packages benötigt werden: + +```bash +# Virtuelle Umgebung aktivieren! +.\venv\Scripts\activate + +# Installieren +pip install paketname + +# requirements.txt aktualisieren +pip freeze > requirements.txt + +# Dann committen +git add requirements.txt +git commit -m "Add new dependency: paketname" +git push +``` + +--- + +## 🎯 Best Practices + +1. **Häufig committen** - Kleine, logische Commits sind besser als große +2. **Aussagekräftige Commit-Messages** - "Fix bug" ❌ → "Fix position monitor reconnection issue" ✅ +3. **Vor dem Pushen pullen** - Vermeidet Konflikte +4. **Branches für große Features** - Hält main stabil +5. **Niemals Secrets committen** - Immer `.gitignore` prüfen + +--- + +## 📞 Schnellreferenz + +| Aktion | Befehl | +|--------|--------| +| Repository aktualisieren | `git pull` | +| Status prüfen | `git status` | +| Änderungen speichern | `git add . && git commit -m "Message" && git push` | +| Neuen Branch | `git checkout -b feature/name` | +| Virtuelle Umgebung aktivieren | `.\venv\Scripts\activate` | +| Bot starten (Notebook) | `jupyter notebook` | +| Bot starten (GUI) | `python trading_bot_gui.py` | + +--- + +**Erstellt am:** 2025-12-20 +**Repository:** https://gitea.cbazza.synology.me/cbazza/Place-Order-Trading-Bot.git diff --git a/setup.bat b/setup.bat new file mode 100644 index 0000000..a0f12db --- /dev/null +++ b/setup.bat @@ -0,0 +1,71 @@ +@echo off +REM Setup Script für Trading Bot +REM Führt die initiale Einrichtung durch + +echo ======================================== +echo Trading Bot - Ersteinrichtung +echo ======================================== +echo. + +REM Prüfe ob venv existiert +if exist "venv\" ( + echo [OK] Virtuelle Umgebung existiert bereits +) else ( + echo [INFO] Erstelle virtuelle Umgebung... + python -m venv venv + if errorlevel 1 ( + echo [FEHLER] Konnte virtuelle Umgebung nicht erstellen! + pause + exit /b 1 + ) + echo [OK] Virtuelle Umgebung erstellt +) + +echo. +echo [INFO] Aktiviere virtuelle Umgebung... +call venv\Scripts\activate.bat + +echo. +echo [INFO] Installiere Dependencies... +pip install --upgrade pip +pip install -r requirements.txt + +if errorlevel 1 ( + echo [FEHLER] Konnte Dependencies nicht installieren! + pause + exit /b 1 +) + +echo. +echo [OK] Installation abgeschlossen! +echo. + +REM Prüfe wichtige Dateien +echo [INFO] Prüfe Konfigurationsdateien... +if exist "telegram_config.json" ( + echo [OK] telegram_config.json gefunden +) else ( + echo [WARNUNG] telegram_config.json nicht gefunden! + echo Bitte erstellen Sie die Datei aus telegram_config_template.json +) + +if exist "trading_bot.db" ( + echo [OK] trading_bot.db gefunden +) else ( + echo [INFO] trading_bot.db nicht gefunden (wird beim ersten Start erstellt) +) + +echo. +echo ======================================== +echo Setup abgeschlossen! +echo ======================================== +echo. +echo Nächste Schritte: +echo 1. Starten Sie Jupyter Notebook mit: jupyter notebook +echo 2. Oder starten Sie die GUI mit: python trading_bot_gui.py +echo 3. Oder starten Sie das Dashboard mit: streamlit run trading_dashboard.py +echo. +echo Die virtuelle Umgebung ist bereits aktiviert! +echo Sie sehen "(venv)" vor Ihrer Kommandozeile. +echo. +pause diff --git a/start_bot.bat b/start_bot.bat new file mode 100644 index 0000000..8b2cdfb --- /dev/null +++ b/start_bot.bat @@ -0,0 +1,52 @@ +@echo off +REM Schnellstart-Script für Trading Bot + +echo ======================================== +echo Trading Bot - Schnellstart +echo ======================================== +echo. + +REM Aktiviere virtuelle Umgebung +if exist "venv\Scripts\activate.bat" ( + call venv\Scripts\activate.bat + echo [OK] Virtuelle Umgebung aktiviert +) else ( + echo [WARNUNG] Virtuelle Umgebung nicht gefunden! + echo Bitte führen Sie zuerst setup.bat aus. + pause + exit /b 1 +) + +echo. +echo Was möchten Sie starten? +echo. +echo [1] Jupyter Notebook (Haupt-Bot) +echo [2] Trading Dashboard (Streamlit) +echo [3] GUI (Tkinter Desktop App) +echo [4] Nur virtuelle Umgebung (Shell) +echo. + +set /p choice="Ihre Wahl (1-4): " + +if "%choice%"=="1" ( + echo. + echo [INFO] Starte Jupyter Notebook... + jupyter notebook TradingBot_V1.6_Adaptive_Complete_CORRECTED.ipynb +) else if "%choice%"=="2" ( + echo. + echo [INFO] Starte Trading Dashboard... + streamlit run trading_dashboard.py +) else if "%choice%"=="3" ( + echo. + echo [INFO] Starte GUI... + python trading_bot_gui.py +) else if "%choice%"=="4" ( + echo. + echo [INFO] Virtuelle Umgebung aktiviert + echo Sie können jetzt Befehle ausführen. + cmd /k +) else ( + echo [FEHLER] Ungültige Auswahl! + pause + exit /b 1 +)