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

 

这是查找alym参数的代码,你可以在atcha帖子的链接中找到它。我对第一个帖子进行了一些修正,用一个正常的例子代替了第一个比较不成功的例子。

  arimaModel <- auto.arima(y = ts(DT$value[trainIndexes],frequency=48),
                           seasonal.test = "ocsb",
                           trace=TRUE,
                           stepwise = FALSE,
                           max.q = 48, 
                           max.order = 48+5
                         )

auto.arima函数自己寻找合适的p d q P D Q参数
ts(DT$value[trainIndexes],frequency=48) # 数据被转换为来自预测包的某种格式,主要是指定频率,否则季节性将不被使用
seasonal.test = "OCSB" # 谷歌说它更好,我不确定
stepwise = FALSE #false可以进行更全面的搜索。默认值为true,这意味着搜索可能会卡在局部最小值而停止。
max.q =48 #搜索中q的最大值。默认值==5,对于这个数据是低的。
max.order = 48+5 # max sum p+q+P+Q. 默认值==5,对这个数据来说不够。

这个函数会花很长时间,但最终应该会检索到与我使用的相同的参数,甚至可能找到更好的参数。

我没有等待这个函数来寻找一切,我只是凭直觉选择了正确的参数。数据是有趋势的,所以P=1,P=1。而图中显示盛行期为24和48,所以Q=24,而Q=48/频率=1
我无法再将336期插入arim,它需要第二个季节性,预测包不知道如何做。

已经知道参数p d q P D Q的有马是这样创建的。

Arima(y = ts(DT$value[trainIndexes],frequency=48), order = c(1, 0, 24), seasonal = c(1, 0, 1))

季节性实际上不是(1,0,1),而是(1,0,48),因为Q在某种程度上是由以下因素主导的



桑桑尼茨-弗门科

讨论阿里马而不分析ARCH上的残留物是完全空洞的做法。有一些系列在进行ARCH模拟后有一个静止的残差。但在假设是静止的情况下讨论预测误差并不严重。这种残留物的面性极强。

是的,我同意,只是这个数据是非常循环和简单的,所以阿里马的工作没有问题。如果我把eurusd m30粘贴到相同的代码中,模型不会因为新的数据而陷入急剧的价格跳动。
 
交易员博士

这是查找alym参数的代码,你可以在atcha帖子的链接中找到它。我对第一个帖子进行了一些修正,用一个正常的例子代替了第一个比较不成功的例子。

函数auto.arima自己搜索合适的p d q P D Q参数
ts(DT$value[trainIndexes],frequency=48) # 数据被转换为来自预测包的某种格式,主要是指定频率,否则季节性将不被使用
seasonal.test = "OCSB" # 谷歌说它更好,我不确定
stepwise = FALSE #false可以进行更全面的搜索。默认值为true,这意味着搜索可能会卡在局部最小值而停止。
max.q =48 #搜索中q的最大值。默认值==5,对于这个数据是低的。
max.order = 48+5 # max sum p+q+P+Q. 默认值==5,对这个数据来说不够。

这个函数会花很长时间,但最终应该会检索到与我所用的相同的参数,甚至可能找到更好的参数。

我没有等待这个函数来寻找一切,我只是凭直觉选择了正确的参数。数据是有趋势的,所以P=1,P=1。而图中显示盛行期为24和48,所以Q=24,而Q=48/频率=1
我不能再在arim中插入周期336,为此我需要第二个季节性,套餐预测不能这样做。

已经知道参数p d q P D Q的有马是这样创建的。

季节性实际上不是(1,0,1),而是(1,0,48),因为Q是由频率主导的。



是的,我同意,只是这个数据是非常循环和简单的,所以阿里马的工作没有问题。如果我把eurusd m30粘贴到相同的代码中,模型将不会进入新数据的价格尖峰。
我对这些 "最佳 "p参数不感兴趣,这些参数是回归方程中的系数--拟合后的打印结果。
 
summary(arimaModel)
Series: ts(DT$value[trainIndexes], frequency = period) 
ARIMA(1,0,24)(1,0,1)[48] with non-zero mean 

Coefficients:
         ar1     ma1     ma2     ma3     ma4     ma5     ma6     ma7     ma8     ma9    ma10    ma11    ma12    ma13    ma14    ma15    ma16    ma17    ma18
      0.8531  0.3469  0.3324  0.3512  0.3564  0.3176  0.2676  0.2223  0.1904  0.2015  0.2241  0.2529  0.2424  0.2383  0.2408  0.2507  0.2279  0.1701  0.1418
s.e.  0.0316  0.0350  0.0413  0.0462  0.0506  0.0542  0.0559  0.0554  0.0537  0.0514  0.0494  0.0481  0.0477  0.0469  0.0455  0.0451  0.0448  0.0439  0.0415
        ma19    ma20   ma21     ma22     ma23     ma24    sar1     sma1       mean
      0.0813  0.0525  0.028  -0.0152  -0.0226  -0.0159  0.9899  -0.4300  1816.9447
s.e.  0.0390  0.0358  0.032   0.0280   0.0224   0.0180  0.0015   0.0132   687.9652

sigma^2 estimated as 1442:  log likelihood=-23883.84
AIC=47825.68   AICc=47826.05   BIC=48012.95

Training set error measures:
                     ME     RMSE      MAE         MPE     MAPE      MASE         ACF1
Training set -0.1648644 37.86381 25.64976 -0.07217873 1.573367 0.1610166 0.0002493082
附加的文件:
arimaModel.zip  140 kb
 
交易员博士

这是个奇怪的桌子。

尽管如此。

比较系数值与平均数,除少数情况外,超过10%。由于某些原因,我没有看到通过t的估计,但正面看,这10%意味着。

关于系数估计的空洞假设:系数不显著的概率。超过10%的偏差表示所有这些系数都不显著,也就是说,你没有回归方程。


PS。

通常情况下,那些 显著的 系数会用星号标记。由于系数并不显著,所有其他数字都只是数字而已。

hist(residuals(arimaModel), breaks= 100)


系数不显著的原因是左边的尾巴比右边的尾巴要粗。

有一些测试可以让你定量地发现问题,而不是靠眼睛,并拿起工具来解决这些问题。

结论。

ARIMA模型不适用于所使用的时间序列。

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

在市场上,任何分类器都要重新训练,因为市场不是静止的。如果我们想让它不过度学习,我们就必须在整个历史上教给它NS。否则,总是会出现市场周期发生变化,模型被破坏的情况。唯一明智的做法是在交易过程中进行过度训练或再训练 :) 我们不相信在没有任何干预的情况下,在15年的历史中稳定地提供1000%的月利润的卷轴。

总的来说,我仍然没有看到这种优势--在外汇中过度训练的NM是什么。是在测试样本上没有赚到钱的时候吗? nah nah...不不不...这是关于非平稳性。如果你不知道如何检查它,它就不实际,不现实。


在这里你说得很对,当你不知道这个概念本身时,你怎么能谈论再培训呢????。你说的重新训练的NS是什么意思?让我们各自抛出自己的看法,我先说。

1.NS在新的数据上不能很好地工作。言下之意,它并不一致地分割信号,正确与否并不重要,重要的是将坏事与好事分开的稳定性....。它可以持续排水(模型倒置),但把坏的和好的分开的事实本身就在它的表面。

2.该模型在不到一半的训练区间内表现良好。这种方法的含义是,一个训练有素的模型应该运行50%以上的训练区间。

3.新数据的平衡曲线有急剧的起伏(随机模型在特定的时间段内起作用,由于1-2个大的交易而导致盈利,但总的来说是沉没的。)

而关于分类的问题,我的答案是这样的。

NOT STATIONARY是一个平稳变化的数值,只要有一个柱子关闭,它就开始慢慢飘走。而酒吧在历史上越走越远,这种臭名昭著的STATIONARY价值(某种混乱或虚无缥缈的价值的象征,改变了市场的总体情况)也就越走越远,所以,如果我们教授分类的模型,我们会得到这种价值直接取决于模型的质量。模型越老,其质量水平越低,根据这个非常不固定的变化。我们的目标是建立这样一个模型,它可以工作足够长的时间,你可以从中获得几个点:-)

 
Mihail Marchukajtes:

你说的 "重新培训 "NS是什么意思?

用于训练的数据,特别是在外汇领域,通常是有噪音的,通过训练模型到100%的准确度,我们教它在重现噪音的同时也重现预期的结果。我们需要在NS开始正确预测结果的时候停止训练,但不要开始把正确的答案和噪音一起记住。用我自己的话说。在科学上,https://ru.wikipedia.org/wiki/Переобучение。


https://commons.wikimedia.org/wiki/File:Overfitting.svg

这里有一个很好的说明。两种模式。
第一条(大厅线)以100%的准确率学习了这个数据。通过眼睛,我们可以看到,红色和蓝色空间边界上的许多点都有些偏移(噪音),事实上,这两个空间的边界不应该是一条断线,而是某种平均线。
第一个模型被重新训练。
而有第二个模型(黑线),忽略了噪音,显然从意义上划分了平面。

 
交易员博士

用于训练的数据,特别是在外汇领域,通常是有噪音的,通过训练模型到100%的准确度,我们教它在重现噪音的同时也重现预期的结果。我们需要在NS开始正确预测结果的时候停止训练,但不要开始把正确的答案和噪音一起记住。用我自己的话说。在科学上,https://ru.wikipedia.org/wiki/Переобучение。


https://commons.wikimedia.org/wiki/File:Overfitting.svg

这里有一个相当好的说明。两种模式。
第一条(大厅线)以100%的准确率学习了这个数据。通过眼睛,我们可以看到,红色和蓝色空间边界的许多点都稍微向旁边移动(噪音),事实上,这两个空间的边界不应该是一条断线,而是某种平均线。
第一个模型被重新训练。
而有第二个模型(黑线),忽略了噪音,显然从意义上划分了平面。

有时大脑开始崩溃......关于外汇中的噪音,它不是一个无线电信号,对吗?为什么外汇中会有噪音?如果迈克尔的模型每月进行30-50次交易,每天1-2次,是交易噪音还是什么?不知为何,这个定义在这里并不合适 :)

外汇中的过度学习是关于错误分类的(时间)模式。但外汇中没有其他模式,所以任何模式都会在某种程度上过度训练

p.s. 所以你需要做仪器分类,挑选目前最持久的BP,如上涨的股票或指数。

 

全部 true!!!!但过度训练也有一个数学上的解释......

在用教师训练时,我们试图减少网络在训练集上的误差。而如果我们处理的是实数,这种误差减少可以是无限的。但是,有一个时刻,即使在测试集上,减少误差也会导致模型的退化。由此,我们可以得出以下结论

理论上,每个数据集都有绝对学习,这是误差尺度上的某条线,在这条线上,0.00000000000000000001的模型不被重新训练,0.000000000000009的模型被重新训练,用物理学术语来说,这是一种 "绝对零度"。所有误差在此点右侧的模型都被认为是未学习的,左侧的模型则相应地是过度学习的。让我提醒一下,这只是我个人理解的一个理论。

这是对特定数据集的某种理想模型。

任何人工智能的任务都是尽可能地接近绝对可学性,但不要超越它。IMHO。


这个理论假设它不是一个点,而是一个充分训练和过度训练的模型领域。一个混合区,规模不够大。只是...imagine......为什么?这是我通过观察确定的。

总之,人工智能要做的第一件事是确保它击中那个过渡区。但事情是这样的......

如果你固定地划分样本,那么很可能是过度训练边界的某个特定值(最有可能),如果每次都随机划分样本,那么就是OVER....。transient....IMHO

如果人工智能不能保证来到那个区域,那么它就没有做对。另一件事是,它将停止哪种模式!!!!。

我是通过使用JPrediction得到这一切的。

开始训练同一个文件,考虑到随机抽样,我得到了10个不同的训练结果,最差的是75%,最好的是85%的泛化率(我们现在采用的是优化器的数字,对或错并不重要,现在......作为一个例子....)。因此,我们可以假设,我们有一个在75和85之间的区域,其中包含了无限多的模型变体,一个神经网络。作为一项规则,我选择80-82左右的平均值,然后你可以遇到这样的模型,在OOS上会很弱。因为确定终极多项式并不是一件简单的事情。

这里有一个视频,从35分钟开始看,他在那里谈到了....。

https://www.youtube.com/watch?v=qLBkB4sMztk

001. Вводная лекция - К.В. Воронцов
001. Вводная лекция - К.В. Воронцов
  • 2014.12.22
  • www.youtube.com
Курс "Машинное обучение" является одним из основных курсов Школы, поэтому он является обязательным для всех студентов ШАД. Лектор: Константин Вячеславович Во...
 
Mihail Marchukajtes:

这里是视频,从第35分钟开始看,他谈到了....

https://www.youtube.com/watch?v=qLBkB4sMztk


是的,我以前见过这个人,我会再看一遍的,谢谢)。

如果你不理解它的数学意义,而是真正的意义--外汇中的过度训练NS具有完全不同的意义,而且无法从这种过度训练中逃脱:)这就是为什么要么僵硬的分类和搜索趋势工具,要么永久地重新训练适应性NS,但根据什么标准 - 这是一个创造性的问题。

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

是的,我以前见过那个人,我会再见到他的,谢谢)。

数学上的含义很清楚,但真正的含义--什么是外汇中的过度训练NS有完全不同的含义,而且这种过度训练是无法摆脱的:)这就是我们需要对趋势工具进行严格的分类和搜索,或者是永久性的重新训练的适应性NS的原因,但根据什么标准--这里是一个创造性的问题。


不过,真正的重点是这个。如果在测试部分有一个不好的分叉,分叉是否正确并不重要,重要的是分叉很弱。而模型的工作时间不超过训练间隔的50%,那么这样的模型被认为是过度训练....。IMHO