EINSATZ-FELD (User-Wunsch): Laufzeitwert MANUAL_MARGIN in core/config.py (set/get_manual_margin, Muster wie set_margin_buffer). 0 = automatisch wie bisher (margin_buffer_pct % der freien Margin), > 0 = Position wird auf genau diesen Margin-Einsatz gerechnet. - calc_lots setzt es um und DECKELT auf freie Margin x Buffer; ein zu hoher Wunschwert wird begrenzt und geloggt statt an den Broker durchgereicht. Reicht der Betrag nicht fuers Mindestlot -> 0.0 + Warnung, Trade sauber abgelehnt. - Vorrang vor dem Risiko-Modus in trader._send_locked: eine ausdrueckliche Groessenvorgabe schlaegt die Rechenregel. - Wirkt auf ALLE neuen Positionen, auch die autonomen. - UI-Feld "Einsatz" in der ORDER-Leiste (nicht in der Trade-Leiste: die ist nur bei offener Position sichtbar, der Einsatz muss vorher einstellbar sein), bernstein umrandet solange gesetzt. Enter blurrt nur, change sendet einmal. - POST /api/manualmargin, Snapshot manual_margin, neustart-fest ueber runtime_state.json. Ende-zu-Ende getestet (250 -> Snapshot -> 0 -> persistiert). - Lot-Logik isoliert geprueft: 200 EUR -> 0,58 Lots; 5000 EUR -> gedeckelt. SPRACHAUSGABE: Piper lokal (tools/speak.py). Windows-TTS funktioniert zwar, aber es ist KEINE deutsche Stimme installiert - weder SAPI5 noch OneCore (nur David/Zira/Mark, en-US); deutscher Text kaeme mit englischer Aussprache. Add-WindowsCapability scheitert ohne Adminrechte. Piper gewaehlt: laeuft lokal (passt zum Rest - WireGuard-only, Secrets in der ini, keine Cloud), kostet nichts, aus PowerShell/Python aufrufbar. Stimme thorsten-medium (de_DE), Real-Time-Faktor 0,08 (4,3 s Audio in 0,36 s). Das ZIP entpackt eine Ebene tiefer als erwartet (tools/piper/piper/piper.exe) - speak.py SUCHT Binary und Modell statt Pfade fest zu verdrahten. Der erste Entwurf scheiterte daran; der Fail-safe meldete die Pfade sauber statt stumm zu bleiben. Drei Modi getestet (Argument, Pipe, --wav). tools/piper/ ist gitignored (Binaries + 60-MB-Modell), speak.py versioniert. v=136. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
65 lines
2.2 KiB
Plaintext
65 lines
2.2 KiB
Plaintext
# ── SECRETS (NIEMALS committen) ─────────────────────────────────────────────
|
|
oil_widget_config.ini
|
|
# ⚠ AUCH die Backups! `oil_widget_config.ini` allein deckt `…ini.bak-<datum>` NICHT
|
|
# ab — beim Modul-Audit 2026-07-31 lag ein solches Backup ungeschützt als untracked
|
|
# im Repo. Die Datei enthält dieselben Live-Keys/Token wie das Original.
|
|
oil_widget_config.ini.*
|
|
oil_widget_config.ini.bak*
|
|
API Key*.txt
|
|
*.key
|
|
.env
|
|
|
|
# ── Datenbank + Backups ─────────────────────────────────────────────────────
|
|
*.db
|
|
*.db-shm
|
|
*.db-wal
|
|
*.db.bak-*
|
|
oil_widget_history.db*
|
|
test_*.db
|
|
|
|
# ── Logs ────────────────────────────────────────────────────────────────────
|
|
*.log
|
|
*.log.*
|
|
|
|
# ── Laufzeit-/State-Dateien (werden vom Server erzeugt) ──────────────────────
|
|
emergency_state.json
|
|
runtime_state.json
|
|
report_state.json
|
|
oil_widget_translations.json
|
|
|
|
# ── Persönliche/lokale Umgebung ─────────────────────────────────────────────
|
|
userpath_backup.txt
|
|
.claude/settings.local.json
|
|
.removed_backup/
|
|
|
|
# ── Python ──────────────────────────────────────────────────────────────────
|
|
__pycache__/
|
|
*.py[cod]
|
|
*.egg-info/
|
|
.venv/
|
|
venv/
|
|
.pytest_cache/
|
|
.mypy_cache/
|
|
|
|
# ── OS/Editor ───────────────────────────────────────────────────────────────
|
|
Thumbs.db
|
|
desktop.ini
|
|
.DS_Store
|
|
.vscode/
|
|
.idea/
|
|
|
|
# Reminder-Marker (gemeldete Messungen)
|
|
.reminders/
|
|
|
|
# Laufprotokolle der Skript-Vollpruefung (2026-08-04, wegwerfbar)
|
|
run_all.log
|
|
run_all.err
|
|
rerun_rejected.*
|
|
gated.log
|
|
gated.err
|
|
fib.log
|
|
fib.err
|
|
|
|
# Piper (lokale Sprachausgabe) — Binaries und Stimmmodell, ~80 MB
|
|
tools/piper/
|