mirror of
https://github.com/freqtrade/freqtrade.git
synced 2026-01-20 05:50:36 +00:00
feat: allow in-candle entries
This commit is contained in:
@@ -1386,7 +1386,7 @@ class Backtesting:
|
||||
and (self._position_stacking or len(LocalTrade.bt_trades_open_pp[pair]) == 0)
|
||||
and not PairLocks.is_pair_locked(pair, row[DATE_IDX], trade_dir)
|
||||
):
|
||||
if self.trade_slot_available(LocalTrade.bt_open_open_trade_count_candle):
|
||||
if self.trade_slot_available(LocalTrade.bt_open_open_trade_count):
|
||||
trade = self._enter_trade(pair, row, trade_dir)
|
||||
if trade:
|
||||
self.wallets.update()
|
||||
|
||||
@@ -1773,16 +1773,18 @@ def test_backtest_multi_pair_detail_simplified(
|
||||
if use_detail:
|
||||
# Backtest loop is called once per candle per pair
|
||||
# Exact numbers depend on trade state - but should be around 3_800
|
||||
assert bl_spy.call_count > 2_250
|
||||
assert bl_spy.call_count > 2_170
|
||||
assert bl_spy.call_count < 2_800
|
||||
assert len(evaluate_result_multi(results["results"], "1h", 3)) > 0
|
||||
else:
|
||||
assert bl_spy.call_count < 995
|
||||
assert len(evaluate_result_multi(results["results"], "1h", 3)) == 0
|
||||
|
||||
# Make sure we have parallel trades
|
||||
assert len(evaluate_result_multi(results["results"], "1h", 2)) > 0
|
||||
assert len(evaluate_result_multi(results["results"], "5m", 2)) > 0
|
||||
# make sure we don't have trades with more than configured max_open_trades
|
||||
# This must evaluate on detail timeframe - as we can have entries within the candle.
|
||||
assert len(evaluate_result_multi(results["results"], "1h", 3)) == 0
|
||||
assert len(evaluate_result_multi(results["results"], "5m", 3)) == 0
|
||||
assert len(evaluate_result_multi(results["results"], "1m", 3)) == 0
|
||||
|
||||
@@ -1803,7 +1805,10 @@ def test_backtest_multi_pair_detail_simplified(
|
||||
"end_date": max_date,
|
||||
}
|
||||
results = backtesting.backtest(**backtest_conf)
|
||||
assert len(evaluate_result_multi(results["results"], "1h", 1)) == 0
|
||||
if use_detail:
|
||||
assert len(evaluate_result_multi(results["results"], "1h", 1)) > 0
|
||||
else:
|
||||
assert len(evaluate_result_multi(results["results"], "1h", 1)) == 0
|
||||
assert len(evaluate_result_multi(results["results"], "5m", 1)) == 0
|
||||
assert len(evaluate_result_multi(results["results"], "1m", 1)) == 0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user