【发布时间】:2022-01-07 12:35:48
【问题描述】:
我正在使用显示财务数据的 DataFrame。我创建了一个类来轻松测试策略的多种变体。我创建了一个名为“postion”的新列,用于测试条件语句。起初我收到错误“系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。”但设法通过迭代每个项目来解决这个问题。
但是现在“位置”列的所有值都等于零,这对我来说没有意义,因为数据框中有多次出现,我可以看到条件为真。代码如下:
for bar in range(len(self.data)):
if self.data['close'].iloc[bar] > self.data['max_high'].iloc[bar]:
self.data['position'] = 1
elif self.data['close'].iloc[bar] < self.data['max_low'].iloc[bar]:
self.data['position'] = -1
else:
self.data['position'] = 0
这是输出(下图):
提前感谢您的帮助
【问题讨论】:
-
你可能想完全放弃这种方法并研究
.loc.groupby.shift等等,以便在不这样循环的情况下计算这个。 -
self.data['position'] = 0将 整个 列分配给该值 -
感谢大家的帮助,我明白我现在哪里出错了,如何改进执行
标签: python pandas algorithmic-trading trading metatrader5