| Age | Commit message (Collapse) | Author |
|
|
|
|
|
- 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
|
|
|
|
Add NewsCategory enum and NewsItem model to shared/models.py.
Create sentiment_models.py with SymbolScore, MarketSentiment, SelectedStock, Candidate.
|
|
|
|
- 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
|
|
|
|
- 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
|
|
|
|
|
|
- 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Fix ambiguous variable name in binance_rest.py
- Remove unused volumes variable in volume_profile_strategy.py
- Fix import ordering in backtester main.py and test_metrics.py
- Auto-format all files with ruff
|
|
Replace logging.basicConfig/getLogger with structlog setup_logging in all
four service entry points. Add HealthCheckServer, ServiceMetrics, and
TelegramNotifier initialization to each service. Update OrderExecutor to
accept a notifier parameter and send order notifications. Add
RedisBroker.ping() for health checks. Update executor tests with
notifier=AsyncMock().
|
|
|
|
|
|
|
|
|
|
Replace raw asyncpg SQL with SQLAlchemy async engine, async_sessionmaker,
and ORM operations. Uses session.merge for candle upserts, session.add
for signal/order inserts, update() for status changes, select() for
queries. Auto-converts postgresql:// URLs to postgresql+asyncpg://.
Keeps init_tables() as backward-compatible alias for connect().
|
|
Add SA 2.0 declarative models (CandleRow, SignalRow, OrderRow, TradeRow,
PositionRow, PortfolioSnapshotRow) mirroring existing asyncpg tables.
Set up Alembic with async PostgreSQL support and add migrate/migrate-down/
migrate-new Makefile targets. Update shared dependencies with sqlalchemy,
alembic, structlog, prometheus-client, pyyaml, aiohttp, and rich.
|
|
Binance spot crypto trading platform with microservices architecture:
- shared: Pydantic models, Redis Streams broker, asyncpg DB layer
- data-collector: Binance WebSocket/REST market data collection
- strategy-engine: Plugin-based strategy execution (RSI, Grid)
- order-executor: Order execution with risk management
- portfolio-manager: Position tracking and PnL calculation
- backtester: Historical strategy testing with simulator
- cli: Click-based CLI for all operations
- Docker Compose orchestration with Redis and PostgreSQL
- 24 test files covering all modules
|