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

 
亚历山大_K2

是的!我忘了说了。

状态被认为是一组几乎完全描述粒子特征的数据。也就是说,它是一个数据集,简单地说--样本量,有其特征--峰度、不对称性、非熵等。

也就是说,以R.Feynman的信心,有可能断言,在正确定义了混凝土对的样本量后,在历史上计算了这个样本的这些系数的特征平均值后,有可能预测,在目前有一组特定的参数,在一定的时间间隔内,系统将传递到一个具有其稳定状态参数的状态。

这就是我对这个主题的期望。如果你在确定正确的样本量方面需要帮助,请写信给我,我会尽力帮助。

假设存在一个自回归过程,即当前状态对过去状态的依赖性。

如何正确选择不同滞后期的增量组合以预测系统? 滞后期应该是恒定的还是随时间变化的,如果是这样,如何确定(除了平庸的列举)?

因为如果有这样一个增量组合可以稳健地预测目标,那么你在训练NS时就不应该有任何问题。

 
Maxim Dmitrievsky:

那么这个问题--假设有一个自回归的过程,即现在的状态对过去的状态的依赖性

如何正确选择一组具有不同滞后期的增量以预测系统? 滞后期应该是恒定的还是随时间变化的,如果它们应该变化,如何确定(除了琐碎的枚举)?

这里有一点显然造成了困难。

该数据集在时间上不是本地的。

这是一个关键点!

也就是说,如果我们与时间打交道,我们应该明白,在一个严格定义的时间区间内,我们处理的是一个不同的数据集。这就是绊脚石的基石。试图用相同的特定值样本来工作,我们最终会得到一个随时间变化的 "浮动 "观察窗口。

我通过2种方式来解决这个问题。

1.只用一组特定的刻度线(样本量)工作--对某一特定对来说,它是一劳永逸的。但这个集合的特点是其形成的时间不同,人们无法做出预测

2.专门在一个恒定的时间窗口工作。在这种情况下,相反,我们有一个浮动的蜱虫采样量在其中。如何避免这种困难?答案是输入 "伪状态",即把观察窗口中的数据量填充到所需的样本大小。我是通过强迫在指数 时间范围内工作来做到这一点的。也就是说,我通过指数在一个严格定义的时间窗口中读取数据,而这是否是一个真正到达的刻度并不重要。在这种情况下,就有可能进行 预测。唯一的问题是,我怀疑指数区间是正确的解决方案。费曼用均匀的间隔工作。

如果你选择1种方式--预测问题原则上是无法解决的。

方式2是可以解决的,但没有这样的档案

在这一点上,我被卡住了,到目前为止,我愚蠢地打出了自己的档案。我没有看到其他的方法,唉......

 
亚历山大_K2

2.专门在一个永久的时间窗口工作。相比之下,在这种情况下,我们有一个浮动的样本量在里面。我们如何绕过这个困难呢?答案是引入所谓的 "伪状态",即把观察窗口的数据数量提高到所需的样本量。我是通过强迫在指数时间范围内工作来做到这一点的。也就是说,我通过指数在一个严格定义的时间窗口中读取数据,而这是否是一个真正到达的刻度并不重要。在这种情况下,就有可能进行 预测。唯一的问题是,我怀疑指数区间是正确的解决方案。费曼是用均匀的间隔来工作的。

事实上,就我的理解(应该是),指数区间正是恒定窗口问题的正确解决方案。比方说,训练样本是1000条(ticks),不管怎样。当然,对于滑动窗口,模式会发生变化,需要重新训练NS。但是,如果我们的样本包含一个增量的组合,其滞后性呈指数 增长......我想知道系统总共需要多少个不同的滞后,不仅要走出窗口(比如滞后1500),而且要描述同一窗口的所有可能状态,只是现在在滑动。

也许我太傻了 :D,但这并不难尝试。但问题是何时停止

 
马克西姆-德米特里耶夫斯基

这实际上是指数区间作为恒定窗口问题的解决方案,就我的理解,它是正确的解决方案(应该是)。比方说,训练样本是1000个柱子(ticks),不管怎样。当然,对于滑动窗口,模式会发生变化,需要重新训练NS。但是,如果我们的样本包含一个增量的组合,其滞后性呈指数 增长......我想知道系统总共需要多少个不同的滞后,不仅要走出窗口(比如滞后1500),而且要描述同一窗口的所有可能状态,只是现在在滑动。

也许我太傻了 :D,但这并不难尝试。但问题是何时停止。

而当系统从不稳定状态转为稳定状态时,你必须停止。

例如,如果在某一时刻我们看到非熵的增加(一个趋势已经开始),那么在一定的时间间隔内,非熵将恢复到从历史上计算出来的特征平均值。

如何确定这个过渡时间间隔?好吧,这就是真正的预测,没有骗人的。这就是我对神经网络的期望,我读了这个主题:)

 
亚历山大_K2

而当系统从不稳定状态过渡到稳定状态时,有必要停止。

例如,如果在某一时刻我们看到非熵的增加(一种趋势已经开始),那么在一定的时间间隔后,非熵将恢复到根据历史计算出的特征平均值。

如何确定这个过渡时间间隔?好吧,这就是真正的预测,没有骗人的。这就是我对神经网络的期望,并阅读了这个主题:)

啊,问题是相当微不足道的--以指数增量训练模型,并在预测价格当前价格 之间建立一个价差图,看看与平均值的偏差(残差)是如何分布的。

下周会做的:)只是把inentropy这个词换成了variance这个词。

 
马克西姆-德米特里耶夫斯基

啊,好吧,任务相当琐碎--在指数增量上训练模型,并绘制预测价格当前价格 之间的价差,看看与平均值的偏差(残差)是如何分布的。

将在下周进行 :)

期待它,马克西姆。说真的--我相信它可以做到。只是别忘了打开信号--我将是第一个报名的人。

只有2种东西可以在市场上真正发挥作用--神经网络和理论家。剩下的都是垃圾,弄虚作假,结果是口袋空空。

 
亚历山大_K2

期待它,马克西姆。说真的--我相信它可以做到。只是别忘了打开信号--我将是第一个报名的人。

只有2种东西可以在市场上真正发挥作用--神经网络和理论家。其他都是垃圾,修修补补,结果是口袋空空。

我将向你展示机器人作为一个例子,你可以稍后调整它:D 我一开始会把它作为一个指标来做,以便清晰明了

 

跟进这个问题 -https://www.mql5.com/ru/forum/86386/page643#comment_6472393

交易员博士

发现了另一个有趣的包,用于筛选出预测因素。它被称为FSelector。它提供了大约十几种筛选预测器的方法,包括熵。


筛选预测器的函数random.forest.importance()在一些测试中显示了相当好的结果。不方便的是,在它看来,所有的预测因素至少有一点是重要的。但如果你计算平均重要性,比如说,只取那些重要性高于平均水平的预测因子,你会得到非常好的结果。

library(FSelector)

load("ALL_cod.RData")
trainTable <- Rat_DF1
PREDICTOR_COLUMNS_SEQ <- 1:27
TARGET_COLUMN_ID      <- 29

targetFormula <- as.simple.formula(colnames(trainTable)[PREDICTOR_COLUMNS_SEQ], colnames(trainTable)[TARGET_COLUMN_ID])

rfImportance <- random.forest.importance(targetFormula, trainTable)
colnames(trainTable)[PREDICTOR_COLUMNS_SEQ][rfImportance[[1]] > mean(rfImportance[[1]])]
 
Dr. Trader:

只拿了今年1月左右的eurusd m1,和一个1天的滑动窗口。

从逻辑上讲,如果熵值上升,就应该暂停交易,在低熵值时继续交易。但在这里我们有一个在低熵的趋势,出于某种原因,虽然在平坦的地方更容易交易,但这是不寻常的。

(纠正了所附代码中的这个错别字,如果你已经有时间下载旧代码,请再次下载)

对初始报价进行测试是没有意义的,因为通过眼睛可以看出,这个系列不是静止的。

有趣的是(对我来说不是--我总是用它)是时间序列 log(p/p-1)的图表。

那里面有什么?当然还需要在纵轴上设置刻度。

 
Dr. Trader:

我发现了另一个有趣的包,用于筛选出预测因素。它被称为FSelector。它提供了大约十几种筛选预测器的方法,包括熵。


在CORElearn软件包中也有一套非常有趣的大型救济工具。

在我对这个问题的长期练习中,我没有发现比caret中的预测器选择功能更好的东西,尤其是saf。

但是,除非预测器的预选是在 "必须做 "的基础上对目标变量进行的,否则这一切都不会成功。

让我用两个班级的例子再重复一遍。

  • 预测器的一部分必须与一个类别有关,另一部分与另一个类别有关。预测器的这两部分的交集才是分类误差,这是无法克服的。



PS。

讨论了主要内容,你看到了算法没有老师的缺陷。

这里是与一位老师。

sgpls( x, y, K, eta, scale.x=TRUE,
        eps=1 e-5, denom.eps=1 e-20, zero.eps=1 e-5, maxstep=100,
        br=TRUE, ftype='iden' )
Arguments

x       Matrix of predictors.
y       Vector of class indices.
K       Number of hidden components.
eta     Thresholding parameter. eta should be between 0 and 1.
scale.x Scale predictors by dividing each predictor variable by its sample standard deviation?
eps     An effective zero for change in estimates. Default is 1 e-5.
denom.eps       An effective zero for denominators. Default is 1 e-20.
zero.eps        An effective zero for success probabilities. Default is 1 e-5.
maxstep Maximum number of Newton-Raphson iterations. Default is 100.
br      Apply Firth's bias reduction procedure?
ftype   Type of Firth's bias reduction procedure. Alternatives are "iden" (the approximated version) or "hat" (the original version). Default is "iden".

spls软件包