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

 
阿列克谢-维亚兹米 金。

我有3个类,即树有买入、卖出和等待的信号,现在我正在尝试使用catbust,并将目标简化为一个类。

我对ctree 和cnode 一窍不通,也对一般的OOP一窍不通--我不太擅长编程,所以没有程序员你很难理解类的代码......

这更多的是一个如何建立它们和为什么建立的问题。你也可以在优化器中通过遗传学来分支它们,但它不会看起来像你的。相反,它将类似于一棵被优化的算法树,它们自己变得更加复杂,就像分层一样......当达到最佳状态时,我们将在优化器中筛选出不必要的算法。这只是一个方法,不知道是否有效。

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

是的,这更多是一个如何建造它们以及为什么建造的问题。有可能在优化器中通过遗传学对它们进行分支,但不会像你这样。相反,它将类似于一棵树状的算法,它被优化,并且它们逐层地变得更加复杂,当达到最佳状态时,在优化器中剔除不必要的算法。这只是一个选择,但我不知道它是否能发挥作用。

当你不理解代码的本质时,就很难讨论...

我做过一个关于预测器组轮换的实验--就像我说的那样--有些预测器对分割样本和去根有好处,但却破坏了整个画面。

总的来说,我得到了9组--我按预测器逻辑分解了它们,甚至比单纯的逻辑更概括。获得了512个组的组合,下图显示了结果的分散性,取决于组的组合--对于选择使用的指标 "精度",前几天设置的--没有变化,目标列_100,树4级,只迭代了1000次。

该表显示了所有预测因子的集合结果--1710个单位,以及最大3511个和最小607个结果。


接下来,我做了一个带有惩罚性的计算,即用封锁标志组乘以组合的财务结果,如果该值为零(该组被使用),那么我们为该组固定一个正的结果,但如果该值不为零,则该组被封锁--将结果乘以-1,然后将每个组的值相加。我们的想法是,受阻时受罚较多的组别是总体上最差的组别,在那里当然可以对它们进行排名,以便进一步研究。

以下是指标积累在图表上的样子

当然,曲线的形状取决于组合的算法,因为都有相同数量的零和一,最后的结果仍然是公平的。具体情况如下--在下表中。



该表显示,禁用1、8和9组对改善财务结果有良好的效果。

让我们来看看最佳财务结果的组合



现在说说最差结果的组合



总的来说,估计方法是有效的--最好的结果是3、4、5、7组没有被封锁,而最差的一组被封锁,而情况几乎与最差的情况一样。

结论--这种方法有生命力,可以积极地识别出受消极影响的预测群体。

有两种方法可以进行:要么通过拆分阴性组找到这种不良结果的原因,要么拆分阳性组,并试图找出能带来好结果的神奇预测因素在哪里。另一方面,你可以走两条路......

前十名和最差组合。

我们还得看看另一个目标会发生什么......

这是另一张图表--它清楚地表明:越是好的决定(Proc_All是相对于所有决定(零和一的总和)的好/错决定的delta),利润就越大,特别是如果相对于所有进入的交易(Proc_1_V02)是正确的进入。


 
阿列克谢-维亚兹米 金。

那么,你如何在生产中处理这些预测器以获得信号?

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

那么,你如何在生产过程中处理这些预测因素以获得信号?

我还没有太多的时间进行生产(真正的交易),但我计划对模型进行配对,并从中建立脚手架--下一个阶段,但我还想不出如何使这个过程自动化......

预测器的最终形式是在专家顾问中获得的,所以很容易选择它们来使用。
 
Maxim Dmitrievsky:

好的,祝你好运)如果你建立了Mt和Katbust,请写一篇文章 :)

就在今天,我正在做一些脑力劳动......对算法的修改,山越来越高,山越来越陡......天啊,这一切都值得使用低级语言的麻烦。

最后3个月的trien,其余的一直工作到2018年初,15分钟

我想知道我是否应该做一些监测和放松......尽管我还有很多工作要做。我还犯了一些幼稚的错误,其中一个......数组原来转错了方向(如系列),而且一直在倒置的菲林上训练,担心自己学坏了。

当然,在EA中实现CatBoost模型 的问题还没有解决,一方面可以用C++语言卸载代码,但我完全不懂,另一方面我想把表单数据拿到正确的模型中,为此我需要解释器,我自己写不了......

是的,你有自己的方法--模型对相对较短的距离起作用,但为什么不在历史上尝试真实的条件,即对过去的3个月进行训练,对未来的1个月进行交易,然后将结果拼接起来--你可能会得到有趣的结果,适合应用。

我犯了一个有趣的错误--我忘了在训练样本中把一个不需要训练的目标标记为 "不使用",在评估结果时高兴了好几分钟:)

 
阿列克谢-维亚兹米 金。

如果你不了解代码,就很难讨论...

我做了一个关于预测器组轮换的实验--就像我说的那样--有些预测器对分割样本和去根有好处,但破坏了整个画面。

总的来说,我得到了9组--我按预测器逻辑分解了它们,甚至比单纯的逻辑更概括。获得了512个组的组合,下图显示了取决于组的组合的财务结果的分散性--对于选择使用的指标 "精确性",前几天设置的--没有变化,目标列_100,树4级,只迭代了1000次。

该表显示了所有预测因子的集合结果--1710个单位,以及最大3511个和最小607个结果。


接下来,我做了一个带有惩罚性的计算,即用封锁标志组乘以组合的财务结果,如果该值为零(该组被使用),那么我们为该组固定一个正的结果,但如果该值不为零,则该组被封锁--将结果乘以-1,然后将每个组的数值相加。我们的想法是,受阻时受罚较多的组别是总体上最差的组别,在那里当然可以对它们进行排名,以便进一步研究。

以下是指标积累在图表上的样子

当然,曲线的形状取决于组合的算法,因为都有相同数量的零和一,最后的结果还是公平的。具体情况如下--在下表中。



该表显示,禁用1、8和9组对改善财务结果有良好的效果。

让我们来看看最佳财务结果的组合



现在说说最差结果的组合



总的来说,估计方法是有效的--最好的结果是3、4、5、7组没有被封锁,而最差的一组被封锁,而情况几乎与最差的情况一样。

结论--这种方法有生命力,可以积极地识别出受消极影响的预测群体。

有两种方法可以进行:要么通过拆分阴性组找到这种不良结果的原因,要么拆分阳性组并试图找出好结果的神奇预测因素在哪里。另一方面,你可以走两条路......

前十名和最差组合。

我们还得看看另一个目标会发生什么......

这是另一张图表--它清楚地表明。正确的决定(Proc_All--相对于所有决定(零和一的总和)的正确/错误决定的delta)越多,利润就越大,特别是如果它们是相对于所有条目的正确交易条目(Proc_1_V02)。


这是一个地狱,很容易读懂,但意思却无法理解--文字游戏或比喻是我无法理解的......我加上Maksim对文章的建议 :)

至于将EA连接到Python控制台,我已经提供了我自己的引擎,允许从MQL实时发送和执行Python代码块,甚至在测试器中也能工作。

 
伊万-内格雷什尼

它只是很尖锐,很容易读懂,但却无法掌握其含义--文字游戏或者是一种我无法理解的比喻......我加上Maksim关于文章的建议:)

至于EA与Python控制台的绑定,我已经提出了我自己的引擎,它允许从MQL实时发送和执行Python代码块,甚至在测试器中。

而你说文章--如果我不能表达一个简单的想法,那么这算什么文章......。

问题是,在建立树的过程中,使用了贪婪原则,这阻止了预测者的逻辑联系,最初分为两大组(你明白决策树是如何建立的,对吗?),所以模型在较少的预测者上可能会有更好的结果,既是这个原因,也是因为在同一时间间隔内检查更多的预测者组合,但这个程度较低。

如果我的言语不能揭示眼前的含义,请提出具体问题。

 
阿列克谢-维亚兹米 金。

而你说的文章--如果我不能表达一个简单的想法,这算什么文章......

关键是在构建树的过程中使用了贪婪原则,这就防止了预测者的逻辑联系的出现,最初分为两个大组(你明白决策树是如何构建的,对吗?),所以模型在较少的预测者上可能结果更好,既是这个原因,也是因为在同一时间间隔内检查更多的预测者组合,但这个程度较低。

如果我的口头禅不能揭示你面前的文字的含义,请提出具体问题。

在论坛上粗略地表达思想和发表文章 是不同的体裁。

在这个主题中,已经讨论了多少,但没有用处,没有实际效果。

而讨论这种问题是没有意义的,尤其是像树状结构这样的基本问题。

最好是写文章和/或代码--比较MI模型的有效性,使用的库,测试和监控专家顾问。

 
伊万-内格雷什尼

在论坛上简要表达思想和发表文章 是不同的体裁。

只要看看这个分支,已经讨论了多少,但没有效果,没有实际成果。

而讨论这种问题是没有意义的,尤其是像树状结构这样的基本问题。

最好是写文章和/或代码--比较MI模型的有效性,使用的库,测试和监控专家顾问。

在MOE上有一些文章,那里的一切都有科学依据,但在这里更可能或初学者可以提出问题,或讨论一些可以尝试的想法。一般来说,文章应该在你对自己的行动结果已经有信心的时候写,我离这一点还很远。

 

昨天我写了关于使用不同的预测器组时的不同财务指标,说有时候把所有东西都放在同一堆里是不理性的。在那篇文章中,我使用了一个指标,如利润来选择群体的重要性。今天,考虑到马克西姆的问题,我决定用测试样本看一下模型的结果(以前我只看测试样本),进行同样的操作,结果很失望--组的显著性发生了颠覆性的变化--怎么会呢,我想...当我比较两个样本的结果时,很明显,纯利润的标准并不适合--我必须寻找其他方法来解决这个问题。

所以我有个想法:如果我不贪心,把选择那些总利润高于所有512个模型的平均利润的模型作为一个好结果呢?我决定寻找能做到这一点的最佳指标。方法很简单,我们用一个测试样本来确定指数的平均值,然后检查每个模型的变体--如果它大于平均值,它将是1,如果它小于平均值,它将是0(我是在Excel中做的,中间的计算方法对理解很有帮助),然后我们对测试样本做同样的处理,比较两个样本的结果,从而得到显示该指数是否属于一个组(高于平均值或低于平均值)的统计数据。之后我还看了每个指标在测试样本上的利润,根据高于平均值或低于平均值来划分测试样本,保留平均利润。

我们得到了一个有趣的结果



该表显示,按利润选择(FinRez)给出了两个样本之间最差的匹配百分比,此外,当过滤 "低于平均水平"(数字为 "0 "的那一列)时,该组在测试样本中包含了比测试中显示结果高于平均水平的组更多的盈利模型。如果你仔细想想,这是有道理的,因为训练是基于分类,而不是回归,如果我在策略中设置了止盈,那么止损就是浮动的,即使有相同数量的正确分类信号,也会扭曲结果。如果你看一下其他指标,它们的预测能力要高得多,也就是说,无论是对测试样本还是考试样本,模型的趋势平均来说是一样的。到目前为止,我决定停在指标Proc_1_V01上--它是样本中所有单位的目标正确分类的百分比,这个指标显示了它在例如二维空间(高于/低于平均水平)的关系的保存率非常高--87.3%,在我看来这是非常好的,加上用他的方法对样本进行分割,可以得到大约相同的平均利润,甚至略高于平均水平--1488。那么事实证明,通过这个指标选择模型时,我们有更好的机会获得良好的财务结果,还是我错过了什么?

到目前为止,我已经决定对各组进行审查,考虑的不是FinRez(利润),而是Proc_1_V01,方法不变,结果相当有吸引力


各组的显著性在测试样本上保持其一致性,以及在测试样本上,除了第7组之外,与按指标定义的组的情况相反--财务结果,在下面的表格中提供。



我在这里得出的结论是,最重要的利润绝对值的稳定性,可能更多的是随机的。

我还将添加一个图表,你可以看到利润是如何按样本分布的(相对于测试和考试分别减少到100%)--左边是过滤的指标,右边是采取的,这是如果你将指标Proc_1_V01的平均值增加系数1.25。

这是为了比较--如果我们按收入做选择--密度增加了,但我们也得到了一个胖尾巴,从20%到-15%,这不是很好。

总而言之,我们需要考虑一个能将趋势定义在最佳状态的指标。

但通过结合这两个指标,并在Proc_1_V01中加入盈利百分比的过滤-->20%--因为在少的时候有太多的损失,而<80%是因为极端值往往是偶然的,我们可以得到一个更满意的情况。