交易中的机器学习:理论、模型、实践和算法交易 - 页 2630

 
Maxim Dmitrievsky #:
有点创意,你事先不知道。
盈利的TS的交易应该表明一种模式。如果它只使用价格/时间,那么选择/近似似乎是可能的
任何东西都可以被近似,而TS在代码中是一个清晰的逻辑,没有近似。
 
mytarmailS #:
任何事情都可以近似,但TC在代码中是明确的逻辑,没有近似。
我们不知道具体的逻辑,想想看......这不是反编译。这就留下了模糊的,"按照形象和样式"。阿比巴斯培训师
 
Maxim Dmitrievsky #:
我们不知道具体的逻辑,你知道......这不是反编译。这就留下了模糊的,"按着形象和模样"。阿比巴斯培训师

所以,如果你采取两车相交的策略,并且不给建模者一个直接的十字路口的标志。

这是相当好的,我甚至感到惊讶,但这是一个原始的算法...

蓝色代表原始信号,红色代表前缀。

Reference
Prediction   0   1
         0 106   4
         1   1  89
                                          
               Accuracy : 0.975           
                 95% CI : (0.9426, 0.9918)
    No Information Rate : 0.535           
    P-Value [Acc > NIR] : <2 e-16          
                                          
                  Kappa : 0.9496     


而如果你不把它正常化...

Prediction   0   1
         0  96   0
         1   0 104
                                     
               Accuracy : 1          
                 95% CI : (0.9817, 1)
    No Information Rate : 0.52       
    P-Value [Acc > NIR] : < 2.2 e-16  
                                     
                  Kappa : 1          
x <- cumsum(rnorm(10000))

m5 <- TTR::SMA(x,5)
m15 <- TTR::SMA(x,15)

X <- matrix(ncol = 20,nrow = length(x))

for(i in 20:length(x)){
  ii <- (i-19):i
  X[i,] <- m5[ii] - m15[ii]
}


Yn <- (m5>m15)*1
Y <-  as.factor(Yn)

tr <- 50:9800
ts <- 9801:10000

library(randomForest)
rf <- randomForest(Y[tr]~., X[tr,])
pr <- predict(rf ,X[c(tr,ts),])

prN <- as.numeric(as.character(pr))

par(mar=c(2,2,0,0))
layout(1:3, heights = c(10,1,1)) #  Heights of the two rows
      
plot(tail(x,200),t="l",col=8)
lines(tail(m5[c(tr,ts)],200),col=2,lwd=1)
lines(tail(m15[c(tr,ts)],200),col=4,lwd=1)
plot(tail(Yn,200),t="h",col=4,lwd=2)
plot(tail(prN,200),t="h",col=2,lwd=2)


caret::confusionMatrix(predict(rf ,X[ts,]) , Y[ts])
 
mytarmailS #:

所以,如果你采取两车相交的策略,并且不给建模者一个直接的十字路口的标志。

这是相当好的,我甚至感到惊讶,但这是一个原始的算法...

蓝色代表原始信号,红色代表前缀。


而如果你不把它正常化...

所以没关系,我们需要弄清楚如何解析报告,并尝试像你的MAs那样对它们做一个简单的TC,是的。我现在有点忙,但这是一个有趣的话题。
 
mytarmailS #:

所以,如果你采取两车相交的策略,并且不给建模者一个直接的十字路口的标志。

这是相当好的,我甚至感到惊讶,但这是一个原始的算法...

蓝色是原始信号,红色是预测器。


而如果你不把它正常化...

你不可能事先知道MA专家顾问使用的是什么,以及它有哪些周期。或使用任何其他指标。
试着不在MA(X)上训练模型,而是在原始报价(X)上训练,例如在100个柱子上(你不知道黑匣子里的MA的周期,你只能猜测可能使用了多少个柱子)。

那么,Y是你的考官给的。

 
elibrarius #:

你不能事先知道,专家MA在使用什么,什么时期。或使用的任何其他指标。

不要告诉我我能做什么,不能做什么,说 "我不知道你怎么做"。这就更诚实了。

 
elibrarius #:


尝试在原始报价(X)而不是MAhs(X)上训练模型

生的也不坏。

 Reference
Prediction   0   1
         0  72   2
         1   5 121
                                          
               Accuracy : 0.965           
                 95% CI : (0.9292, 0.9858)
    No Information Rate : 0.615           
    P-Value [Acc > NIR] : <2 e-16          
                                          
                  Kappa : 0.9255     
 
mytarmailS #:

生的时候也不赖

这就更有意思了...
 
mytarmailS #:

对生的也不错。

它真的需要MO吗?

 

我的结果。谁能破译它,做得好,我已经忘记了什么是什么。

另一个测试的例子,马和价格的交叉。输入是最后几个柱状的增量,输出是交易方向(1-贝,0-卖)。底层网络的参数:1 密集层与tanh。1个 epoch, batch=32. win - 输入数, per - MA周期, total - 训练样本量。该网络在1个 epoch中进行训练,因此在训练期间没有重复的样本。验证是基于垂直倒置的训练样本(*-1)。该测试在一个单独的独立样本上运行。所有这些都等于总数。在per<=win时,网络显示出很高的准确性,这需要证明,该网络能够寻找隐藏的模式。

对于小型网络(<1000个神经元),在cpu上的计算要比在gpu上快。在批次=8192的情况下,计算需要相同的时间。这个有1个和100个隐藏神经元的测试案例是在同一时间计算的。对于cpu双精度和单精度计数在同一时间,结果是相当的。不同的激活类型计算的时间大致相同,并给出了相当的结果。Win的大小对时间影响不大。在batch=1的情况下,total=10^6计算了18分钟。批量和时间之间的关系是线性的。

样本量的准确性。 批量=1 ,每=100,赢=100。第一列--样本量(总数),2--时间min.sec,3--测试的准确性,4--训练的准确性,5--验证的准确性。
1м 18.49 99.98.7 99.
100k 1.54 98.5 97.3 98.6
10k 0.11 97.8 88.4 98.1
1k 0.01 71.2 62.1 66.5

在输入中添加噪音。总数=10^6,批次=32 ,每=10,赢=10。第一列--来自输入的噪声分数,2--测试的准确性,3--跟踪的准确性,4--验证的准确性。

0.001 99.8 98.1 99.8
0.01 99.6 98.2 99.6
0.1 96.8 96.1 96.8
1 74.9 74.2 75.1

总数=10^6, 批量=32 , 每次=100. 测试精度, 训练精度, 验证精度。

win=150: 99.5 98.7 99.5

win=100:99.6 98.8 99.6

win=90: 98.9 98.2 98.9

win=80: 97.2 96.6 97.2

win=70: 94.8 94.3 94.8

win=60:92.0 91.6 91.9

win=50: 88.6 88.2 88.6

win=20: 74.7 74.4 74.7

权重的图形。1个输入神经元。ma(100)左100个输入,ma(50)右100个输入