|
@@ -135,7 +135,8 @@ def test_backtest_runs_fixed_sma_crossover_series():
|
|
|
assert result.trades[0].exit_price == candles[30].open
|
|
assert result.trades[0].exit_price == candles[30].open
|
|
|
assert result.trades[0].margin_used == 10_000
|
|
assert result.trades[0].margin_used == 10_000
|
|
|
assert result.trades[1].margin_used == result.trades[0].ending_equity
|
|
assert result.trades[1].margin_used == result.trades[0].ending_equity
|
|
|
- assert result.ending_equity == result.trades[-1].ending_equity
|
|
|
|
|
|
|
+ assert result.ending_equity == 4_888.888888888889
|
|
|
|
|
+ assert result.total_return == -0.5111111111111112
|
|
|
assert "total_return" in result.to_dict()
|
|
assert "total_return" in result.to_dict()
|
|
|
assert "max_drawdown" in result.to_dict()
|
|
assert "max_drawdown" in result.to_dict()
|
|
|
assert result.win_rate == 0.5
|
|
assert result.win_rate == 0.5
|
|
@@ -148,6 +149,8 @@ def test_backtest_does_not_force_close_open_position_at_series_end():
|
|
|
|
|
|
|
|
assert result.trade_count == 0
|
|
assert result.trade_count == 0
|
|
|
assert result.trades == []
|
|
assert result.trades == []
|
|
|
|
|
+ assert result.ending_equity == 0.0
|
|
|
|
|
+ assert result.total_return == -1.0
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_backtest_tracks_open_trade_drawdown_from_candle_close():
|
|
def test_backtest_tracks_open_trade_drawdown_from_candle_close():
|