【发布时间】:2020-03-19 20:52:41
【问题描述】:
我正在为我的算法构建一个回测器,如果它是买入或卖出信号,我希望它用 0 或 1 填充新列
生成买入信号:
1-如果两个不同列中的两个单元格超过某个阈值 [ Q5> 7 & Q7>7 ] :
填充新列 ['BuySignal'] = 1
else 在规则一和规则二中不满足的条件填写 BuySignal = 0
2-如果有两个买入信号,但在第一个买入信号之后没有卖出信号,不要用 1 填充 BuySignal,保持为 0(如您在第 6 行中看到的黄色。)我们只能有一个买入信号,直到下一个卖出信号
产生卖出信号:
1-如果只有一个单元格值超过某个阈值 [TCN > 8],则卖出
P.S:如果同时满足买入和卖出条件,我只想将 BuySignal 标记为 1 和 Sell = 0
我期待的是:在第 1 行买入,在第 6 行忽略买入,在第 10 行卖出,在第 13 行再次买入
为您的参考输入数据:https://drive.google.com/file/d/16qqrcvxJuTgd41233RNjwhaNVNREqWWe/view?usp=sharing
【问题讨论】:
-
一般你可以通过使用 df.loc 来实现,例如: df.loc[ (df['Q5'] > 7) & (df['Q7'] > 7) , 'BuySignal '] = 1 这里loc的第一项描述了条件,第二项描述了你要写入的列。
-
我期待的是:在第 1 行买入,在第 6 行忽略买入,在第 10 行卖出,在第 13 行再次买入