summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
25 hoursdocs: final TODO — all issues resolved, only future enhancements remainTheSiahxyz
25 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
25 hoursdocs: update TODO — 3 remaining issues identified from deep analysisTheSiahxyz
25 hoursfix: lint cleanup after medium priority tasksTheSiahxyz
25 hoursfeat(broker): add Redis consumer groups for reliable message processingTheSiahxyz
25 hourstest: add CLI command tests and API router testsTheSiahxyz
25 hoursfeat(portfolio): track realized PnL on sell ordersTheSiahxyz
25 hoursfix: lint cleanup after critical and high priority fixesTheSiahxyz
25 hoursfix: WS factory, backtester config, CI docker builds, health port docsTheSiahxyz
25 hoursfix: snapshot delay, env fields, alembic creds, API healthcheck and error ↵TheSiahxyz
handling
26 hoursfix(strategy-engine): process multiple symbols concurrently with asyncio.gatherTheSiahxyz
26 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
26 hoursdocs: mark all tasks completed, update project statusTheSiahxyz
26 hoursfix: lint cleanup for API, combined strategy, and formattingTheSiahxyz
26 hoursfeat(risk): add trailing stop, volatility sizing, and position limitsTheSiahxyz
26 hoursfeat(strategy): add combined strategy with weighted signal votingTheSiahxyz
26 hoursfeat: add FastAPI REST API serviceTheSiahxyz
26 hoursfeat: add multi-exchange support via ccxt factoryTheSiahxyz
26 hoursfeat(security): add bearer token auth for health/metrics endpointsTheSiahxyz
26 hourstest: add Docker Compose E2E test scriptTheSiahxyz
26 hoursfeat(monitoring): add Grafana dashboard provisioningTheSiahxyz
26 hoursci: add Gitea Actions workflow and CI scriptTheSiahxyz
26 hoursfeat(monitoring): add Loki + Promtail for log aggregationTheSiahxyz
26 hoursdocs: update TODO — mark Critical, High, Medium as completedTheSiahxyz
26 hoursfeat(portfolio): add periodic portfolio snapshots and daily Telegram summaryTheSiahxyz
26 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
26 hourstest: add edge case tests for zero volume, empty data, extreme valuesTheSiahxyz
26 hoursfix(shared): add transaction rollback on DB errorsTheSiahxyz
26 hoursfeat(strategy): add parameter validation to all strategiesTheSiahxyz
26 hoursfix: lint fixes for integration tests and backtester noqa annotationsTheSiahxyz
26 hourstest: add integration tests for strategy, order, portfolio, and backtest flowsTheSiahxyz
26 hoursfeat(cli): implement backtest, strategy, portfolio, and data commandsTheSiahxyz
26 hoursfix: clean up backtester strategy loading and update DockerfilesTheSiahxyz
26 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
27 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.
27 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
27 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
27 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.
27 hoursfeat(strategy): add Volume Profile strategyTheSiahxyz
27 hoursfeat(strategy): add Bollinger Bands strategyTheSiahxyz
27 hoursfeat(strategy): add VWAP strategyTheSiahxyz
27 hoursfeat(strategy): add MACD strategyTheSiahxyz
27 hoursfeat(strategy): add EMA Crossover strategyTheSiahxyz
27 hoursfeat(strategy): add warmup_period to BaseStrategy and YAML config loadingTheSiahxyz
27 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().
27 hoursfeat(shared): add health checks and Prometheus metricsTheSiahxyz
27 hoursfeat(shared): add Telegram notification serviceTheSiahxyz
27 hoursfeat(shared): add retry with backoff and circuit breakerTheSiahxyz
27 hoursfeat(shared): add structlog-based structured loggingTheSiahxyz
27 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().