trading/tests
Viktor Barzin 382188a19b
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
feat(trade-executor): Slack notifications on trade + risk-rejection
SlackNotifier posts a short message to a Slack incoming webhook on:
  - trade-executor submits an order (filled or pending)
  - RiskManager rejects a signal (except outside_market_hours, which
    spams every poll when the bot tries to trade after-hours)

Key properties:
  - No-op when slack_webhook_url is empty (fail-soft default).
  - HTTP errors are swallowed — a Slack outage MUST NOT crash the
    consumer loop; the trade already happened on Alpaca.
  - Kevin-strategy signals tagged "Meet Kevin" in the message so I can
    tell which strategy fired.

Wiring:
  - TradeExecutorConfig.slack_webhook_url + TRADING_SLACK_WEBHOOK_URL
    env var, sourced from Vault secret/trading-bot/slack_webhook_url
    via existing ExternalSecret.
  - SlackNotifier passed to process_signal; both rejection + post-trade
    paths call it.

Tests: 7 new (no-op when disabled, post calls webhook with correct
text, Kevin strategy tag, swallows HTTP errors, suppresses noisy
rejections).
2026-05-26 21:55:55 +00:00
..
api_gateway feat(api): /api/meet-kevin/strategy/* routes 2026-05-24 01:12:16 +00:00
backtester feat(backtester): extend compute_metrics with alpha/beta/winners/best 2026-05-24 00:57:42 +00:00
fixtures feat(meet-kevin): caption extractor via yt-dlp 2026-05-21 19:40:52 +00:00
integration feat: integration tests, seed data, and smoke test script 2026-02-22 16:02:44 +00:00
services feat(trade-executor): Slack notifications on trade + risk-rejection 2026-05-26 21:55:55 +00:00
shared feat(phase2): BRACKET orders + Kevin risk caps (Tasks 18, 19) 2026-05-26 21:03:59 +00:00
__init__.py feat: project foundation — monorepo setup, shared config, redis streams, telemetry 2026-02-22 15:13:26 +00:00
conftest.py feat(kevin): SA models for bridge audit + backtest persistence 2026-05-24 00:49:52 +00:00
test_backtester.py feat: backtesting engine — historical replay with shared strategies 2026-02-22 15:43:19 +00:00
test_broker.py feat: brokerage abstraction layer with Alpaca implementation 2026-02-22 15:26:41 +00:00
test_fundamentals.py refactor: reconcile FundamentalsSnapshot to use canonical schema from trading.py 2026-02-23 21:45:18 +00:00
test_indicators.py feat: add MACD, Bollinger, VWAP, ATR, EMA, SMA-200 indicator computations 2026-02-23 21:49:26 +00:00
test_models.py test(kevin): fix enum assertion + mark Postgres-dependent tests as integration 2026-05-26 20:01:37 +00:00
test_new_strategies.py feat: add 6 new strategies (value, MACD, Bollinger, VWAP, liquidity, MA stack) 2026-02-23 21:50:52 +00:00
test_redis_streams.py feat: project foundation — monorepo setup, shared config, redis streams, telemetry 2026-02-22 15:13:26 +00:00
test_schemas.py fix(schemas): use enum types as field types + enforce symbol length 2026-05-21 19:15:59 +00:00
test_strategies.py feat: productionize local service — fix signal pipeline, lower thresholds, add company-name ticker extraction 2026-02-22 22:17:26 +00:00