summaryrefslogtreecommitdiff
path: root/services
AgeCommit message (Collapse)Author
12 hoursstyle: auto-fix lint violations from enhanced ruff rulesTheSiahxyz
12 hoursfeat: add API security (auth, CORS, rate limiting, input validation)TheSiahxyz
- Add Bearer token authentication via API_AUTH_TOKEN (disabled when unset) - Add CORS middleware with configurable origins - Add rate limiting (60/min) on order and signal endpoints via slowapi - Add Query parameter bounds: orders/signals limit 1-1000, snapshots days 1-365
12 hoursrefactor: specialize exception handling across all servicesTheSiahxyz
12 hoursfix: deduplicate LLM JSON parsing and reuse aiohttp sessions in stock selectorTheSiahxyz
Extract _extract_json_array() to eliminate duplicate JSON parsing logic between _parse_llm_selections() and LLMCandidateSource._parse_candidates(). Add session reuse in StockSelector via _ensure_session()/close() methods instead of creating new aiohttp.ClientSession per HTTP call. Pass shared session to LLMCandidateSource.get_candidates().
12 hoursfeat: add graceful shutdown with SIGTERM/SIGINT handlers to all servicesTheSiahxyz
12 hoursfeat: optimize Dockerfiles with multi-stage builds, non-root user, .dockerignoreTheSiahxyz
12 hourschore: pin all service dependencies with upper boundsTheSiahxyz
12 hoursfeat: add config validation, SecretStr for secrets, API security fieldsTheSiahxyz
13 hoursrefactor: remove dead code (SentimentData, CircuitBreaker, TradeRow, unused ↵TheSiahxyz
configs) - Remove SentimentData class and tests (superseded by SentimentAggregator) - Remove CircuitBreaker, CircuitState, retry_with_backoff and tests (never used) - Remove TradeRow ORM model and tests (no DB methods reference it) - Remove unused config fields: circuit_breaker_*, selector_candidates_time, selector_filter_time
14 hoursstyle: fix lint and formatting issues across news collector and sharedTheSiahxyz
14 hoursfeat: integrate stock selector into strategy engine schedulerTheSiahxyz
14 hoursfeat: implement 3-stage stock selector (sentiment → technical → LLM)TheSiahxyz
Adds SentimentCandidateSource (DB scores), LLMCandidateSource (Claude news analysis), and StockSelector orchestrating candidate merge, RSI/EMA20/volume technical filter, and LLM final 2-3 pick selection with Redis publish and DB persistence.
14 hoursfeat: implement news-collector main scheduler with all collectorsTheSiahxyz
14 hoursfeat: implement Truth Social and Federal Reserve collectorsTheSiahxyz
14 hoursfeat: implement Reddit social sentiment collectorTheSiahxyz
14 hoursfeat: implement SEC EDGAR 8-K filing collectorTheSiahxyz
14 hoursfeat: implement CNN Fear & Greed Index collectorTheSiahxyz
14 hoursfeat: implement RSS news collector (Yahoo, Google News, MarketWatch)TheSiahxyz
14 hoursfeat: implement Finnhub news collector with VADER sentimentTheSiahxyz
14 hoursfeat: scaffold news-collector service with BaseCollectorTheSiahxyz
17 hoursrefactor: purge all remaining crypto/Binance referencesTheSiahxyz
- Replace BTCUSDT/SOLUSDT/ETHUSDT with AAPL/MSFT in all test files - Update backtester default symbol to AAPL - Update strategy-engine default symbols to US stocks - Update project description and CLI help text - Remove empty superpowers docs directory - Zero crypto references remaining in codebase
17 hoursrefactor: remove all crypto/Binance code, update to US stock symbolsTheSiahxyz
18 hoursrefactor: complete US stock migrationTheSiahxyz
- Data collector: Alpaca REST polling (replaces Binance WebSocket) - Order executor: Alpaca submit_order (replaces ccxt) - Claude stock screener: daily MOC candidate analysis - Remove ccxt/websockets dependencies - Default universe: AAPL, MSFT, GOOGL, AMZN, TSLA + 28 more - 399 tests passing, lint clean
18 hoursrefactor: update data-collector and order-executor for Alpaca APITheSiahxyz
18 hoursrefactor: migrate to US stocks with Alpaca APITheSiahxyz
- Replace Binance/ccxt with Alpaca REST client (paper + live) - Add MOC (Market on Close) strategy for overnight gap trading - Wire sentiment into strategy engine main loop - Add EMA + bullish candle entry filters to Asian RSI - Remove crypto-specific exchange factory - Update config: Alpaca keys replace Binance keys - 399 tests passing, lint clean
18 hoursfeat(strategy): add Market on Close (MOC) strategy for US stocksTheSiahxyz
18 hoursrefactor: replace Binance/ccxt with Alpaca API client for US stocksTheSiahxyz
18 hoursfeat: wire sentiment into engine + add EMA/bullish candle entry filtersTheSiahxyz
18 hoursfeat: add market sentiment filters (Fear & Greed, CryptoPanic, CryptoQuant)TheSiahxyz
- SentimentProvider: fetches Fear & Greed Index (free, no key), CryptoPanic news sentiment (free key), CryptoQuant exchange netflow (free key) - SentimentData: aggregated should_buy/should_block logic - Fear < 30 = buy opportunity, Greed > 80 = block buying - Negative news < -0.5 = block buying - Exchange outflow = bullish, inflow = bearish - Integrated into Asian Session RSI strategy as entry filter - All providers optional — disabled when API key missing - 14 sentiment tests + 386 total tests passing
18 hoursfeat(strategy): add Asian Session RSI strategy for SOL/USDT scalpingTheSiahxyz
Simple time-based + RSI strategy for small capital day trading: - Trading window: KST 9:00-11:00 (UTC 0:00-2:00) - Entry: RSI(14) < 25 + volume above average - Exit: +1.5% TP, -0.7% SL, or session end time exit - Risk: max 3 trades/day, pause after 2 consecutive losses - Config: ~$75 per trade (10% of 100만원 capital)
19 hoursfeat(strategy): Phase 3 complete — individual strategy upgradesTheSiahxyz
- RSI: bullish/bearish divergence detection (conviction 0.9) - MACD: signal-line crossover + zero-line distance conviction - Grid: trend break exit + out-of-range guard - Bollinger: squeeze detection + breakout signals + %B conviction - EMA Crossover: pullback entry mode (wait for EMA retest) - VWAP: daily reset + 1σ/2σ deviation bands + band-based conviction - Volume Profile: HVN/LVN node detection for stronger signals - Combined: adaptive weighting based on sub-strategy win rates - 363 tests passing
19 hoursfeat(strategy): add RSI divergence detection and MACD signal-line crossoverTheSiahxyz
19 hoursfeat(strategy): add EMA pullback entry and VWAP daily reset with deviation bandsTheSiahxyz
19 hoursfeat(strategy): add Volume Profile HVN/LVN and Combined adaptive weightingTheSiahxyz
19 hoursfeat(strategy): add Grid trend guard and Bollinger squeeze detectionTheSiahxyz
19 hoursfeat(risk): add drawdown-based position reduction and consecutive loss pauseTheSiahxyz
19 hoursfeat(risk): add portfolio exposure, correlation risk, and VaR checksTheSiahxyz
33 hoursfeat(strategy): Phase 2 complete — strategy infrastructure upgradeTheSiahxyz
- Technical indicators library (ATR, ADX, RSI, MACD, Bollinger, Stochastic, OBV) - Signal model: conviction score, stop_loss, take_profit fields - BaseStrategy: ADX regime filter, volume confirmation, ATR-based stops - All 8 strategies upgraded with filters, conviction scoring, ATR stops - Combined strategy uses conviction-weighted scoring - 334 tests passing
33 hoursfeat(strategy): apply filters, conviction scoring, and ATR stops to all ↵TheSiahxyz
strategies
33 hoursfeat(strategy): add ADX regime filter, volume confirmation, and ATR stops to ↵TheSiahxyz
BaseStrategy
33 hoursfeat(strategy): add technical indicators library (ATR, ADX, RSI, MACD, ↵TheSiahxyz
Bollinger, Stochastic, OBV)
33 hoursfeat(shared): add conviction, stop_loss, take_profit to Signal modelTheSiahxyz
33 hoursfeat(backtester): Phase 1 complete — realistic backtesting engineTheSiahxyz
- Slippage modeling (configurable per-trade, buy higher/sell lower) - Trading fee deduction (maker/taker configurable) - Stop-loss and take-profit auto-execution per position - Short selling support (allow_short flag) - Walk-forward analysis engine (in-sample/out-of-sample, efficiency ratio) - Daily equity curve Sharpe/Sortino with risk-free rate adjustment - Recovery factor, consecutive win/loss streaks, fee-aware PnL - 312 tests passing
33 hoursfeat(backtester): add slippage, fees, stop-loss/take-profit, and short sellingTheSiahxyz
33 hoursfeat(backtester): add walk-forward analysis engineTheSiahxyz
33 hoursfeat(backtester): improve metrics with daily Sharpe, recovery factor, ↵TheSiahxyz
consecutive stats
34 hoursfix: resolve final 3 issues for production readinessTheSiahxyz
- Fix API strategies endpoint path resolution (use STRATEGIES_DIR env var) - Add DATABASE_URL env var override in alembic env.py - Move risk config fields to shared Settings base class - Remove duplicate fields from ExecutorConfig
34 hoursfix: lint cleanup after medium priority tasksTheSiahxyz
34 hoursfeat(broker): add Redis consumer groups for reliable message processingTheSiahxyz
34 hourstest: add CLI command tests and API router testsTheSiahxyz