summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
23 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
23 hoursdocs: update TODO — 3 remaining issues identified from deep analysisTheSiahxyz
23 hoursfix: lint cleanup after medium priority tasksTheSiahxyz
23 hoursfeat(broker): add Redis consumer groups for reliable message processingTheSiahxyz
23 hourstest: add CLI command tests and API router testsTheSiahxyz
23 hoursfeat(portfolio): track realized PnL on sell ordersTheSiahxyz
24 hoursfix: lint cleanup after critical and high priority fixesTheSiahxyz
24 hoursfix: WS factory, backtester config, CI docker builds, health port docsTheSiahxyz
24 hoursfix: snapshot delay, env fields, alembic creds, API healthcheck and error ↵TheSiahxyz
handling
24 hoursfix(strategy-engine): process multiple symbols concurrently with asyncio.gatherTheSiahxyz
24 hoursdocs: comprehensive TODO update with deep analysis findingsTheSiahxyz
Critical: multi-symbol bug, snapshot delay, missing env fields, API healthcheck/error handling, alembic creds mismatch High: binance-only WS, backtester config, CI docker builds Medium: test coverage gaps, realized PnL, test warnings
24 hoursdocs: mark all tasks completed, update project statusTheSiahxyz
24 hoursfix: lint cleanup for API, combined strategy, and formattingTheSiahxyz
24 hoursfeat(risk): add trailing stop, volatility sizing, and position limitsTheSiahxyz
24 hoursfeat(strategy): add combined strategy with weighted signal votingTheSiahxyz
24 hoursfeat: add FastAPI REST API serviceTheSiahxyz
24 hoursfeat: add multi-exchange support via ccxt factoryTheSiahxyz
24 hoursfeat(security): add bearer token auth for health/metrics endpointsTheSiahxyz
24 hourstest: add Docker Compose E2E test scriptTheSiahxyz
24 hoursfeat(monitoring): add Grafana dashboard provisioningTheSiahxyz
24 hoursci: add Gitea Actions workflow and CI scriptTheSiahxyz
24 hoursfeat(monitoring): add Loki + Promtail for log aggregationTheSiahxyz
24 hoursdocs: update TODO — mark Critical, High, Medium as completedTheSiahxyz
24 hoursfeat(portfolio): add periodic portfolio snapshots and daily Telegram summaryTheSiahxyz
24 hoursfeat: medium priority improvementsTheSiahxyz
- Add 30 edge case tests (zero volume, empty data, extreme values, strategy reset, notifier failures) - Fix VWAP division by zero on zero-price candles - Add DB transaction rollback on errors + transaction() context manager - Add parameter validation to all 7 strategies with 41 validation tests - Fix lint issues across test files
24 hourstest: add edge case tests for zero volume, empty data, extreme valuesTheSiahxyz
24 hoursfix(shared): add transaction rollback on DB errorsTheSiahxyz
24 hoursfeat(strategy): add parameter validation to all strategiesTheSiahxyz
24 hoursfix: lint fixes for integration tests and backtester noqa annotationsTheSiahxyz
24 hourstest: add integration tests for strategy, order, portfolio, and backtest flowsTheSiahxyz
24 hoursfeat(cli): implement backtest, strategy, portfolio, and data commandsTheSiahxyz
24 hoursfix: clean up backtester strategy loading and update DockerfilesTheSiahxyz
24 hoursfix: resolve critical deployment blockersTheSiahxyz
- Add Alembic initial migration (6 tables: candles, signals, orders, trades, positions, portfolio_snapshots) - Expose health ports (8080-8083) in docker-compose with healthchecks - Add numpy dependency to strategy-engine pyproject.toml
25 hoursdocs: add comprehensive TODO with remaining work and prioritiesTheSiahxyz
Categorized into Critical (deployment blockers), High/Medium/Low priority items with estimated effort and quick start guide.
25 hoursfix: resolve lint issues and final integration fixesTheSiahxyz
- 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
25 hoursfeat(backtester): integrate detailed metrics and rich reporterTheSiahxyz
- Add timestamp field to SimulatedTrade, pass candle.open_time from engine - Engine now builds TradeRecord list and computes DetailedMetrics - Reporter uses rich tables for summary and monthly returns display - Add export_csv() and export_json() functions - Update reporter tests for rich output and export functions
25 hoursfeat(backtester): add detailed metrics (Sharpe, Sortino, drawdown)TheSiahxyz
Add metrics.py with TradeRecord/DetailedMetrics dataclasses and compute_detailed_metrics() that pairs BUY/SELL trades FIFO, computes win/loss stats, profit factor, equity curve, max drawdown, Sharpe, Sortino, Calmar ratios, and monthly returns.
25 hoursfeat(strategy): add Volume Profile strategyTheSiahxyz
25 hoursfeat(strategy): add Bollinger Bands strategyTheSiahxyz
25 hoursfeat(strategy): add VWAP strategyTheSiahxyz
25 hoursfeat(strategy): add MACD strategyTheSiahxyz
25 hoursfeat(strategy): add EMA Crossover strategyTheSiahxyz
25 hoursfeat(strategy): add warmup_period to BaseStrategy and YAML config loadingTheSiahxyz
25 hoursfeat(services): integrate structlog, healthcheck, metrics, and TelegramTheSiahxyz
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().
25 hoursfeat(shared): add health checks and Prometheus metricsTheSiahxyz
25 hoursfeat(shared): add Telegram notification serviceTheSiahxyz
25 hoursfeat(shared): add retry with backoff and circuit breakerTheSiahxyz
25 hoursfeat(shared): add structlog-based structured loggingTheSiahxyz
25 hoursfeat: rewrite database layer from asyncpg to SQLAlchemy 2.0 async ORMTheSiahxyz
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().
25 hoursfeat: add SQLAlchemy ORM models and Alembic migration setupTheSiahxyz
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.