initial: alpaclaudia paper-trading bot + dashboard

Python bot (bot/alpaclaudia): alpaca-py client, wheel strategy (CSP + covered
calls) plus equity trailing stops, risk gates (cash buffer, cost-basis guard,
per-symbol concentration cap), SQLite state log, Typer CLI (tick/loop/status/
report/dump-state), Discord daily report, pytest suite.

Next.js 14 dashboard (dashboard/): read-only — reads the bot's SQLite directly
and pulls live account/positions/orders from Alpaca. KPIs, equity chart,
positions, bot-intents audit table, and orders table. Dark UI with Tailwind.

systemd/: user-unit templates for the polling loop and the post-close report
timer.

docs/STRATEGY.md: wheel mechanics, risk invariants, later candidates.

Defaults to BOT_MODE=dry — nothing is submitted to Alpaca until explicitly
enabled in .env. ALPACA_ENV=paper by default; flipping to live requires an
explicit second guard.
This commit is contained in:
2026-04-16 21:38:25 +02:00
commit 39875112a0
46 changed files with 5195 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
[Unit]
Description=alpaclaudia — Alpaca paper-trading loop
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
WorkingDirectory=/home/otto/finhacks
EnvironmentFile=/home/otto/finhacks/.env
ExecStart=/home/otto/finhacks/bot/.venv/bin/python -m alpaclaudia loop
Restart=on-failure
RestartSec=30
StandardOutput=append:/home/otto/finhacks/logs/systemd.log
StandardError=append:/home/otto/finhacks/logs/systemd.log
[Install]
WantedBy=default.target