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

 
桑桑尼茨-弗门科

2.请看视频。

对不起,但一个没有受过教育的博士生通常的胡说八道......。

正如他们所说,我买什么,我就卖什么。有人问我一个问题,我给了一个视频,并给出了详细的答案。讲师不是在耍小聪明,他是在大谈统计学习理论。

见。Vapnik V.N.统计学习理论。NY: John Wiley, 1998.

桑桑尼茨-弗门科

1.如果我们从样本中去掉至少一个有信息量的预测因子,则可推广性会明显恶化。


相信我,不幸的是,这证明不了什么。此外,如果预测器的集合是坏的(有很多噪音),那么噪音越多,这种影响就越大。这一点的解释很简单:噪音越多,算法就越容易找到一个 "方便 "的值。

俗话说,品味和颜色......。

桑桑-弗门科

关于你的文件。

1.我没能在你的数据上建立6个分类模型:误差超过50%。如果你愿意,我可以在这里发布结果

谢谢你提供的信息。结果已经很清楚了--完全没有。

桑桑尼茨-弗门科

2.造成这种结果的原因是,你有一组非常差的预测因子--噪音,即与目标变量无关的预测因子。预测器6、7和8有一些预测能力,但非常小。我不与这样的预测者一起工作。 其他的只是噪音。

好吧,好吧,没有噪音,任何傻瓜都能正确分类。噪声是存在的,而且数量不小。这里也有有用的信息。例如,这里是旧的libVMR 3.01 的结果。

/**
* 在样本外的建模质量。

* 真正的积极因素:245
* 真负数:113
* 假阳性率:191
* 假阴性率:73
* 有统计的样本中的总模式:622个
* 样本外的总误差:264
* 归纳能力的敏感性:56.19266055045872%。
* 归纳能力的特异性:60.752688172043015%
* 归纳能力:16.94534872250173%。
* Reshetov的指标:0.1075044213677977

*/

我的意思是,我的概括能力几乎提高了17%。

新人的表现明显更好。

 
阿列克谢-伯纳科夫
使用交叉验证法来挑选成分的数量。在交叉验证上的最佳值,然后在验证集上检查。

出来的结果又不太妙。我本来想取20个组件,因为min(trainwinrate. validate1winrate, validate2winrate)与其他组件数量相比是最大的。而我在前面的测试中会得到~55%的结果,甚至比以前更糟。奇怪的模型出来了--胜率略高于50%(不适合外汇),交叉验证不起作用,预测因素的重要性不能被剔除。我只能把它打印出来,挂在墙上 :)


 
尤里-雷舍托夫

* 真正的积极因素:245

* 真负数:113
* 假阳性率:191
* 假阴性率:73

所以你在test.csv上有57.6%的胜率,对吗?我将尝试我的方法,筛选出预测器并训练神经元,我明天会报告结果。
 
Dr.Trader:

出来的结果又不太妙。我本来想取20个组件,因为min(trainwinrate. validate1winrate, validate2winrate)与其他组件数量相比是最大的。而我在前面的测试中会得到~55%的结果,甚至比以前更糟。奇怪的模型出来了--胜率略高于50%(不适合外汇),交叉验证不起作用,预测因素的重要性不能被剔除。我只能把它打印出来,挂在墙上 :)


如果你没有足够的数据,交叉验证会给出不好的结果。机器学习涉及数以万计的观察。如果交叉验证不好,就意味着模型整体上是不好的。
 

这些是我的大实验的结果。由于风中的一个错误,代码被打断了,我没有完成对所有人物的学习。但目前这对我来说已经足够了。eurusd的结果很好。

我只显示了我发现的最大值,没有指定任何参数。已经有了一个很好的结果。GBM设置的微妙之处有助于。

 

通过提前512分钟预测eurusd,每笔交易可以赚取1.5个点,我说的对吗?而且还考虑到了价差?了解那段时间的最大跌幅也很重要,如果那段时间的跌幅都是200点,那么即使是10点的交易也是没有意义的。为了估计交易,最好使用夏普比率,但我没有在R中看到它,首先我们可以把自己限制在以下因素上:(最终利润)/(所有时间内股权的最大缩水)。

例如,假设我们有一个信号1.该交易员在一年中赚了1000%,但他的最大缩水是50%。同时,信号2在一年内只有600%的利润,但最大的缩水是25%。看起来交易员1更好(就利润而言),但事实上并非如此,他只是冒了两倍的风险。第一个交易员有1000/50=20,第二个有600/25=24。因此,最好是注册第二个信号,如果你想冒50%的存款风险,则要加倍风险。

另外,在你的实验中,评估风险是很重要的。小区间的交易可能更有利可图,因为模型可以及时对价格尖峰做出反应,并在此基础上赚取利润,而不是冒着抓紧止损的风险等待巨大的跌幅。

 
阿列克谢-伯纳科夫

同事们,如果你们有时间,能否在文章下向我提问?https://habrahabr.ru/company/aligntechnology/blog/303750/

因为Habr是沉默的!

Hubr并不沉默--Hubr正在阅读。
非常多的信。
 
Dr.Trader:

通过提前512分钟预测eurusd,每笔交易可以赚取1.5个点,我说的对吗?而且还考虑到了价差?了解那段时间的最大跌幅也很重要,如果那段时间的跌幅都是200点,那么即使是10点的交易也是没有意义的。为了估计交易,最好使用夏普比率,但我没有在R中看到它,首先我们可以使用以下因素:(最终利润)/(所有时间内股权的最大缩水)。

例如,假设我们有一个信号1.该交易员在一年中赚了1000%,但他的最大缩水是50%。同时,信号2在一年内只有600%的利润,但最大的缩水是25%。看起来交易员1更好(就利润而言),但事实上并非如此,他只是冒了两倍的风险。第一个交易员有1000/50=20,第二个有600/25=24。因此,最好是注册第二个信号,如果你想冒50%的存款风险,则要加倍风险。

另外,在你的实验中,评估风险是很重要的。小区间的交易可能更有利可图,因为模型可以及时对价格高峰做出反应,并从中获利,而不是在巨大的跌幅中等待,冒着风险去抓取止损。

是的,1.5点,点差为1。

所有其他指标将被一起评估:我将在mt4上对训练好的模型发布猫头鹰。

不幸的是,我无法在R中计算夏普等,因为我有49个随机样本,这些样本并没有恢复交易的序列。

我们给出了13000次交易的结果,特别是对金牛座的交易。
 
Dr.Trader:
所以你在test.csv上的胜率是57.6%,对吗?我将尝试我的方法,筛选出预测器并训练神经元,明天报告结果。

不是收益,而是对未来价格方向正确预测的数量。分类器对测试样本产生两个数值之一:正数--预计未来价格上涨,负数--预计未来价格下跌。如果它正确地预测了一个测试样本,它将被分配为 "真"。如果它是错的,那就是假的。

概括能力的敏感性:56.19266055045872% - 未来价格增长正确:100% * TP / (TP + FP) = 100% * 245 / (245 + 191) = 100% * 245 / 436 = 56.192660550458715%

概括能力的特异性:60.752688172043015%--正确预测未来价格下降:100%*TN/(TN+FN)=100%*113/(113+73)=100%*113/186=60.75268817204302%

 
尤里-雷舍托夫

不是收益,而是对未来价格方向正确预测的数量。测试样本上的分类器产生两个值中的一个:正值--假设未来价格增长,负值--假设未来价格下降。如果它正确地预测了一个测试样本,它将被分配为 "真"。如果它是错的,那就是假的。

概括能力的敏感性:56.19266055045872% - 未来价格增长正确:100% * TP / (TP + FP) = 100% * 245 / (245 + 191) = 100% * 245 / 436 = 56.192660550458715%

概括能力的特异性:60.752688172043015%--正确预测未来价格下降:100%*TN/(TN+FN)=100%*113/(113+73)=100%*113/186=60.75268817204302%

尤里,对你的数据进行初审。

方法 损失_功能 cv_folds 囊中羞涩 Model_params AUC_cv 准确性_训练 准确性_验证
GBM 伯努利 4 0.4 0.015_|_7_|_70_|_600 0.429659 0.590361 0.50501
GBM 伯努利(Bernoulli) 4 0.6 0.02_|_5_|_110_|_600 0.485727 0.586345 0.51503

两套不同的参数值用于训练。值得注意的是,在交叉验证中,AUC低于柱状图。

总体而言,51.5%的测试准确率是最好的结果。

我甚至不知道你如何绕过60%。