C
hi @Ta-Tum, the parameters of PandasData are programmed as below:
('datetime', 0),
('open', 1),
('high', 2),
('low', 3),
('close', 4),
('volume', 5),
('openinterest', 6),
May be you fit ur dataframe as follow:
df = pd.DataFrame(index = dataframe .index)
df['Open'] = dataframe ['Open'].values
df['High'] = dataframe ['High'].values
df['Low'] = dataframe ['Low'].values
df['Close'] = dataframe ['Close'].values
df['Volume'] = dataframe ['Volume'].values
df['openinterest'] = dataframe ['Signal'].values
Then at class MLSignal:
class MLSignal(bt.SignalStrategy):
def log(self, txt, dt=None):
pass
def __init__(self):
# Keep a reference to the "close" line in the data[0] dataseries
self.dataclose = self.datas[0].close
self.datasignal = self.datas[0].openinterest
def next(self):
self.log(' Close, %.2f' % self.dataclose[0])
self.log(' Signal, %.2f' % self.datasignal[0]
if self.order:
return
if self.action[0] == 1.0:
self.log('BUY CREATE, %.2f' % self.dataclose[0])
self.order = self.buy()
if self.action[0] == 2.0:
self.log('SELL CREATE, %.2f' % self.dataclose[0])
self.order = self.sell()
I think this should pass dataframe data signal into the strategy part.
Hope this helps. I've been looking for this solution for quite long too. ;) Thanks