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

 
伊万-内格雷什尼

IMHO,你必须先在Python中工作,那里或多或少会有调试,否则会有很多不确定性

是的,看起来dll是32位的,mt5是64位的。

我以后会回来的,现在Python很好。

 
Maxim Dmitrievsky:

我不认为我自己能做到,毕竟我得用Python。

你应该被授予 "为自己制造困难的杰出专家 "的称号!从影片中独家得知:正常的英雄总是反其道而行之。


这就是传说中的拨浪鼓,只需点击几下就能找到你提到的xgboost型号。

我们得到了它的训练样本。

Error matrix for the Extreme Boost model on Df1.num [**train**] (counts):

      Predicted
Actual    0    1 Error
     0 1930   90   4.5
     1   42 2152   1.9

Error matrix for the Extreme Boost model on Df1.num [**train**] (proportions):

      Predicted
Actual    0    1 Error
     0 45.8  2.1   4.5
     1  1.0 51.1   1.9

Overall error: 3.1%, Averaged class error: 3.2%

Rattle timestamp: 2018-05-31 11:21:20 user

对于验证性样本

Error matrix for the Extreme Boost model on Df1.num [validate] (counts):

      Predicted
Actual   0   1 Error
     0 306 119  28.0
     1 111 367  23.2

Error matrix for the Extreme Boost model on Df1.num [validate] (proportions):

      Predicted
Actual    0    1 Error
     0 33.9 13.2  28.0
     1 12.3 40.6  23.2

Overall error: 25.5%, Averaged class error: 25.6%

Rattle timestamp: 2018-05-31 11:22:15 user

用于测试取样。

Error matrix for the Extreme Boost model on Df1.num [test] (counts):

      Predicted
Actual   0   1 Error
     0 314 118  27.3
     1 112 360  23.7

Error matrix for the Extreme Boost model on Df1.num [test] (proportions):

      Predicted
Actual    0    1 Error
     0 34.7 13.1  27.3
     1 12.4 39.8  23.7

Overall error: 25.5%, Averaged class error: 25.5%

Rattle timestamp: 2018-05-31 11:22:50 user


如果你对结果感到满意,你可以看看R中的代码。挑战是这样的。

crs$ada <- xgboost(Long_Short ~ .,
  data              = crs$dataset[crs$train,c(crs$input, crs$target)],
  max_depth         = 6,
  eta               = 0.3, 
  num_parallel_tree = 1, 
  nthread           = 2, 
  nround            = 50,
  metrics           = 'error',
  objective         = 'binary:logistic')


事实上,你可以从rattle中获取所有的R代码,并从MT4/5专家顾问中调用这个函数,在测试器中看到结果。原始的dll,工作很久了,很稳定,很多人都在使用它......

所有这些都是在一个小时内完成的!模型没有问题!

目标和相应的目标预测器存在问题,反之亦然。但要解决这个问题,你需要有一个劳动量极低的工具包来尝试各种变体。


PS。

如果你去拨浪鼓,你可以一键建立树(rPart)、随机森林、SVM、逻辑 回归glm、你最喜欢的神经网络,尽管是最简单的nnet。而对于小吃来说,如果你能制定出目标及其预测因素,就是一个活生生的模型(实现高昂的利润或实现存款甩卖)。


尽快。

既然你已经唤醒了对xgboost的热爱,而且你可以用rattle中可接受的初步计算来喂养这种热爱,这里是给你的文件。

包裹描述 - https://cran.r-project.org/web/packages/xgboost/xgboost.pdf

用Xgboost了解你的数据集 - https://cran.r-project.org/web/packages/xgboost/vignettes/discoverYourData.html

xgboost: eXtreme Gradient Boosting - https://cran.r-project.org/web/packages/xgboost/vignettes/xgboost.pdf

而对于初学者来说,Xgboost的介绍https://cran.r-project.org/web/packages/xgboost/vignettes/xgboostPresentation.html


考虑到你在这里表现出的水平,你对R完全没有问题。


好运。

 
桑桑尼茨-弗门科

谢谢sanSanSanych......只是不明白,拨浪鼓有XGB吗? 有趣的是

总之,我只需要附上这个模型,而不是algleb脚手架,用于RL任务

我不需要研究什么,只需要一个更好的带有正则化和交叉验证的东西......。我不知道R的情况,但以Python为例,交叉验证法 很容易被安装到xgb回退上

然后R没有合适的RL库,所有这些库都在python中,也就是说,我又得把R放在python上......总之,我还没有决定我需要什么 :)

 

我们在谈论树木...

我不知道单杠目标,但当目标实际上是在N个杠后发生的事件(我特别考虑趋势交易,或其他在N个杠或固定时间段后由SL/TP平仓 的情况),并且其结果将被考虑和分类时,重要的是不要注意用或然率表来评估结果,而是注意

1.分类结果在N条窗口中的变化频率

2.按N条规则分组(规则密度)。

在第一种情况下,需要一个指标来估计预测目标的变化频率,如果它很高,那么这个模型是不稳定的,尽管它可以得到很大比例的正确答案。

在第二种情况下,我们需要在每个窗口(N条)应用一个规则一个重复的规则来估计强化和通过模型传播这个规则。

因此,在训练模型质量时有必要改变估计,包括脚手架和其他需要对其结果进行自我分析以进行修正的模型。

你对这些想法有什么看法?

 

我再次确信R不是我的菜:) 语法几乎没有突出显示,代码无法阅读,错误几乎没有突出显示。代码本身和语言不具有美感

这里可以作为你的反驳理由

是的,在python中,你可以用3行而不是5行来训练一个算法,就是这样。在python中的可读性会更好。我不认为MO套餐有什么优势,都是一样的。

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

我再次确信R不是我的菜:) 语法几乎没有突出显示,代码无法阅读,错误几乎没有突出显示。代码本身和语言不具有美感

这里可以作为你的反驳理由

是的,在python中,你可以用3行而不是5行来训练一个算法,就是这样。在python中的可读性会更好。我不认为MO套餐有什么优势,都是一样的。

我正在看一个关于R编程的俄语视频课程 :)这门语言的语法和假设肯定是个地狱,例如,在一个函数中声明一个全局变量 的能力会扭曲代码,特别是当函数被调用超过一次时,之后你会跌跌撞撞地寻找错误,但这不会对编译器产生影响。

我对R的内存使用非常不满--目前187兆字节的csv文件在内存中被分散成1.5G的树状工作(而在Rattle中是7.5G的森林),多线程被实现为独立的进程,不能与共享内存一起工作,所以我不能加载6个处理器核心,只能加载4个,被8G的可用内存所限制。

python是如何处理这种情况的?

 
阿列克谢-维亚兹米 金。

我正在看一个关于R语言编程的俄语视频课程 :)语言在语法和假设方面肯定是最难的,例如,在函数中声明一个全局变量 的可能性会使代码大乱,特别是如果函数被多次调用,那么你会跌跌撞撞地寻找错误,但这不会对编译器产生影响。

我对R的内存使用非常不满--目前187兆字节的csv文件在内存中被分散成1.5G的树状工作(而在Rattle中是7.5G的森林),多线程被实现为独立的进程,不能与共享内存一起工作,所以我不能加载6个处理器核心,只能加载4个,被8G的可用内存所限制。

在这种情况下,python是如何做的?

我没有看过内存,因为我从来没有使用过这么大的文件 :)但我听说R的早期版本在内存方面有一个问题,它的清算

Python在各方面都是比较高级的语言,因为它可用于各种任务。

我不明白关于R情节的可视化也很有趣--与python相比,它是悲惨的,Rstudio IDE也是一个森林怪物,它怎么可能在2018年支持

我已经写了100行代码,但我很困惑,所有的东西都被模糊成一个无法阅读的混乱的语法:)所以如果你想从中得到启发,在vscode或jupyter笔记本中使用python。

更新 树木和森林本身会占用大量的内存,这取决于集合的大小和树木的数量以及它们的深度。例如,我的委员会有20个由50棵树组成的森林和1000个例子的集合,需要~40MB
 

乱写R:不知道、不能和不愿意。

1.与具有解释器优势的编译器语言相比,R语言的代码调试速度和便利性是惊人的。这方面的突出显示非常有限,因为没有什么可突出显示的--代码几乎是立即可操作的。极高容量的代码。编写 "破坏性 "代码很可能是对R本身和软件包的功能缺乏了解的结果。而如果它真的那样发生了,一个好的Mauvais ton要求把它拆成函数,OOP是存在的。

2.所有语言中的全局变量 的使用都应该是谨慎的。在R中,它们的必要性非常值得怀疑,因为函数的参数和函数的返回可以是 "对象",而在R中是任何东西。除此以外,你可以控制变量名称所附着的空间。

2.图形是世界上最好的之一--从最简单的情节到卡通,有几个层次的图形:从原始的到专门的统计空白。

3.不可能与python比较:它们的流行程度大致相当,但python有很多 "外来 "用户,主要是网站开发人员,而R是一个统计系统,是我们的本土系统,加倍的本土,因为MO包含在统计中。如果我们谈论对我们的包,我们应该与其他专业包(SAS......)进行比较,但它们是付费的。

4.R是统计学的算法标准。几乎所有的现代出版物都必然包含R代码。


最后。R是微软的一部分,而python是一个分支,在附近的一个主题上,在编程方面非常熟练的人无法就分布的来源达成一致。对我来说,这就是一个判决。


在编程中,人们经常会选择更方便的东西,而不是有用的、功能性的东西,但冲淡做一个极有问题的选择就不是了。

 
桑桑尼茨-弗门科

SanSanych,那里唯一的发行源是python网站 :)

用于统计和机器学习的扩展IPython和Anaconda。进入俄语opendatascience社区或观看Yandex的视频。他们根本就没有听说过R。那么,什么才算得上是一个标准?试着用python来形成你自己的观点和比较。另外,如你所说,了解python将使你不仅能做统计,而且在必要时能做其他事情。

它也是一种解释性语言,但它完美地高亮显示,并在飞行中检查语法,而不是在运行脚本后才检查,+代码折叠,记事本和一堆其他的好东西

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

我没有看过内存,因为我从来没有使用过这么大的文件 :)但我听说R的早期版本在内存和清理方面有问题

Python在各方面都是比较高级的语言,因为它的用途很广泛。

我不明白关于R情节的可视化也很有趣--与python相比,它是悲惨的,Rstudio IDE也是一个森林怪物,它怎么可能在2018年支持

我写了100多行代码,结果被搞糊涂了,所有的东西都被模糊成一个无法阅读的乱七八糟的不亮的语法:)总之,如果你想从中得到乐趣,请在vscode或jupyter笔记本中使用python。

更新 树木和森林本身会占用大量的内存,这取决于集合的大小和树木的数量以及它们的深度。例如,我的委员会有20个由50棵树组成的森林和1000个例子的集合,需要~40MB

到目前为止,我的感觉是,R是一个很酷的计算器。在主要功能上缺乏俄语帮助让我很难受,因为我在语言学方面的弱点,这对我非常重要。

可视化--有一些困难,对我来说,大尺寸的树木不适合可视化,只有转换为PDF才有帮助,这已经很不错了。