【发布时间】:2019-12-22 15:11:45
【问题描述】:
我有两列 - 一个数组中的“关闭”列和一个“信号”列。我想根据“信号”列中的分类数据对“关闭”列中的数据进行计算。如果相同的信号连续出现(忽略 NAN),则什么也不做,仅当索引 n+t 处的“信号”数据与索引 n 处的前面“信号”数据相反时执行计算。
这是一个基本的回测代码,以证明我逻辑上提出的算法的能力。我知道可能需要一个 for 循环才能正确应用,但在尝试应用到数据的特定索引点时不确定如何正确应用。
伪代码
for n in signals:
if signals == 1:
if 'signals' n+t == 1 maintain 'close' at n index point:
when 'signals' n+t == 2
return ['close'(n+t) - 'close'(n)] in 'calculations' at index n+t
这是我希望通过程序化方法获得的输出。
close signals calculations
0 100 NAN NAN
1 105 1 NAN
2 110 NAN NAN
3 107 1 NAN
4 115 NAN NAN
5 120 2 15
感谢您的帮助,如果需要任何说明,请告诉我!
【问题讨论】:
-
为什么
15是calculations(最后一行)? -
120 - 105 = 15 关闭(n+t) - 关闭(n)
-
n和t是什么? -
只是任意的索引点。 n 是 'signals' = 1 的索引点,t 是 'signals' = 2 的索引点,跳过 NAN 和可能出现的任何其他 1。
标签: python pandas loops numpy signals