trading/tests/shared
Viktor Barzin 6fec9963fb
Some checks failed
ci/woodpecker/push/woodpecker Pipeline was canceled
feat(notify): Slack message for reconcile-booked closes (realized P&L)
Entries, deferrals and rejections posted to #trading-bot, but exits booked by the reconcile loop (bracket stop/take-profit legs that fill at Alpaca) were silent — the two Jun 9 stop-outs produced no message. Viktor asked for a Slack message on each position execution.

- move SlackNotifier to shared/ (now used by trade-executor AND api-gateway)

- add notify_close (ticker/qty/price/realized P&L/reason, win-loss emoji)

- reconcile loop notifies on each booked close, fail-soft; api-gateway config gains slack fields (channel defaults to trading-bot since the env carries only the bot token; chat:write.public covers posting)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 20:44:35 +00:00
..
broker feat(phase2): BRACKET orders + Kevin risk caps (Tasks 18, 19) 2026-05-26 21:03:59 +00:00
models test(kevin): fix enum assertion + mark Postgres-dependent tests as integration 2026-05-26 20:01:37 +00:00
schemas feat(kevin): KevinDecision + KevinAccountState schemas 2026-05-24 00:44:57 +00:00
strategies feat(kevin-strategy): integrate expected_move into trading decision 2026-05-28 22:45:24 +00:00
__init__.py feat(kevin): KevinDecision + KevinAccountState schemas 2026-05-24 00:44:57 +00:00
test_slack_notifier.py feat(notify): Slack message for reconcile-booked closes (realized P&L) 2026-06-10 20:44:35 +00:00