Dynamic Indicators - Backtrader
Fri Jun 11 2021 22:05:51 GMT+0000 (Coordinated Universal Time)
Saved by
@abrocod
import backtrader as bt
class DynamicFn(bt.Indicator):
lines = ('dyn_highest',)
params = dict(fn=None)
def __init__(self):
self._tradeopen = False
# Safeguard for not set function
self._fn = self.p.fn or lambda x, y: x
def tradeopen(self, yesno):
self._tradeopen = yesno
def next(self):
if self._tradeopen:
self.lines.dyn_highest[0] = self._fn(self.data[0], self.dyn_highest[-1])
class MyStrategy(bt.Strategy)
def __init__(self):
self.dyn_highest = DynamicHighest(self.data.high, fn=max)
def notify_trade(self, trade):
self.dyn_highest.tradeopen(trade.isopen)
def next(self):
if self.dyn_highest > X:
print('ABOUT TO DO SOMETHING')
justakj;lakjfd
content_copyCOPY
https://www.backtrader.com/blog/posts/2018-02-06-dynamic-indicator/dynamic-indicator/
Comments