Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 算法检测时间序列中的跳跃_R_Algorithm_Optimization_Finance_Quantitative Finance - Fatal编程技术网

R 算法检测时间序列中的跳跃

R 算法检测时间序列中的跳跃,r,algorithm,optimization,finance,quantitative-finance,R,Algorithm,Optimization,Finance,Quantitative Finance,我有大约50个数据集,包括在30天的时间范围内的所有交易,在5个交易所大约10对。所有成对资产都属于同一资产类别,这意味着它们之间存在着强烈的相关性,并期望具有相似的属性,但规模不同。这种数据的一个例子是 set.seed(1) n <- 1000 dates <- seq(as.POSIXct("2019-08-05 00:00:00", tz="UTC"), as.POSIXct("2019-08-05 23:59:00", tz="UTC"), by="1 min") x &

我有大约50个数据集,包括在30天的时间范围内的所有交易,在5个交易所大约10对。所有成对资产都属于同一资产类别,这意味着它们之间存在着强烈的相关性,并期望具有相似的属性,但规模不同。这种数据的一个例子是

set.seed(1)

n <- 1000
dates <- seq(as.POSIXct("2019-08-05 00:00:00", tz="UTC"), as.POSIXct("2019-08-05 23:59:00", tz="UTC"), by="1 min")
x <- data.frame("t" = sort(sample(dates, 1000)),"p" = cumsum(sample(c(-1, 1), n, TRUE)))
set.seed(1)

n也许从函数
条纹开始
在包中(我维护)。连胜
定义为指定大小的移动,即
被同样大小的反击打断。这个
函数使用的是返回,而不是差异,所以我添加了
100到你的数据

例如:

set.seed(1)
n <- 1000
x <- 100 + cumsum(sample(c(-1, 1), n, TRUE))

plot(x, type = "l")
s <- streaks(x, up = 0.12, down = -0.12)
abline(v = s[, 1])
abline(v = s[, 2])
set.seed(1)

n看一看,这个tweet线程非常有用,请检查一般问题。这是一个比我们在这个网站上处理的更高级别的问题;我建议使用堆栈交换统计信息。也许我的问题描述有缺陷(在这种情况下,我很抱歉,一定会修改描述),但这主要是一个算法问题。我不需要像prophet这样的工具来为我做预测,不幸的是,对于这个特定的问题没有可用的统计解决方案。你能告诉我这个问题的严重程度吗?我会相应地澄清。你的描述不是“有缺陷”,而是不完整的。例如,从左边开始的第二个点表示高,但稍微向右的点表示高。你为什么不选那个?您需要为局部极值定义规则:是否允许算法展望未来?如果两个局部极值紧密地结合在一起(如图表中间的情况)会发生什么?局部极值与周围点的差异有多大?应在什么范围内计算极值点?等等…有效的分数!我会做一个编辑,非常感谢你的努力!这看起来真的很有希望,在我在真实的数据集上测试后,我会看一看并报告。这似乎正是我想要的!而且,我很高兴看到这是对噪音的一种很好的反驳。然而,结果仍然是随机的:(不起作用),(起作用)。我的实际输入数据在不同的尺度上,因此结果并不总是如预期的那样。以下是一些对的当前价格:
0.5;10; 60; 180; 1400; 5200.
我想重新缩放它们,但这会扭曲返回值(从5200到5400的跳变不等于从99跳变到101)。您是否调整了向上/向下参数?它们应该反映基础系列的波动性。我没有将阈值设置得足够低,现在它起作用了。还查看了软件包的其余部分,非常有用且非常棒的文档!再次感谢,您的解决方案为我节省了很多时间
plot(x, type = "l")
s <- streaks(x, up = 0.12, down = -0.05)
s <- s[!is.na(s$state) & s$state == "up", ]
abline(v = s[, 1], col = "green")
abline(v = s[, 2], col = "red")