交易中的机器学习:理论、模型、实践和算法交易 - 页 15 1...8910111213141516171819202122...3399 新评论 СанСаныч Фоменко 2016.06.15 12:59 #141 Dr.Trader:我使用标准指标作为创建预测器的基础。我自己还在做实验,尝试这个论坛主题的想法。我在过去几周一直在做,现在最好的结果是:(大量的计算,我试图使用D1时间框架以获得更好的速度,然后我将使用更小的时间框架)。1)从mt5导出csv:ohlc,时间,指标,所有的最后10条。我最近开始只从最新的条形图中获取时间,我相信其他条形图的时间是可以计算的,因此不会带来任何新的信息。几百个 "初级 "预测器陆续问世。学习的必要结果是 "1 "或 "0" - 在下一栏中价格的上升或下降。我用之字形的方法并不稳定和复杂,我现在更擅长用接近的价格工作。当我从头开始研究出完整的模型训练算法时,我可能会开始研究人字形和趋势预测的工作。2)在R中,我正在用现有的数据做不同的数学运算--加法、△、最小、最大等等。它已经出来了一千多个预测者。3)很明显,第二步之后的垃圾比需要的多。我是通过关于基本组件的文章http://www.r-bloggers.com/principal-components-regression-pt-2-y-aware-methods/, SanSanych在前面写的方法来筛选的。我不是在教PCR模型本身,暂时定位于预测因子的预筛选功能。srcTable是一个包含预测器的表,最后一列应该是所需的训练结果。pruneSig最好留为-1。结果是,该函数将返回一个列表,其中有来自表中的列名,这些列名带有一些有用的信息。如果没有发现任何有用的东西,则是一个空列表。文章中提到的这种方法意义不大,但事实证明是相当充分的,它能很好地筛除垃圾。另外,结果列表将按相关性排序,从较有用到较不有用。4)如果函数返回空列表--我再次运行第二步,再次在现有数据上生成不同的数学组合,然后第三步筛选出。我必须重复这3-4次。数据量随着每次重复而增长,所以最好以某种方式限制产生的新数据量。我们可以改变这个用于筛选的函数,这样,如果列表是空的,它就会返回一百或两个最佳结果,并只从它们中生成新的预测器。5)接下来,根据这篇文章,我们需要训练主成分模型本身。我有一些问题 - 到目前为止,训练过的模型的最佳r-squared是0.1,这还不够,文章说我至少需要0.95。但我可以在获得的预测器上训练一些其他的R模型,它会给出更好的结果。我对神经元的经验最多,用它进行前沿测试的最佳结果是,误差约为37%。PCE模型应该是更稳定的,不需要重新训练等,但到目前为止,我无法得到任何预测器。祝贺你,感谢你发布的结果。我希望你的这个帖子能得到赞赏--你即使没有解决交易的基本问题,也是毫不 夸张的。其他一切都会随之而来。再次祝贺你,祝你好运 Alexey Burnakov 2016.06.15 14:06 #142 Dr.Trader:我使用标准指标作为创建预测器的基础。我自己还在做实验,尝试这个论坛主题的想法。我在过去几周一直在做,现在最好的结果是:(大量的计算,我试图使用D1时间框架以获得更好的速度,然后我将使用更小的时间框架)。1)从mt5导出csv:ohlc,时间,指标,所有的最后10条。我最近开始只从最新的条形图中获取时间,我相信其他条形图的时间是可以计算的,因此不会带来任何新的信息。几百个 "初级 "预测器陆续问世。学习的必要结果是 "1 "或 "0" - 在下一栏中价格的上升或下降。我用之字形的方法并不稳定和复杂,我现在更擅长用接近的价格工作。当我从头开始研究出完整的模型训练算法时,我可能会开始研究人字形和趋势预测的工作。2)在R中,我正在用现有的数据做不同的数学运算--加法、△、最小、最大等等。它已经出来了一千多个预测者。3)很明显,第二步之后的垃圾比需要的多。我是通过关于基本组件的文章http://www.r-bloggers.com/principal-components-regression-pt-2-y-aware-methods/, SanSanych在前面写的方法来筛选的。我不是在教PCR模型本身,暂时定位于预测因子的预筛选功能。srcTable是一个包含预测器的表,最后一列应该是所需的训练结果。pruneSig最好留为-1。结果是,该函数将返回一个列表,其中有来自表中的列名,这些列名带有一些有用的信息。如果没有发现任何有用的东西,则是一个空列表。文章中提到的这种方法意义不大,但事实证明是相当充分的,它能很好地筛除垃圾。另外,结果列表将按相关性排序,从较有用到较不有用。4)如果函数返回空列表--我再次运行第二步,在现有数据上再次生成不同的数学组合,然后第三步筛选出来。我必须重复这3-4次。数据量随着每次重复而增长,所以最好以某种方式限制产生的新数据量。我们可以改变这个用于筛选的函数,这样,如果列表是空的,它就会返回一百或两个最佳结果,并只从它们中生成新的预测器。5)接下来,根据这篇文章,我们需要训练主要组件模型本身。我有一些问题 - 到目前为止,训练过的模型的最佳r-squared是0.1,这还不够,文章说我至少需要0.95。但我可以在获得的预测器上训练一些其他的R模型,它会给出更好的结果。我对神经元的经验最多,用它进行前沿测试的最佳结果是,误差约为37%。PCE模型应该是更稳定的,不需要重新训练等,但到目前为止,我无法得到任何预测器。如果你在前沿测试中的误差为30%,那么它已经是一个相当有利可图的模型,为MT5制作专家顾问并在策略测试器中进行检查。 继续吧!随着时间的推移,你会变得更好。 Alexey Burnakov 2016.06.15 14:08 #143 Dr.Trader: 我开始看这个课程,它很注重Python中的Pandas框架。第一节课看起来更像是关于框架的教程,而不是关于数据分析的教程。但该教程看起来很充分,没有像许多其他无用的培训中那样典型的 "我是外汇大师,我会让你大开眼界,你会赚到几百万",这让人希望他们会把充分的东西讲到最后。但应该考虑到这个课程是为股票交易设计的,不是为外汇交易设计的,我不知道这两个领域的模型学习过程是否相似。 原则是一样的。交易有一些细微的差别。例如,接近现实的终端不多,可以测试交换(滑移、部分执行、延迟)。但也有这样的。但据我所知,MT5并不属于他们。 [删除] 2016.06.15 15:31 #144 Dr.Trader:我使用标准指标作为创建预测器的基础。 ...2)我在R中用现有的数据做不同的数学运算--加法、三角、最小、最大等。它出来的时候已经有一千多个预测者了。3)很明显,第二步之后的垃圾比需要的多。我使用关于基本组件的文章中描述的方法进行筛选,http://www.r-bloggers.com/principal-components-regression-pt-2-y-aware-methods/, SanSanych在前面写到。...结果是,该函数将返回一个列表,其中有包含一些有用信息的表格中的列名。如果没有发现任何有用的东西,则是一个空列表。文章中提到的这种方法意义不大,但事实证明是相当充分的,它能很好地筛出垃圾。另外,有结果的列表将按相关性排序,从更有用到不太有用。人们不禁感到,这种计算完全是偶然的!预测器只不过是垃圾。他们中间可能有一颗钻石,因为 "生命 "可能从 "汤 "中产生!这就是 "生命"。事实证明,这种方法是一种巧妙的优化计算。当有的时候,不是蛮干,而是更智能的算法。但输入的仍然是同样的垃圾。事实证明,如果我们有这样一台强大的计算机器,可以在一秒钟内完成任何计算,我们就根本不需要任何训练。但与此同时,我们不会看到在接受盈利的TS方面有任何质的变化。可悲的是。 Vladimir Perervenko 2016.06.15 18:13 #145 阿列克谢-沃尔昌斯基。一位同事给我发了一个机器学习课程的链接,你想看一下吗?它是免费的,但由于某种原因,它是用Python语言编写的(()。https://www.udacity.com/course/machine-learning-for-trading--ud501一切都在这里 得到了更好的展示。祝好运 СанСаныч Фоменко 2016.06.15 19:01 #146 安东-兹维列夫。我不禁感觉到,这种计算完全是基于机会的!我想这是一个很好的例子。预测因素都是垃圾。也许在他们中间会有一颗钻石--毕竟,生命可以从 "汤 "中诞生!....这很可悲。你是绝对错误的!你是绝对错误的让我用一个例子来解释。以kodobase为例。里面的一切都很垃圾,或者说里面有一些有价值的东西。最有可能的是,毕竟有这么多人的经验。现在让我们肯定地假设,我们要进行趋势交易。在kodobase中,哪些可用的指标将对趋势交易有用?我们应该从名字上判断还是从直觉上判断?而我们能实际选择多少个来尝试呢?10, 20, 100?我认为100是通过一个测试者的生活,考虑到从组合。但最重要的是,不仅仅是要尝试多少个指标。最主要的是专家顾问在未来是否能发挥作用。而专家顾问在未来只在一种情况下工作--如果它没有被重新训练(不是过度训练)。构建机械交易系统的主要问题是过度训练(overfitting)的问题。有很多人成功地克服了这个问题吗?我认为Dr.Trader 并没有用火炬来建立他的预测器,而是有一些想法--目前,产生这么多预测器的想法并不有趣。有趣的是完全是另一回事。有趣的是你没有注意到什么。在他数以千计的预测器中,Dr.Trader 可以选择那些不会导致专家顾问过度训练(过度拟合)的预测器。他不仅知道如何选择不会导致过度拟合的EA的发展的预测器,而且他还展示了这样做的代码。 [删除] 2016.06.15 20:11 #147 桑桑尼茨-弗门科。你完全错了!让我用一个例子来解释。以kodobase为例。里面的一切都很垃圾,或者说里面有一些有价值的东西。很可能有,毕竟有那么多人的经验。当然是垃圾!那么,把整个kodobase作为预测器......在他数以千计的预测器中,Dr.Trader 可以选择那些不会导致专家顾问过度训练(过度拟合)的预测器。他不仅知道如何选择不会导致过度拟合的EA的发展的预测器,而且他还展示了这样做的代码。而事实证明,在这一大堆垃圾中,没有发现一颗宝石,更不用说钻石了。我告诉你,这是个很好的机会。或者这里有谁能够证实这样那样的指标不是垃圾吗?并用数字说明这一预测因素的相对重要性? Dr. Trader 2016.06.16 04:16 #148 是的,我确实得到了很多随机的行动,我同意。但你不能只拿一个指标来做一个基于它的EA,你会很快走下坡路的。指标并不是100%的垃圾,但仅凭指标并不能提供足够的信息来预测价格走势。但我在研究中发现,将指标结合起来可能会提高它们的预测能力,也就是说,人们真的可以从垃圾中制造出钻石。问题是,有数千种可能的组合,而其中只有几十个是有用的,我不知道哪些指标最初比其他指标更好。到目前为止,这个问题已经像我之前写的那样,通过蛮力和长时间的计算得到了解决。随着时间的推移,我将得到关于哪些指标更经常进入最终预测器的统计数据,我将能够只用它们来工作,一切都会更快。我已经开始根据获得的预测器制作一个专家顾问,结果将在测试器中真正可见。他们说,即使有60%的预测正确的条形图,你仍然会亏损,因为预测正确的条形图比预测错误的条形图所走的距离更短。如果是这样,你应该制作自己的健身函数来训练神经元,以估计不是条形的百分比而是模型的盈利能力。 [删除] 2016.06.16 05:34 #149 Dr.Trader:是的,我确实有很多行动是随机的,我同意。但你不能只拿一个指标来创建一个专家顾问,你会很快用它输掉。指标并不是100%的垃圾,但仅凭指标并不能提供足够的信息来预测价格走势。但我在研究中发现,将指标结合起来可能会提高它们的预测能力,也就是说,人们真的可以从垃圾中获得钻石。问题是,有数千种可能的组合,而其中只有几十种是有用的,我不知道哪些指标最初比其他指标更好。到目前为止,这个问题已经像我之前写的那样,通过蛮力和长时间的计算得到了解决。随着时间的推移,我将形成一些关于更经常进入最终预测者的指标的统计数据,我将能够只用它们来工作,一切都会更快。你想在一个单一的BP 中找到相关关系。你想找到在该BP中必须一直存在 的相互关系。至少可以说,这两种情况(黑体字)似乎很奇怪。机器学习方法已经学会从图片中识别物体(一只狗、一个橙子等)。也就是说,它们已经学会了识别人类或某些种类的动物所能识别的东西。当一个人或一个动物看到一个价格BP时,它不知道任何事情。也就是说,他们无法在他们的NS中进行比较。然而,当一个人同时看几个BP时,他甚至用肉眼看到了相似之处。而这些相似之处,确实已经实现。因此,对物体的认识才是机器学习技术的逻辑重点。首先我们自己意识到这一点,然后我们尝试算法。我想你知道我的意思。曾几何时,欧元兑英镑的隔夜交易是非常酷的(有利可图)。你的国家安全局不会承认它。那些了解夜色陡峭原因的人从中获利。然后他们将算法应用于这些欧元兑英镑的历史片段,以找到它突然变得陡峭的日期。以免用陡峭之前的数据破坏了状态。他们开始调查。而且许多人在这上面赚了不少钱--只要读读论坛就知道了。现在想象一下,GOLD/SILVER现在是很酷的。没有这样的货币对,但你可以交易它。但你把自己限制在一个单一的BP上。而且,寻找不同BP之间的相互联系是合乎逻辑的。在这种情况下,可能会出现黄金/白银这样的配对。而一个星期的间隔,白天或晚上等也起着巨大的作用。人们的行为取决于一天的时间和一周的日期。这是有意识的数据,所以这是你必须挖掘的地方,IMHO。 Alexey Burnakov 2016.06.16 06:45 #150 安东-兹维列夫。你想在一个单一的BP 中找到相关关系。而且你想找到在该BP中必须随时存在 的相互关系。...首先我们自己意识到这一点,然后我们尝试算法。我想你知道我的意思。...但你把自己限制在一个BP上。而且,寻找不同BP之间的相互联系是合乎逻辑的。在这种情况下,你可以得到这些 "金/银"。此外,一个星期的间隔,白天或晚上等也起着巨大的作用。人们的行为取决于一天的时间和一周的日期。这是有意识的数据,所以你必须在那里挖掘,IMHO。到目前为止,我们正试图在同一时间线上找到条件性 "未来 "对 "过去 "的依赖性。但这并不意味着我们不会尝试为一系列的组合做这件事。关于认可。对于橙子,你的推理是适用的。即使是专家也会区分出几个品种的橙色。对于金融BP,你需要区分一个模式--即BP在整个可用的时间区间内的单调行为。是的,有时似乎有什么东西在眼前。但这种知识是非常模糊的,依赖性参数根本就没有精确的定义。在这里,人们不能没有计算机的帮助。虽然我并不是说没有人能够通过眼睛发现成瘾性并对其进行编码。我同意Dr.Trader的观点,试图收集大量的垃圾,然后从中提取有价值的投入。这些输入的价值是通过训练模型和验证来检查的。如果不是噪音,在验证上会有一个加号。这就是机器学习的整个过程。)我已经尝试过这样的原始输入。> names(sampleA) [1] "lag_diff_2" "lag_diff_3" "lag_diff_4" "lag_diff_6" "lag_diff_8" "lag_diff_11" "lag_diff_16" [8] "lag_diff_23" "lag_diff_32" "lag_diff_45" "lag_diff_64" "lag_diff_91" "lag_diff_128" "lag_diff_181" [15] "lag_diff_256" "lag_diff_362" "lag_diff_512" "lag_diff_724" "lag_mean_diff_2" "lag_mean_diff_3" "lag_mean_diff_4" [22] "lag_mean_diff_6" "lag_mean_diff_8" "lag_mean_diff_11" "lag_mean_diff_16" "lag_mean_diff_23" "lag_mean_diff_32" "lag_mean_diff_45" [29] "lag_mean_diff_64" "lag_mean_diff_91" "lag_mean_diff_128" "lag_mean_diff_181" "lag_mean_diff_256" "lag_mean_diff_362" "lag_mean_diff_512"[36] "lag_mean_diff_724" "lag_max_diff_2" "lag_max_diff_3" "lag_max_diff_4" "lag_max_diff_6" "lag_max_diff_8" "lag_max_diff_11" [43] "lag_max_diff_16" "lag_max_diff_23" "lag_max_diff_32" "lag_max_diff_45" "lag_max_diff_64" "lag_max_diff_91" "lag_max_diff_128" [50] "lag_max_diff_181" "lag_max_diff_256" "lag_max_diff_362" "lag_max_diff_512" "lag_max_diff_724" "lag_min_diff_2" "lag_min_diff_3" [57] "lag_min_diff_4" "lag_min_diff_6" "lag_min_diff_8" "lag_min_diff_11" "lag_min_diff_16" "lag_min_diff_23" "lag_min_diff_32" [64] "lag_min_diff_45" "lag_min_diff_64" "lag_min_diff_91" "lag_min_diff_128" "lag_min_diff_181" "lag_min_diff_256" "lag_min_diff_362" [71] "lag_min_diff_512" "lag_min_diff_724" "lag_sd_2" "lag_sd_3" "lag_sd_4" "lag_sd_6" "lag_sd_8" [78] "lag_sd_11" "lag_sd_16" "lag_sd_23" "lag_sd_32" "lag_sd_45" "lag_sd_64" "lag_sd_91" [85] "lag_sd_128" "lag_sd_181" "lag_sd_256" "lag_sd_362" "lag_sd_512" "lag_sd_724" "lag_range_2" [92] "lag_range_3" "lag_range_4" "lag_range_6" "lag_range_8" "lag_range_11" "lag_range_16" "lag_range_23" [99] "lag_range_32" "lag_range_45" "lag_range_64" "lag_range_91" "lag_range_128" "lag_range_181" "lag_range_256" [106] "lag_range_362" "lag_range_512" "lag_range_724" "symbol" "month" "day" "week_day" [113] "hour" "minute" "future_lag_2" "future_lag_3" "future_lag_4" "future_lag_6" "future_lag_8" [120] "future_lag_11" "future_lag_16" "future_lag_23" "future_lag_32" "future_lag_45" "future_lag_64" "future_lag_91" [127] "future_lag_128" "future_lag_181" "future_lag_256" "future_lag_362" "future_lag_512" "future_lag_724"有时间和各种指标来衡量价格变动。然后我把它们也筛了出来。在这里,看看我得到了什么。这是专家顾问的一部分,从R中的训练过的机器中获取信号。选定的条目会在那里显示。顺便说一下,首先是交易开始的时间。就是说,时间很重要!这是对专家顾问从1999.02到2016.06的整个历史进行的测试。这有点歪曲,但机器仍然学习的不是噪音,而是来自指示输入的依赖关系。因此,我们处于有利的一面。至少,我们改善了实验的结果。 附加的文件: StrategyTester.zip 675 kb Machine learning in trading: 1...8910111213141516171819202122...3399 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我使用标准指标作为创建预测器的基础。我自己还在做实验,尝试这个论坛主题的想法。
我在过去几周一直在做,现在最好的结果是:(大量的计算,我试图使用D1时间框架以获得更好的速度,然后我将使用更小的时间框架)。
1)从mt5导出csv:ohlc,时间,指标,所有的最后10条。我最近开始只从最新的条形图中获取时间,我相信其他条形图的时间是可以计算的,因此不会带来任何新的信息。几百个 "初级 "预测器陆续问世。学习的必要结果是 "1 "或 "0" - 在下一栏中价格的上升或下降。我用之字形的方法并不稳定和复杂,我现在更擅长用接近的价格工作。当我从头开始研究出完整的模型训练算法时,我可能会开始研究人字形和趋势预测的工作。
2)在R中,我正在用现有的数据做不同的数学运算--加法、△、最小、最大等等。它已经出来了一千多个预测者。
3)很明显,第二步之后的垃圾比需要的多。我是通过关于基本组件的文章http://www.r-bloggers.com/principal-components-regression-pt-2-y-aware-methods/, SanSanych在前面写的方法来筛选的。我不是在教PCR模型本身,暂时定位于预测因子的预筛选功能。
srcTable是一个包含预测器的表,最后一列应该是所需的训练结果。pruneSig最好留为-1。
结果是,该函数将返回一个列表,其中有来自表中的列名,这些列名带有一些有用的信息。如果没有发现任何有用的东西,则是一个空列表。文章中提到的这种方法意义不大,但事实证明是相当充分的,它能很好地筛除垃圾。另外,结果列表将按相关性排序,从较有用到较不有用。
4)如果函数返回空列表--我再次运行第二步,再次在现有数据上生成不同的数学组合,然后第三步筛选出。我必须重复这3-4次。数据量随着每次重复而增长,所以最好以某种方式限制产生的新数据量。我们可以改变这个用于筛选的函数,这样,如果列表是空的,它就会返回一百或两个最佳结果,并只从它们中生成新的预测器。
5)接下来,根据这篇文章,我们需要训练主成分模型本身。我有一些问题 - 到目前为止,训练过的模型的最佳r-squared是0.1,这还不够,文章说我至少需要0.95。但我可以在获得的预测器上训练一些其他的R模型,它会给出更好的结果。我对神经元的经验最多,用它进行前沿测试的最佳结果是,误差约为37%。PCE模型应该是更稳定的,不需要重新训练等,但到目前为止,我无法得到任何预测器。
祝贺你,感谢你发布的结果。
我希望你的这个帖子能得到赞赏--你即使没有解决交易的基本问题,也是毫不 夸张的。
其他一切都会随之而来。
再次祝贺你,祝你好运
我使用标准指标作为创建预测器的基础。我自己还在做实验,尝试这个论坛主题的想法。
我在过去几周一直在做,现在最好的结果是:(大量的计算,我试图使用D1时间框架以获得更好的速度,然后我将使用更小的时间框架)。
1)从mt5导出csv:ohlc,时间,指标,所有的最后10条。我最近开始只从最新的条形图中获取时间,我相信其他条形图的时间是可以计算的,因此不会带来任何新的信息。几百个 "初级 "预测器陆续问世。学习的必要结果是 "1 "或 "0" - 在下一栏中价格的上升或下降。我用之字形的方法并不稳定和复杂,我现在更擅长用接近的价格工作。当我从头开始研究出完整的模型训练算法时,我可能会开始研究人字形和趋势预测的工作。
2)在R中,我正在用现有的数据做不同的数学运算--加法、△、最小、最大等等。它已经出来了一千多个预测者。
3)很明显,第二步之后的垃圾比需要的多。我是通过关于基本组件的文章http://www.r-bloggers.com/principal-components-regression-pt-2-y-aware-methods/, SanSanych在前面写的方法来筛选的。我不是在教PCR模型本身,暂时定位于预测因子的预筛选功能。
srcTable是一个包含预测器的表,最后一列应该是所需的训练结果。pruneSig最好留为-1。
结果是,该函数将返回一个列表,其中有来自表中的列名,这些列名带有一些有用的信息。如果没有发现任何有用的东西,则是一个空列表。文章中提到的这种方法意义不大,但事实证明是相当充分的,它能很好地筛除垃圾。另外,结果列表将按相关性排序,从较有用到较不有用。
4)如果函数返回空列表--我再次运行第二步,在现有数据上再次生成不同的数学组合,然后第三步筛选出来。我必须重复这3-4次。数据量随着每次重复而增长,所以最好以某种方式限制产生的新数据量。我们可以改变这个用于筛选的函数,这样,如果列表是空的,它就会返回一百或两个最佳结果,并只从它们中生成新的预测器。
5)接下来,根据这篇文章,我们需要训练主要组件模型本身。我有一些问题 - 到目前为止,训练过的模型的最佳r-squared是0.1,这还不够,文章说我至少需要0.95。但我可以在获得的预测器上训练一些其他的R模型,它会给出更好的结果。我对神经元的经验最多,用它进行前沿测试的最佳结果是,误差约为37%。PCE模型应该是更稳定的,不需要重新训练等,但到目前为止,我无法得到任何预测器。
如果你在前沿测试中的误差为30%,那么它已经是一个相当有利可图的模型,为MT5制作专家顾问并在策略测试器中进行检查。
我开始看这个课程,它很注重Python中的Pandas框架。第一节课看起来更像是关于框架的教程,而不是关于数据分析的教程。但该教程看起来很充分,没有像许多其他无用的培训中那样典型的 "我是外汇大师,我会让你大开眼界,你会赚到几百万",这让人希望他们会把充分的东西讲到最后。但应该考虑到这个课程是为股票交易设计的,不是为外汇交易设计的,我不知道这两个领域的模型学习过程是否相似。
我使用标准指标作为创建预测器的基础。
...
2)我在R中用现有的数据做不同的数学运算--加法、三角、最小、最大等。它出来的时候已经有一千多个预测者了。
3)很明显,第二步之后的垃圾比需要的多。我使用关于基本组件的文章中描述的方法进行筛选,http://www.r-bloggers.com/principal-components-regression-pt-2-y-aware-methods/, SanSanych在前面写到。
...
结果是,该函数将返回一个列表,其中有包含一些有用信息的表格中的列名。如果没有发现任何有用的东西,则是一个空列表。文章中提到的这种方法意义不大,但事实证明是相当充分的,它能很好地筛出垃圾。另外,有结果的列表将按相关性排序,从更有用到不太有用。
人们不禁感到,这种计算完全是偶然的!预测器只不过是垃圾。他们中间可能有一颗钻石,因为 "生命 "可能从 "汤 "中产生!这就是 "生命"。
事实证明,这种方法是一种巧妙的优化计算。当有的时候,不是蛮干,而是更智能的算法。但输入的仍然是同样的垃圾。
事实证明,如果我们有这样一台强大的计算机器,可以在一秒钟内完成任何计算,我们就根本不需要任何训练。但与此同时,我们不会看到在接受盈利的TS方面有任何质的变化。可悲的是。
一位同事给我发了一个机器学习课程的链接,你想看一下吗?它是免费的,但由于某种原因,它是用Python语言编写的(()。
https://www.udacity.com/course/machine-learning-for-trading--ud501
一切都在这里 得到了更好的展示。
祝好运
我不禁感觉到,这种计算完全是基于机会的!我想这是一个很好的例子。预测因素都是垃圾。也许在他们中间会有一颗钻石--毕竟,生命可以从 "汤 "中诞生!
....这很可悲。
你是绝对错误的!你是绝对错误的
让我用一个例子来解释。
以kodobase为例。里面的一切都很垃圾,或者说里面有一些有价值的东西。最有可能的是,毕竟有这么多人的经验。
现在让我们肯定地假设,我们要进行趋势交易。在kodobase中,哪些可用的指标将对趋势交易有用?我们应该从名字上判断还是从直觉上判断?而我们能实际选择多少个来尝试呢?10, 20, 100?我认为100是通过一个测试者的生活,考虑到从组合。
但最重要的是,不仅仅是要尝试多少个指标。最主要的是专家顾问在未来是否能发挥作用。而专家顾问在未来只在一种情况下工作--如果它没有被重新训练(不是过度训练)。构建机械交易系统的主要问题是过度训练(overfitting)的问题。有很多人成功地克服了这个问题吗?
我认为Dr.Trader 并没有用火炬来建立他的预测器,而是有一些想法--目前,产生这么多预测器的想法并不有趣。
有趣的是完全是另一回事。
有趣的是你没有注意到什么。
在他数以千计的预测器中,Dr.Trader 可以选择那些不会导致专家顾问过度训练(过度拟合)的预测器。
他不仅知道如何选择不会导致过度拟合的EA的发展的预测器,而且他还展示了这样做的代码。
你完全错了!
让我用一个例子来解释。
以kodobase为例。里面的一切都很垃圾,或者说里面有一些有价值的东西。很可能有,毕竟有那么多人的经验。
当然是垃圾!那么,把整个kodobase作为预测器......
在他数以千计的预测器中,Dr.Trader 可以选择那些不会导致专家顾问过度训练(过度拟合)的预测器。
他不仅知道如何选择不会导致过度拟合的EA的发展的预测器,而且他还展示了这样做的代码。
而事实证明,在这一大堆垃圾中,没有发现一颗宝石,更不用说钻石了。我告诉你,这是个很好的机会。
或者这里有谁能够证实这样那样的指标不是垃圾吗?并用数字说明这一预测因素的相对重要性?
是的,我确实得到了很多随机的行动,我同意。但你不能只拿一个指标来做一个基于它的EA,你会很快走下坡路的。指标并不是100%的垃圾,但仅凭指标并不能提供足够的信息来预测价格走势。但我在研究中发现,将指标结合起来可能会提高它们的预测能力,也就是说,人们真的可以从垃圾中制造出钻石。问题是,有数千种可能的组合,而其中只有几十个是有用的,我不知道哪些指标最初比其他指标更好。到目前为止,这个问题已经像我之前写的那样,通过蛮力和长时间的计算得到了解决。随着时间的推移,我将得到关于哪些指标更经常进入最终预测器的统计数据,我将能够只用它们来工作,一切都会更快。
我已经开始根据获得的预测器制作一个专家顾问,结果将在测试器中真正可见。他们说,即使有60%的预测正确的条形图,你仍然会亏损,因为预测正确的条形图比预测错误的条形图所走的距离更短。如果是这样,你应该制作自己的健身函数来训练神经元,以估计不是条形的百分比而是模型的盈利能力。
是的,我确实有很多行动是随机的,我同意。但你不能只拿一个指标来创建一个专家顾问,你会很快用它输掉。指标并不是100%的垃圾,但仅凭指标并不能提供足够的信息来预测价格走势。但我在研究中发现,将指标结合起来可能会提高它们的预测能力,也就是说,人们真的可以从垃圾中获得钻石。问题是,有数千种可能的组合,而其中只有几十种是有用的,我不知道哪些指标最初比其他指标更好。到目前为止,这个问题已经像我之前写的那样,通过蛮力和长时间的计算得到了解决。随着时间的推移,我将形成一些关于更经常进入最终预测者的指标的统计数据,我将能够只用它们来工作,一切都会更快。
你想在一个单一的BP 中找到相关关系。你想找到在该BP中必须一直存在 的相互关系。
至少可以说,这两种情况(黑体字)似乎很奇怪。
机器学习方法已经学会从图片中识别物体(一只狗、一个橙子等)。也就是说,它们已经学会了识别人类或某些种类的动物所能识别的东西。当一个人或一个动物看到一个价格BP时,它不知道任何事情。也就是说,他们无法在他们的NS中进行比较。然而,当一个人同时看几个BP时,他甚至用肉眼看到了相似之处。而这些相似之处,确实已经实现。因此,对物体的认识才是机器学习技术的逻辑重点。
首先我们自己意识到这一点,然后我们尝试算法。我想你知道我的意思。
曾几何时,欧元兑英镑的隔夜交易是非常酷的(有利可图)。你的国家安全局不会承认它。那些了解夜色陡峭原因的人从中获利。然后他们将算法应用于这些欧元兑英镑的历史片段,以找到它突然变得陡峭的日期。以免用陡峭之前的数据破坏了状态。他们开始调查。而且许多人在这上面赚了不少钱--只要读读论坛就知道了。
现在想象一下,GOLD/SILVER现在是很酷的。没有这样的货币对,但你可以交易它。但你把自己限制在一个单一的BP上。而且,寻找不同BP之间的相互联系是合乎逻辑的。在这种情况下,可能会出现黄金/白银这样的配对。而一个星期的间隔,白天或晚上等也起着巨大的作用。人们的行为取决于一天的时间和一周的日期。这是有意识的数据,所以这是你必须挖掘的地方,IMHO。
你想在一个单一的BP 中找到相关关系。而且你想找到在该BP中必须随时存在 的相互关系。
...
首先我们自己意识到这一点,然后我们尝试算法。我想你知道我的意思。
...
但你把自己限制在一个BP上。而且,寻找不同BP之间的相互联系是合乎逻辑的。在这种情况下,你可以得到这些 "金/银"。此外,一个星期的间隔,白天或晚上等也起着巨大的作用。人们的行为取决于一天的时间和一周的日期。这是有意识的数据,所以你必须在那里挖掘,IMHO。
到目前为止,我们正试图在同一时间线上找到条件性 "未来 "对 "过去 "的依赖性。但这并不意味着我们不会尝试为一系列的组合做这件事。
关于认可。对于橙子,你的推理是适用的。即使是专家也会区分出几个品种的橙色。
对于金融BP,你需要区分一个模式--即BP在整个可用的时间区间内的单调行为。是的,有时似乎有什么东西在眼前。但这种知识是非常模糊的,依赖性参数根本就没有精确的定义。在这里,人们不能没有计算机的帮助。虽然我并不是说没有人能够通过眼睛发现成瘾性并对其进行编码。
我同意Dr.Trader的观点,试图收集大量的垃圾,然后从中提取有价值的投入。这些输入的价值是通过训练模型和验证来检查的。如果不是噪音,在验证上会有一个加号。这就是机器学习的整个过程。)
我已经尝试过这样的原始输入。
> names(sampleA)
[1] "lag_diff_2" "lag_diff_3" "lag_diff_4" "lag_diff_6" "lag_diff_8" "lag_diff_11" "lag_diff_16"
[8] "lag_diff_23" "lag_diff_32" "lag_diff_45" "lag_diff_64" "lag_diff_91" "lag_diff_128" "lag_diff_181"
[15] "lag_diff_256" "lag_diff_362" "lag_diff_512" "lag_diff_724" "lag_mean_diff_2" "lag_mean_diff_3" "lag_mean_diff_4"
[22] "lag_mean_diff_6" "lag_mean_diff_8" "lag_mean_diff_11" "lag_mean_diff_16" "lag_mean_diff_23" "lag_mean_diff_32" "lag_mean_diff_45"
[29] "lag_mean_diff_64" "lag_mean_diff_91" "lag_mean_diff_128" "lag_mean_diff_181" "lag_mean_diff_256" "lag_mean_diff_362" "lag_mean_diff_512"
[36] "lag_mean_diff_724" "lag_max_diff_2" "lag_max_diff_3" "lag_max_diff_4" "lag_max_diff_6" "lag_max_diff_8" "lag_max_diff_11"
[43] "lag_max_diff_16" "lag_max_diff_23" "lag_max_diff_32" "lag_max_diff_45" "lag_max_diff_64" "lag_max_diff_91" "lag_max_diff_128"
[50] "lag_max_diff_181" "lag_max_diff_256" "lag_max_diff_362" "lag_max_diff_512" "lag_max_diff_724" "lag_min_diff_2" "lag_min_diff_3"
[57] "lag_min_diff_4" "lag_min_diff_6" "lag_min_diff_8" "lag_min_diff_11" "lag_min_diff_16" "lag_min_diff_23" "lag_min_diff_32"
[64] "lag_min_diff_45" "lag_min_diff_64" "lag_min_diff_91" "lag_min_diff_128" "lag_min_diff_181" "lag_min_diff_256" "lag_min_diff_362"
[71] "lag_min_diff_512" "lag_min_diff_724" "lag_sd_2" "lag_sd_3" "lag_sd_4" "lag_sd_6" "lag_sd_8"
[78] "lag_sd_11" "lag_sd_16" "lag_sd_23" "lag_sd_32" "lag_sd_45" "lag_sd_64" "lag_sd_91"
[85] "lag_sd_128" "lag_sd_181" "lag_sd_256" "lag_sd_362" "lag_sd_512" "lag_sd_724" "lag_range_2"
[92] "lag_range_3" "lag_range_4" "lag_range_6" "lag_range_8" "lag_range_11" "lag_range_16" "lag_range_23"
[99] "lag_range_32" "lag_range_45" "lag_range_64" "lag_range_91" "lag_range_128" "lag_range_181" "lag_range_256"
[106] "lag_range_362" "lag_range_512" "lag_range_724" "symbol" "month" "day" "week_day"
[113] "hour" "minute" "future_lag_2" "future_lag_3" "future_lag_4" "future_lag_6" "future_lag_8"
[120] "future_lag_11" "future_lag_16" "future_lag_23" "future_lag_32" "future_lag_45" "future_lag_64" "future_lag_91"
[127] "future_lag_128" "future_lag_181" "future_lag_256" "future_lag_362" "future_lag_512" "future_lag_724"
有时间和各种指标来衡量价格变动。然后我把它们也筛了出来。在这里,看看我得到了什么。
这是专家顾问的一部分,从R中的训练过的机器中获取信号。选定的条目会在那里显示。顺便说一下,首先是交易开始的时间。就是说,时间很重要!
这是对专家顾问从1999.02到2016.06的整个历史进行的测试。
这有点歪曲,但机器仍然学习的不是噪音,而是来自指示输入的依赖关系。
因此,我们处于有利的一面。至少,我们改善了实验的结果。