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

 
Vizard_
慢慢来。无论采用何种聚类方法。做一次通过。修剪一些意见。再做一次。比较结果。

结果。制定一个进一步行动的方法。否则你会做出 "grails",然后想知道为什么它不能工作))))。


我在考虑做一个总的超标,如果最初有500个,那么最后可能会发现一个好的模型只占到5个。

而这就是我所保留的...

 
Dr.Trader:

如果你以mytarmailS的身份搜索模式,按条形滑动,每个模式都会包含每个条形上的值可以有多少间隔的信息。模式越多--分配给每个bar..................... 的间隔就越小。

滑动窗口数据馈送只是我的数据馈送风格,仅此而已,好还是坏,我不知道,我认为它和其他人的都一样......

但这与我解释的方法没有关系...

这种方法使你能够聚类并提取那些传统MO无法做到的百分之几的有用数据。

你可以安全地将你的预测器送入你的网络,对它们进行分组(每个),并通过我描述的算法运行它们

 
Dr.Trader:

粗略地说,一个有新数据的特定窗口要落入先前发现的任何模式中,它必须落入每个模式中固有的这种验证约束。

这取决于你想教给模型多少东西,如果你想弱化它,不做大量的集群,那么模型头部的数字将被平滑化,你说的那个缺陷 理论上 应该消失......

下面是该模型如何看待一个由50个值组成的价格系列,并将其打包成49个群组

й

代码...

price <- cumsum(rnorm(30000))+1000
plot(price,t="l")

# делаем скользящее окно (50 знач) через матрицу хенкеля
hankel <- function(data, r=50) {
  do.call(cbind,
          lapply(0:(r-1),function(i) { data[(i+1):(length(data)-(r-1-i))]}))}
price <- hankel(price)

# скалирую, центрирую, в общем нормализирую каждую строчку в матрице
price <- t(apply(price,1,function(x){scale(x,center = T,scale = T)}))

# запускаем пакет с кластеризацыей, в дан. случ с кохоненом
# хорошый мануал  
#https://cran.r-project.org/web/packages/SOMbrero/vignettes/doc-numericSOM.html
install.packages("SOMbrero")
library(SOMbrero)

# тренируем модель, с матрицей 7 х7 те 49 кластеров
model <- trainSOM(price, dimension=c(7,7), verbose=T)
plot(model,what="prototypes",type="lines",print.title=T)
 
mytarmailS:

嗯,这取决于你想对模型进行多少训练,如果你训练得很弱,不做很多集群,那么模型头部的形状就会相当平滑,你说的 理论上 的缺点应该消失......

下面是该模型如何看待一个由50个价值组成的价格系列,这些价值被装入49个群组中

代码...

price <- cumsum(rnorm(30000))+1000
plot(price,t="l")

# делаем скользящее окно (50 знач) через матрицу хенкеля
hankel <- function(data, r=50) {
  do.call(cbind,
          lapply(0:(r-1),function(i) { data[(i+1):(length(data)-(r-1-i))]}))}
price <- hankel(price)

# скалирую, центрирую, в общем нормализирую каждую строчку в матрице
price <- t(apply(price,1,function(x){scale(x,center = T,scale = T)}))

# запускаем пакет с кластеризацыей, в дан. случ с кохоненом
# хорошый мануал  
#https://cran.r-project.org/web/packages/SOMbrero/vignettes/doc-numericSOM.html
install.packages("SOMbrero")
library(SOMbrero)

# тренируем модель, с матрицей 7 х7 те 49 кластеров
model <- trainSOM(price, dimension=c(7,7), verbose=T)
plot(model,what="prototypes",type="lines",print.title=T)


沃。很久以前,我也做过同样的事情。科霍宁是有趣的东西。但请记住,把它称为聚类算法是错误的。这是一种卷积算法。然后在得到的二维空间上进行聚类...
 
阿列克谢-伯纳科夫
沃。我也是很久以前就这样做了。科霍宁是个有趣的东西。但请记住,把它称为聚类算法是不正确的。它是一种卷积算法。然后在得到的二维空间上进行聚类...

谢谢你!我不知道这一点。

但有可能将模型退出作为一个集群,不是吗?

head(model$clustering , 100)
  [1]  7  7  7  7  7  7  7  7  6  6  6  5  5  4  4  3  3  2  2  1  1  1  1  1  8 15 15 22 22 29 36
[32] 43 43 43 43 43 43 43 44 44 45 45 45 46 46 46 46 47 47 47 47 48 48 48 49 42 35 35 28 28 21 21
[63] 21 21 21 21 21 21 21 21 21 14 14 14  7  7  7  7  7  7  7  6  5  4  3  3  2  1  1  1  1  1  1
[94]  8  8 15 22 22 29 36
 
mytarmailS:

谢谢你!我不知道这一点。

但你可以把模型的输出作为一个集群,不是吗?

head(model$clustering , 100)
  [1]  7  7  7  7  7  7  7  7  6  6  6  5  5  4  4  3  3  2  2  1  1  1  1  1  8 15 15 22 22 29 36
[32] 43 43 43 43 43 43 43 44 44 45 45 45 46 46 46 46 47 47 47 47 48 48 48 49 42 35 35 28 28 21 21
[63] 21 21 21 21 21 21 21 21 21 14 14 14  7  7  7  7  7  7  7  6  5  4  3  3  2  1  1  1  1  1  1
[94]  8  8 15 22 22 29 36

是的,你当然可以...它本质上是这些细胞中类似载体的聚集。

只是可能是这样的(我自己在工作中也是这样做的,我知道我在说什么)。我有N百万个条目。输入的矢量有几百个之多。我想对其进行分组,但我事先不知道有多少个分组。不是任何算法都能在普通计算机上处理这样一个数据阵列。因此,首先我折叠输入空间,做一个例如50*50的网格。其结果是2500名典型代表的人口...在这样的阵列上,我的电脑拉动agnes(分层聚类)。它建立了一个所有人接近所有人的矩阵。

而事实证明,我把这些2500个聚类成,比如说,10个聚类,而且聚合度量是好的。

 
阿列克谢-伯纳科夫

是的,你当然可以...在这些细胞中基本上有一个类似载体的聚集。

这只是可能的情况(我自己在工作中做过,我知道我在说什么)。我有N百万个条目。输入的矢量有几百个之多。我想对其进行分组,但我事先不知道有多少个分组。不是任何算法都能在普通计算机上处理这样一个数据阵列。因此,首先我折叠输入空间,做一个例如50*50的网格。其结果是2500名典型代表的人口...在这样的阵列上,我的电脑拉动agnes(分层聚类)。它建立了一个所有人与所有人接近的矩阵...

而事实证明,我把这些2500个聚类成,比如说,10个聚类,而且聚合度量是好的。

在手册https://cran.r-project.org/web/packages/SOMbrero/vignettes/doc-numericSOM.html

根据

从产生的SOM中构建超级类

正是你所说的

 

对于那些想知道市场到底是什么的人...

从旧视频到新视频的观看....

https://www.youtube.com/channel/UCsdK6s9i_I0NEMvis6wXhnQ/featured

这似乎并不难,但要对它进行编程?对我来说,这绝对是不可能的......

我建议我们讨论如何为MoD的这种方法进行编码,或者直接进行编码

 

关于R语言和新MetaTrader 5 build 1467的信息。

  • 一个类似于R的统计库的更新版本已经发布。

    MQL5中的统计分布--从R中汲取精华,使之更快。

  • MQL5中的计算比R的计算快3到7倍(即使考虑到那里的函数是用C++实现的)。
  • 一些R函数由于旧的优化/简化方法而出现错误,导致了错误的结果
  • 增加了一个类似于R的图形库的测试版,可以像R一样实现数据的可视化。
  • 增加了方便的ArrayPrint函数,可以像R中那样打印标准数组和结构。


你可以从MetaQuotes-Demo服务器更新到1467。

很多类似于R的新的数学和统计功能将在未来的版本中加入。这将允许在MetaTrader 5中直接进行更多的计算和可视化。
 
只是好奇--你在这里只把价格值和来自价格的不同指标作为预测因素吗?还有人使用真实的成交量和来自成交量的指标吗?