diff options
| author | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2026-04-01 18:25:29 +0900 |
|---|---|---|
| committer | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2026-04-01 18:25:29 +0900 |
| commit | 5cee0686e421b1f21484c23e413692616e9e2ffa (patch) | |
| tree | 0a6343ebeca158d5881c57cb71e9f67800fda535 /services/backtester/tests/test_engine.py | |
| parent | 7bfdf07dccb09a613f66f63d1513b80f167a3881 (diff) | |
feat(backtester): Phase 1 complete — realistic backtesting engine
- 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
Diffstat (limited to 'services/backtester/tests/test_engine.py')
| -rw-r--r-- | services/backtester/tests/test_engine.py | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/services/backtester/tests/test_engine.py b/services/backtester/tests/test_engine.py index 003e951..743a43b 100644 --- a/services/backtester/tests/test_engine.py +++ b/services/backtester/tests/test_engine.py @@ -44,9 +44,7 @@ def test_backtest_engine_runs_strategy_over_candles(): strategy.on_candle.return_value = None candles = make_candles([50000.0, 51000.0, 52000.0]) - engine = BacktestEngine( - strategy, Decimal("10000"), slippage_pct=0.0, taker_fee_pct=0.0 - ) + engine = BacktestEngine(strategy, Decimal("10000"), slippage_pct=0.0, taker_fee_pct=0.0) result = engine.run(candles) assert strategy.on_candle.call_count == 3 @@ -64,9 +62,7 @@ def test_backtest_engine_executes_signals(): strategy.on_candle.side_effect = [buy_signal, None, sell_signal] candles = make_candles([50000.0, 52000.0, 55000.0]) - engine = BacktestEngine( - strategy, Decimal("10000"), slippage_pct=0.0, taker_fee_pct=0.0 - ) + engine = BacktestEngine(strategy, Decimal("10000"), slippage_pct=0.0, taker_fee_pct=0.0) result = engine.run(candles) assert result.total_trades == 2 |
