Commit Graph

2 Commits

Author SHA1 Message Date
agentson
f0ae25c533 feat: implement Smart Volatility Scanner with RSI/volume filters (issue #76)
Some checks failed
CI / test (pull_request) Has been cancelled
Add Python-first scanning pipeline that reduces Gemini API calls by filtering
stocks before AI analysis: KIS rankings API -> RSI/volume filter -> AI judgment.

## Implementation
- Add RSI calculation (Wilder's smoothing method) to VolatilityAnalyzer
- Add KIS API methods: fetch_market_rankings() and get_daily_prices()
- Create SmartVolatilityScanner with configurable thresholds
- Integrate scanner into main.py realtime mode
- Add selection_context logging to trades table for Evolution system

## Configuration
- RSI_OVERSOLD_THRESHOLD: 30 (configurable 0-50)
- RSI_MOMENTUM_THRESHOLD: 70 (configurable 50-100)
- VOL_MULTIPLIER: 2.0 (minimum volume ratio, configurable 1-10)
- SCANNER_TOP_N: 3 (max candidates per scan, configurable 1-10)

## Benefits
- Reduces Gemini API calls (process 1-3 qualified stocks vs 20-30 ranked)
- Python-based technical filtering before expensive AI judgment
- Tracks selection criteria (RSI, volume_ratio, signal, score) for strategy optimization
- Graceful fallback to static watchlist if ranking API fails

## Tests
- 13 new tests for SmartVolatilityScanner and RSI calculation
- All existing tests updated and passing
- Coverage maintained at 73%

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 00:48:23 +09:00
agentson
62b1a1f37a feat: implement Volatility Hunter for real-time market scanning
Some checks failed
CI / test (pull_request) Has been cancelled
Implements issue #20 - Behavioral Rule: Volatility Hunter

Components:
1. src/analysis/volatility.py
   - VolatilityAnalyzer with ATR calculation
   - Price change tracking (1m, 5m, 15m intervals)
   - Volume surge detection (ratio vs average)
   - Price-volume divergence analysis
   - Momentum scoring (0-100 scale)
   - Breakout/breakdown detection

2. src/analysis/scanner.py
   - MarketScanner for real-time stock scanning
   - Scans all available stocks every 60 seconds
   - Ranks by momentum score
   - Identifies top 5 movers per market
   - Dynamic watchlist updates

3. Integration with src/main.py
   - Auto-adjust WATCHLISTS dynamically
   - Replace laggards with leaders (max 2 per scan)
   - Volume confirmation required
   - Integrated with Context Tree L7 (real-time layer)

4. Comprehensive tests
   - 22 tests in tests/test_volatility.py
   - 99% coverage for analysis module
   - Tests for all volatility calculations
   - Tests for scanner ranking and watchlist updates
   - All tests passing

Key Features:
- Scan ALL stocks, not just current watchlist
- Dynamic watchlist that adapts to market leaders
- Context Tree integration for real-time data storage
- Breakout detection with volume confirmation
- Multi-timeframe momentum analysis

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-04 16:29:06 +09:00