From de458fb355422f9379238524c135c670a1d7c462 Mon Sep 17 00:00:00 2001 From: Nuno Brito Date: Wed, 3 Jun 2026 16:56:37 +0100 Subject: [PATCH 1/2] StopTrail is based on the candle high, not close --- backtrader_next/brokers/bbroker.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/backtrader_next/brokers/bbroker.py b/backtrader_next/brokers/bbroker.py index 825cbeb79..09782582e 100644 --- a/backtrader_next/brokers/bbroker.py +++ b/backtrader_next/brokers/bbroker.py @@ -987,7 +987,7 @@ def _try_exec_stop(self, order, popen, phigh, plow, pcreated, pclose): # not (completely) executed and trailing stop if order.alive() and order.exectype == Order.StopTrail: - order.trailadjust(pclose) + order.trailadjust(phigh) def _try_exec_stoplimit(self, order, popen, phigh, plow, pclose, @@ -1035,7 +1035,7 @@ def _try_exec_stoplimit(self, order, # not (completely) executed and trailing stop if order.alive() and order.exectype == Order.StopTrailLimit: - order.trailadjust(pclose) + order.trailadjust(phigh) def _slip_up(self, pmax, price, doslip=True, lim=False): if not doslip: @@ -1234,6 +1234,13 @@ def _process_order_history(self): uhist[0] = uhorder = next(uhorders, None) def next(self): + # Print current datetime from first available data + #try: + # dt = self.cerebro.datas[0].datetime.datetime(0) + # print(f"[Broker.next()] dt={dt}") + #except: + # pass + while self._toactivate: self._toactivate.popleft().activate() From 0e5c740ec8487749f06288f97cc484642762360e Mon Sep 17 00:00:00 2001 From: Nuno Brito Date: Wed, 3 Jun 2026 17:38:31 +0100 Subject: [PATCH 2/2] Removed comments --- backtrader_next/brokers/bbroker.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/backtrader_next/brokers/bbroker.py b/backtrader_next/brokers/bbroker.py index 09782582e..3de6d7264 100644 --- a/backtrader_next/brokers/bbroker.py +++ b/backtrader_next/brokers/bbroker.py @@ -1234,13 +1234,6 @@ def _process_order_history(self): uhist[0] = uhorder = next(uhorders, None) def next(self): - # Print current datetime from first available data - #try: - # dt = self.cerebro.datas[0].datetime.datetime(0) - # print(f"[Broker.next()] dt={dt}") - #except: - # pass - while self._toactivate: self._toactivate.popleft().activate()