class SelectWhere(bt.Algo):
def __init__(self, signal):
self.signal = signal
def __call__(self, target):
# get signal on target.now
if target.now in self.signal.index:
sig = self.signal.loc[target.now]
# get indices where true as list
selected = list(sig.index[sig])
# save in temp - this will be used by the weighing algo
target.temp['selected'] = selected
# return True because we want to keep on moving down the stack
return True
Which gives the error:
AttributeError: ‘numpy.bool_’ object has no attribute ‘index’
Which looks like it is relating to the following line:
selected = list(sig.index[sig])
Now I’m just wondering how this is meant to work, as the whole purpose of creating this list is to have a True/False indicator iterated across a data set depending on the rule of the strategy – but such a data type cannot have an index?