预描述
我在分析股票价格。

输入
输出
信号是如何变化的?
信号根据扩展和阈值变化。在本例中,阈值是标准差(value=1)。在指数2中,我们出售亚马逊股票,购买特斯拉股票。价差必须超过首次交易开始时的std值。信号值随样本数据的变化而变化。
结果
使用输入获取输出的最简单方法是什么?
访问示例数据:https://gist.github.com/birdalugureren/05ea6995a9f31478599e9c062e9cd452
发布于 2021-01-28 01:33:16
实现这一目标的一种方法是使用相对于standard deviation的spread values值来描述每个信号的函数,从而生成股票动作将转向的点。在此之后,使用费尔向前填充在股票操作中没有变化的空格。
import pandas as pd
import numpy as np
d = {'index': {i:i for i in range(20)},
'spread': {0: 0.4, 1: 0.6, 2: 1.1, 3: 0.8, 4: 1.5, 5: 0.6, 6: -0.01, 7: -1.4,
8: 0.1, 9: 0.4, 10: 1.4, 11: -1.5, 12: -0.4, 13: 0.3, 14: 0.6, 15: 1.2, 16: 0.7,
17: -0.3, 18: -0.8, 19: -1.9}}
df = pd.DataFrame(d)
print(df)
std_dev = 1
func_sig1 = lambda x: 1 if x > std_dev else 0 if x < 0 else np.NAN
func_sig2 = lambda x: 1 if x < -std_dev else 0 if x > 0 else np.NAN
df["Signal-1"] = df["spread"].map(func_sig1).ffill()
df["Signal-2"] = df["spread"].map(func_sig2).ffill()
print(df)df输出
index spread Signal-1 Signal-2
0 0 0.40 NaN 0.0
1 1 0.60 NaN 0.0
2 2 1.10 1.0 0.0
3 3 0.80 1.0 0.0
4 4 1.50 1.0 0.0
5 5 0.60 1.0 0.0
6 6 -0.01 0.0 0.0
7 7 -1.40 0.0 1.0
8 8 0.10 0.0 0.0
9 9 0.40 0.0 0.0
10 10 1.40 1.0 0.0
11 11 -1.50 0.0 1.0
12 12 -0.40 0.0 1.0
13 13 0.30 0.0 0.0
14 14 0.60 0.0 0.0
15 15 1.20 1.0 0.0
16 16 0.70 1.0 0.0
17 17 -0.30 0.0 0.0
18 18 -0.80 0.0 0.0
19 19 -1.90 0.0 1.0https://stackoverflow.com/questions/65519823
复制相似问题