动态更改回溯期

时间:2018-05-24 00:13:03

标签: python pandas

我正在尝试动态调整pandas数据帧的回顾期,以便对不同长度的库存数据运行回归。作为一个简单的例子,需要MA交叉。

date        Prices  Diff    signal

20150101    8.5     -1.5    FALSE
20150101    11.5    0.3     TRUE 
20150102    14.5    4.5     FALSE
20150103    16.67   3.66    FALSE 
20150104    18      2       FALSE
20150105    18.5    0.5     FALSE 
20150106    18.17   -2.17   TRUE 
20150107    17      -3      FALSE

Diff是2个移动平均线之间的差异,信号用真/假识别交叉。数字是任意的,只是例子。每个信号之间可能有10,50,100等行。

现在我想对信号之间存在的任何长度的价格进行回归,所以在第6行我想要价格[-4:],第8行我想要价格[-1:]。

有人可以帮我解决这个问题吗?在每一行向后循环,直到找到最新信号似乎效率低下。我是否应该在信号出现时简单地为变量分配索引值,并使用该变量来定义回顾期?我对Python仍然比较陌生,不知道如何解决这个问题。

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

我实际上已经解决了这个问题,但解决方案并不是很优雅。如果有人有一个优雅的解决方案,请告诉我。

    if diff[-1] > 0 and diff[-2] < 0:
        signal = True
        over_count += 1
        under_count = 0
    elif diff[-1] < 0 and diff[-2] > 0:
        signal = False
        under_count += 1
        over_count = 0
    elif signal:
        over_count += 1
    elif not signal:
        under_count += 1