summaryrefslogtreecommitdiff
path: root/services/backtester/tests/test_engine.py
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-04-01 18:25:29 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-04-01 18:25:29 +0900
commit5cee0686e421b1f21484c23e413692616e9e2ffa (patch)
tree0a6343ebeca158d5881c57cb71e9f67800fda535 /services/backtester/tests/test_engine.py
parent7bfdf07dccb09a613f66f63d1513b80f167a3881 (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.py8
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