trading/services/kevin_signal_bridge
Viktor Barzin 14407d37dc feat(kevin-exec): size from target_dollars, propagate price, bracket entries
Kevin signals never placed orders: the executor sized only from
sentiment_context["current_price"] (None for Kevin) so qty=0, and orders
were always built SIMPLE (stop/take pcts ignored).

- TradeSignal gains `current_price`; the bridge now sets it on publish
- risk_manager honors `target_dollars` directly (no strength re-scale) and
  resolves price from current_price then sentiment_context
- executor builds BRACKET orders for LONG entries carrying stop/take pcts;
  EXIT/SELL signals stay SIMPLE (the bridge sets pcts even on exits)

[ci skip]

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 21:56:59 +00:00
..
__init__.py feat(kevin_bridge): main orchestrator with dependency injection 2026-05-24 00:59:56 +00:00
aggregator.py feat(kevin_bridge): multi-mention aggregator with capped conviction boost 2026-05-24 01:01:02 +00:00
audit.py fix(kevin_bridge): persist signal to signals table before audit row 2026-05-26 21:23:59 +00:00
blocklist.py feat(kevin_bridge): blocklist + daily risk counters 2026-05-24 01:01:54 +00:00
config.py feat(kevin_bridge): main orchestrator with dependency injection 2026-05-24 00:59:56 +00:00
cursor.py feat(kevin_bridge): exit-scan daily job + cursor + audit writer 2026-05-24 01:03:53 +00:00
exit_scanner.py feat(kevin_bridge): exit-scan daily job + cursor + audit writer 2026-05-24 01:03:53 +00:00
main.py feat(kevin-exec): size from target_dollars, propagate price, bracket entries 2026-06-04 21:56:59 +00:00
risk_counters.py feat(kevin_bridge): blocklist + daily risk counters 2026-05-24 01:01:54 +00:00