1.6 KiB
1.6 KiB
Task: Complete rotation signals and macro view
Goal
Implement the rotation signal generation and macro view endpoints for the sector rotation service.
Requirements
1. Signal generation in services/rotation_service.py
Implement generate_signals(ranked_sectors) method:
- For each sector, determine rotation signal based on:
rank_change > 0→"bullish"(rising)rank_change < 0→"bearish"(falling)rank_change == 0→"neutral"(unchanged)
- Return list of signal dicts with sector info and signal type
- Filter out sectors with insufficient data
2. Macro view in routers/rotation.py
Add GET /api/v1/rotation/macro endpoint:
- Returns top 3 rising sectors and bottom 3 falling sectors
- Includes sector name, ticker, momentum, and signal
- Response model:
MacroRotationResponsewithrisingandfallinglists
3. Add response model
Add MacroRotationResponse schema in schemas/rotation.py:
rising: list[RisingSector]falling: list[FallingSector]- Each sector:
sector_name,sector_ticker,momentum,signal
Acceptance Criteria
generate_signals()correctly classifies sectors/api/v1/rotation/macroendpoint returns correct data- Response model is properly typed
- Tests pass for new endpoints
Files to Modify
src/backend/services/rotation_service.pysrc/backend/routers/rotation.pysrc/backend/schemas/rotation.py
Files to Read First
src/backend/services/rotation_service.py— current statesrc/backend/routers/rotation.py— existing rotation endpointssrc/backend/schemas/rotation.py— existing schemas