How could I make force selling when using pre-defined signals?
MarkWhatson last edited by MarkWhatson
Hi, I'm using pre-defined buy/sell signals for trading as below snippet, but sometimes I need to dynamically handle some situations to force selling. How can I make it? I'm thinking of adding some conditions on the function 'next' in my strategy which imports bt.strategy, but I'm worried about overriding the 'next' function will make my pre-defined signals ignored.
Here's the snippet how I implemented the signals.
import backtrader.feeds as btfeeds import backtrader as bt class MyDataLoader(btfeeds.PandasData): lines = ('signal','label',) params = ( ('signal', -1), ('label', -1), ) datafields = btfeeds.PandasData.datafields + (['signal','label']) class MyStrategy(bt.Strategy): def __init__(self): self.dataclose = self.datas.close self.label = self.datas.label self.signal = self.datas.signal . . . df['signal'] = pd.Series(predefined_signals, index=df.index) # Create a cerebro entity cerebro = bt.Cerebro() data = MyDataLoader(dataname=df) cerebro.adddata(data) cerebro.addstrategy(MyStrategy)
ab_trader last edited by ab_trader
You may want to share more code if you still want to get an advice. It is not clear how you process your signals in the strategy.
MarkWhatson last edited by
@ab_trader Sorry, I forgot to share my strategy code. What I've done is passing my signal into btfeeds.PandasData.datafields and then, initialize 'self.signal' of MyStrategy from the datafields.
ab_trader last edited by
@MarkWhatson answering your initial question - you need to add conditions for your
next()and then issue corresponding orders in the
next(). This is all I can say based on what was shown here.