python - 动态更改回溯期
问题描述
我正在尝试动态调整熊猫数据框的回溯期,以对不同长度的股票数据进行回归。作为一个简单的例子,以 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 还是比较陌生,不知道该怎么做。
任何帮助,将不胜感激。谢谢!
解决方案
我实际上已经解决了这个问题,但是解决方案不是很优雅。如果有人有优雅的解决方案,请告诉我。
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
推荐阅读
- java - 我如何在电报中共享音频
- javascript - Produce Object from Array of Two Objects
- java - 从多个通知托盘中点击相同的活动,每个托盘都有不同的数据
- algorithm - 具有两个指定通过点的最短简单路径
- python-3.x - 在类中正确定义变量的问题
- ios - 在 SpriteKit 中编写一个围绕像素精灵创建轮廓的着色器
- maven - 使用来自 maven 的 JavaFX11 构建可执行 JAR
- spring-boot - 在 Spring Boot 中使用 ConfigurationProperties
- c++ - is_invocable_r 忽略返回参数
- for-loop - 有值的列表。如果项目多次存在,增加价值?