library(quantmod)
library(fractaldim)
getSymbols("SPY",src="yahoo", from="2019-01-01")
N <- 10# Predict the last N bars
mainData <- SPY$SPY.Close
colnames(mainData) <- c("data")
endingIndex <- length(mainData$data)-(N+1)
TEST <- mainData[1:endingIndex]
total_error <- 0
error_per_prediction <- matrix(ncol = 1,nrow = 0)
#These are the fractal dimension calculation parameters
#see the fractaldim library reference for more info
method <- "rodogram"
Sm <- as.data.frame(TEST, row.names = NULL)
delta <- c()
# calculate delta between consecutive Sm values to use as guesses
for(j in 2:length(Sm$data)){
delta <- c(delta, (Sm$data[j]-Sm$data[j-1])/Sm$data[j-1])
}
Sm_guesses <- delta
#do 100 predictions of next values in Sm
for(i in 1:N){
#update fractal dimension used as reference
V_Reference <- fd.estimate(Sm$data, method=method)$fd
minDifference = 1000000# check the fractal dimension of Sm plus each different guess and
# choose the value with the least difference with the reference
for(j in 1:length(Sm_guesses)){
new_Sm <- rbind(Sm, Sm_guesses[j]*Sm$data[length(Sm$data)]+Sm$data[length(Sm$data)])
new_V_Reference <- fd.estimate(new_Sm$data, method=method)$fd
if (abs(new_V_Reference - V_Reference) < minDifference ){
Sm_prediction <- Sm$data[length(Sm$data)]+Sm_guesses[j]*Sm$data[length(Sm$data)]
minDifference <- abs(new_V_Reference - V_Reference)
}
}
print(i)
#add prediction to Sm
Sm <- rbind(Sm, Sm_prediction)
}
id <- endingIndex:(endingIndex+N)
pred <- Sm$data[id]
real <- as.data.frame(mainData$data[id], row.names = NULL)
plot(pred, type="l",col=2,ylim = range(pred,real),lty=3)
lines(real,lwd=2)
有一个很好的网站,几乎把整个互联网都存档了。
超级!!!谢谢
在我看来,提前100-200-500天预测这个系列没有什么意义。太多的事情可以发生......急剧改变这个系列和影响其运动的力量。
你能重复这个代码吗(从第三条开始更好,它更稳定),用于提前1-10小时的M1-M15预测?即使是1个小时,也足以打败点差并获得利润。
如果这样做是成功的,那么你就可以采取这种方法来工作。
据我所知,作者并没有透露太多关于算法本身的信息,而是提出了类似的格言。
因此,GenericPred方法使用两个基本规则。
R1:在预测过程中,始终努力保持非线性测量值尽可能的稳定(图3)。
R2:新值必须从一组由概率分布产生的潜在值中选择。
预测工作必须一步一步地进行,因为当前步骤的预测值需要用来确定下一步的有效变化范围。
据我猜测,一开始会选择一些对数的线性成分,然后在每一步对一个非线性成分进行建模,主要标准是系列的一些随机特性的稳定性。一般来说,它是模糊的,但结果是令人印象深刻的。
在我看来,这种方法有点类似于R中的 "先知 "包所使用的方法。
我又仔细看了一下--我发现我有些错了。他们从原始系列中制作了一系列的滑动非线性度量(他们写了分形维度和李亚普诺夫指数)。这个新系列他们认为(基于实际观察)与SB类似。他们在未来用类似蒙特卡洛的方法乘以这个系列,并取一个与初始集最接近的变体。
秘密是将初始系列转化为系列指标的具体转化,更重要的是--反向转化。
总的来说,所有这些看起来都很可疑(首先是结果的表述风格),并没有引起对这个问题进一步研究的欲望。
再仔细看了一下--我发现我有些错了。他们从原始系列中制作了一系列滑动的非线性度量(他们写了分形维度和李亚普诺夫指数)。这个新系列他们认为(基于实际观察)与SB类似。他们在未来用类似于蒙特卡洛的方法对这个系列进行乘法,并取一个与初始集最接近的变体。
秘密是将初始系列转化为系列指标的具体转化,更重要的是--反向转化。
总的来说,所有这些看起来 都很可疑(首先是结果的表述风格),并没有引起对这个问题进一步研究的欲望。
它看起来像一些令人恶心的粪便,套用一句话 )
如果你计算抽筋,它将比上一栏的天真价格预测更糟
秘密仍然是将原始系列转化为一系列度量的那种具体转化,更重要的是,反过来的转化。
有一个密码!
好吧,我们不被允许进入DC和ECN的服务器)我们必须自己做事情。)
即使他们让我们进去,也不会给我们带来什么)在获得价格方面的速度,他们的一些正确性也不会改变本质。但现在的趋势是,价格研究和FA数据估计算法的能力正在增长,不幸的是,后者的速度要慢得多。但趋势是存在的))))。而谁是第一个能够结合结果的人,就会在上面呆上一段时间))))。
2014年的文章。我肯定读过它的俄文译本,或者在一些流行的 "交易员-教师 "的作品中对它的描述。
我依稀记得它归结为这样一个事实:当有一个趋势时,预测是好的;当趋势发生变化时,预测是错误的。他们走得还不够远)
有趣的是,国防部的话题已经降到了DSP和Arim的水平上了
尽管文章的作者甚至不能正确使用Arima或Garch,所以他们没有显示出一条直线。
多写写正弦波之类的东西。代码就在那里!
我不知道文章的作者在写第三部分的代码时出了什么问题,但代码在三个地方 "坏了",锡....
我把它修好了。
同步由honeybunny
国防部的话题已经降到了COC的水平 ......
当你知道的不多时,只有奇迹。