Skip to content

Commit 5197b44

Browse files
committed
BUG: Fix AssertionError on for o in self.orders: o.cancel()
Fixes #1005
1 parent 21907e9 commit 5197b44

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

backtesting/backtesting.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -459,8 +459,7 @@ def cancel(self):
459459
elif self is trade._tp_order:
460460
trade._replace(tp_order=None)
461461
else:
462-
# XXX: https://github.com/kernc/backtesting.py/issues/251#issuecomment-835634984 ???
463-
assert False
462+
pass # Order placed by Trade.close()
464463

465464
# Fields getters
466465

backtesting/test/_test.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1040,6 +1040,19 @@ def test_stats_annualized(self):
10401040
self.assertFalse(np.isnan(stats['Return (Ann.) [%]']))
10411041
self.assertEqual(round(stats['Return (Ann.) [%]']), -3)
10421042

1043+
def test_cancel_orders(self):
1044+
class S(Strategy):
1045+
def init(self): pass
1046+
1047+
def next(self):
1048+
self.buy(sl=1, tp=1e3)
1049+
if self.position:
1050+
self.position.close()
1051+
for order in self.orders:
1052+
order.cancel()
1053+
1054+
Backtest(SHORT_DATA, S).run()
1055+
10431056

10441057
if __name__ == '__main__':
10451058
warnings.filterwarnings('error')

0 commit comments

Comments
 (0)