summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
10 hoursrefactor: specialize exception handling across all servicesTheSiahxyz
10 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().
10 hoursfeat: add graceful shutdown with SIGTERM/SIGINT handlers to all servicesTheSiahxyz
11 hoursfeat: add resource limits and network isolation to docker-composeTheSiahxyz
11 hoursfeat: optimize Dockerfiles with multi-stage builds, non-root user, .dockerignoreTheSiahxyz
11 hoursfeat: add missing DB indexes for signals, orders, trades, snapshotsTheSiahxyz
11 hoursfix: move hardcoded postgres credentials to .env, annotate secretsTheSiahxyz
11 hourschore: pin all service dependencies with upper boundsTheSiahxyz
11 hoursfeat: add config validation, SecretStr for secrets, API security fieldsTheSiahxyz
11 hoursfeat: add retry and resilience to Redis broker with keepaliveTheSiahxyz
11 hoursfeat: add DB connection pooling with configurable pool_size, overflow, recycleTheSiahxyz
11 hoursfix: address code review issues in resilience moduleTheSiahxyz
11 hoursfeat: implement resilience module (retry, circuit breaker, timeout)TheSiahxyz
Add retry_async decorator with exponential backoff + jitter, CircuitBreaker class with closed/open/half_open states, and async_timeout context manager. Pin all shared deps with upper bounds.
11 hoursdocs: add platform upgrade implementation planTheSiahxyz
19 tasks across 5 phases: shared library hardening, infrastructure, service fixes, API security, and operational maturity.
11 hoursdocs: add platform upgrade design specTheSiahxyz
Bottom-up upgrade plan covering 5 phases: shared library hardening, infrastructure improvements, service-level fixes, API security, and operational maturity.
12 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
12 hoursstyle: fix lint and formatting issues across news collector and sharedTheSiahxyz
12 hoursfeat: add news-collector service to Docker ComposeTheSiahxyz
12 hoursfeat: integrate stock selector into strategy engine schedulerTheSiahxyz
12 hoursfeat: add Telegram notification for stock selectionsTheSiahxyz
12 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.
12 hoursfeat: implement news-collector main scheduler with all collectorsTheSiahxyz
12 hoursfeat: implement SentimentAggregator with freshness decay and composite scoringTheSiahxyz
12 hoursfeat: implement Truth Social and Federal Reserve collectorsTheSiahxyz
12 hoursfeat: implement Reddit social sentiment collectorTheSiahxyz
12 hoursfeat: implement SEC EDGAR 8-K filing collectorTheSiahxyz
12 hoursfeat: implement CNN Fear & Greed Index collectorTheSiahxyz
12 hoursfeat: implement RSS news collector (Yahoo, Google News, MarketWatch)TheSiahxyz
12 hoursfeat: implement Finnhub news collector with VADER sentimentTheSiahxyz
12 hoursfeat: scaffold news-collector service with BaseCollectorTheSiahxyz
12 hoursfeat: add news collector and stock selector config settingsTheSiahxyz
12 hoursfeat: add NewsEvent, DB methods for news/sentiment/selectionsTheSiahxyz
- Add NEWS to EventType enum and NewsEvent class to events.py - Add insert_news_item, get_recent_news, upsert_symbol_score, get_top_symbol_scores, upsert_market_sentiment, get_latest_market_sentiment, insert_stock_selection, get_stock_selections methods to Database class in db.py - Add test_news_events.py and test_db_news.py with full coverage
12 hoursfeat: add Alembic migration for news and sentiment tablesTheSiahxyz
12 hoursfeat: add SQLAlchemy ORM models for news, scores, selectionsTheSiahxyz
12 hoursfeat: add NewsItem, sentiment scoring, and stock selection modelsTheSiahxyz
Add NewsCategory enum and NewsItem model to shared/models.py. Create sentiment_models.py with SymbolScore, MarketSentiment, SelectedStock, Candidate.
12 hoursdocs: add news-driven stock selector implementation planTheSiahxyz
19 tasks across 5 phases: shared models, news collector service (7 collectors), sentiment aggregation pipeline, stock selector engine, and integration.
13 hoursdocs: add news-driven stock selector design specTheSiahxyz
Design for upgrading MOC strategy from fixed symbols to dynamic, news-driven stock selection with sentiment analysis pipeline.
16 hoursdocs: rewrite TODO for US stock platform (remove all crypto references)TheSiahxyz
16 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
16 hoursrefactor: remove all crypto/Binance code, update to US stock symbolsTheSiahxyz
16 hoursfeat: add parameter optimization script for Asian Session RSITheSiahxyz
16 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
16 hoursrefactor: update data-collector and order-executor for Alpaca APITheSiahxyz
16 hoursfeat: add Claude-powered daily stock screener for MOC strategyTheSiahxyz
16 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
16 hoursfeat(strategy): add Market on Close (MOC) strategy for US stocksTheSiahxyz
16 hoursrefactor: replace Binance/ccxt with Alpaca API client for US stocksTheSiahxyz
16 hoursfeat: wire sentiment into engine + add EMA/bullish candle entry filtersTheSiahxyz
16 hoursrefactor: dead code cleanupTheSiahxyz
- Remove placeholder 'backtest report' command (no stored results) - Connect walk-forward analysis to CLI: 'trading backtest walk-forward' - Update test for renamed command
16 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