交易中的机器学习:理论、模型、实践和算法交易 - 页 10 1...34567891011121314151617...3399 新评论 Dr. Trader 2016.06.06 19:45 #91 阿列克谢-伯纳科夫。 本教程:https://drive.google.com/file/d/0B_Au3ANgcG7CN2tTUHBkdEdpVEU/view?usp=sharing谢谢,看了看这些栏目,原则上我也做过--三角洲、最小、最大、时间等。如何为我创建一个外汇交易模型的方式只会越来越复杂,简单的方式并不能带来稳定的结果。我现在看到的情况是这样的。1) 从MT5卸下数据:OHLC、时间、指标。在这一阶段,我不会添加三角洲。2)将数据加载到R中,通过对初始数据的添加、减去、最小、最大等,向其添加大量的新列。在R中做到这一点比在mt5中更容易。3)以某种方式选择输入数据的子集(按列)。我可以按照Alexey的例子,使用GenSA或者直接使用GA包进行遗传优化。由于我只需要每个输入的二进制结果(开/关),在我看来GA有一个优势,它有一个二进制的操作模式。但我需要尝试比较这两套方案。4)对输入的子集进行分析。这在阿列克谢的例子中也是如此。但我要冒着风险马上在输入的子集上训练模型,并因此使用验证数据错误。只要该模型的学习时间不超过几秒钟。5)回到第2步,增加新的计数输入,执行其他步骤,经历这样的循环,直到结果停止改进。我还对关于主要成分的方法的文章进行了一些实验。文章中的例子有一个细微的差别,即结果可以从输入数据中准确计算出来。在我的案例中,当输入数据明显不足时,这个方法开始使用噪声进行学习。事实证明,如果这种方法只用几个成分就能达到0.95的结果(r-squared)--那么模型中使用的预测因子很可能是正确的。如果即使使用所有成分,r-squared仍低于0.95,该模型在计算中包括了噪音。然而,值得注意的是,随着额外噪声预测器的加入--r-squared一点一点地减少。我认为通过这种方式,你可以将预测器的子集相互比较--如果r-squared更大,那么子集就更好。 СанСаныч Фоменко 2016.06.06 20:18 #92 Dr.Trader: 我还用主成分法的文章做了一些实验。在文章的例子中,有一个细微的差别,即结果可以从输入数据中准确计算出来。在我的案例中,当输入数据明显不足时,这种方法开始使用噪声进行学习。事实证明,如果这种方法只用几个成分就能达到0.95的结果(r-squared)--那么模型中使用的预测因子很可能是正确的。如果即使使用所有成分,r-squared仍低于0.95,该模型在计算中包括了噪音。然而,值得注意的是,随着额外噪声预测器的加入--r-squared一点一点地减少。我认为这是一种将预测器的子集相互比较的方法--如果r-squared更大,那么子集就更好。到目前为止,在预选 与目标变量 "相关 "的预测因子 方面,我们似乎有:Alexey有一些技术,我也有。再来一次也不失为一个好主意。PCA非常有吸引力,因为它广为人知,大量的文献....。然而,请注意,有大量的算法可以计算预测器的 "重要性",但我还没有设法使用它们。但与我的算法相结合,这些标准算法中几乎任何一种都能得到好的结果--误差减少了5-7%。而初始预测器的数量,我认为应该是几十个,有几千个观测值。在统计学中,如果有些东西不够,那么就没有统计。 Alexey Burnakov 2016.06.06 20:39 #93 Dr.Trader:谢谢,看了一下列,原则上我也已经做过了--三角洲、最小、最大、时间等等。不客气。你也可以在我的装备上练习。有一个高质量的实验设计。数据是好的。而在验证上获得一个积极的结果一点也不容易。1) 从MT5卸下数据:OHLC,时间,指标。在这一阶段,我不会添加三角洲。2)将数据加载到R中,通过添加、减去、最小、最大等原始列,为它们添加大量的新列。在R中做到这一点比在mt5中更容易。3)以某种方式选择输入数据的子集(按列)。我可以按照Alexey的例子,使用GenSA或者直接使用GA包进行遗传优化。由于我只需要每个输入的二进制结果(开/关),在我看来GA有一个优势,它有一个二进制的操作模式。但你需要尝试比较这两种套餐。在此,我建议保持两点:首先--输入应该是相对于其平均值而言的所有vdostary。第二,关于列枚举的机制;是的,GA有二进制模式。GenSA没有,但我模拟了二元选择。4)对输入的子集进行分析。这在阿列克谢的例子中也是如此。但我要冒着风险马上在输入的子样本上训练模型,并使用验证数据错误作为结果。只要模型的学习时间不超过几秒钟就可以了。好主意!但请记住,整个过程仍然可能需要很长的时间,因为你通常需要成千上万次的迭代。这个健身函数是最复杂的,因为它计算整个模型。另一方面,我应用了一个所谓的过滤健身函数,这里没有学习本身,但有一个启发式的方法,决定输入对输出有多大的影响,在更广泛的意义上。计算速度可以超过两秒。但不是一个数量级的。对我来说,创建外汇交易模式的方式只会越来越复杂,简单的方式并不能产生一致的结果。目前我是这样看的。到目前为止,我已经放弃了增加新的预测因素和对实验设计的各种小改进。我有一个想法,但我还没有实施。问题是,我们、你和其他人通常会预测交易结束的某个条件,例如提前3小时或当价格达到拿下或停止的水平。而你得到了糟糕的结果。当我在MT4 中输入几个并发的条件来关闭一个交易,这些条件是通过OR操作符来实现的,我设法得到一个积极的OM,甚至在样本之外。所以我在想,我怎么能在R中模拟预测一次交易的结果,同时基于几个条件。例如,如果价格在3小时内达到TP,那么就关闭它。但3小时的参数不应该被硬性设定,因为它应该被优化选择。如果我们还添加一个条件,即如果价格在3小时内为正值,但没有达到TP,我们应该把STOP画到Breakeven。在这种情况下,进入一个位置也是由机器预测的。 这就是心中的任务。 Dr. Trader 2016.06.06 21:25 #94 阿列克谢-伯纳科夫。 所以我在想,我怎么能在R中模拟预测一次交易的结果,同时基于几个条件。例如,如果价格在3小时内达到TP,那么就关闭它。但3小时的参数不应该被硬性设定,因为它应该被优化选择。如果我们还添加一个条件,如果价格在3小时内获胜,但没有达到TP,我们需要将STOP画到Breakeven。从交易EA的经验来看,我不喜欢TP和SL。如果交易系统构建正确,其自身的交易退出将比基于TP和SL的退出更有效。SL和TP的最佳值随时间变化,不存在稳定的恒定值。我们可以找到一些数值,在某一时期可以提高交易系统的效率,但在这种情况下,策略效率会在这一时期之后下降。最好不要移动SL,而是将其保持在 "出错 "的距离,如果价格达到SL,则完全停止交易,以便进行错误分析和交易策略优化。但也有一些聪明的自我优化的EA,使用TP。我理解,我们应该在训练集中已经引入了一个常数TP。例如,在我的案例中,TP训练的结果是0/1--价格在下一栏中增加/减少了。但是,如果价格已经上升并达到了TP水平,那么在条形图结束时,它已经跌破了初始水平--在训练设置中,结果是 "1",而不是 "0"(因为交易将以TP的利润关闭,并且不会有更多的交易到条形图结束)。TP通常很小,小于50点(4位数 的5点)。SL要大几十倍,以防 "一切出错"。fronttest或trade的TP不能被优化,只有在创建训练样本时使用。我见过这样成功的策略,我认为这个方向值得挖掘。 Alexey Burnakov 2016.06.06 22:11 #95 Dr.Trader:根据专家的交易经验,我不喜欢TPs和SLs。如果交易系统构建正确,其自身的交易退出将比基于TP和SL的退出更有效。那么它自己的出口是如何制定的呢?仅仅通过时间?如果你说要在一小时内平仓,但如果在一小时内突破了TP,那么这将是结果1,那么复杂的平仓条件已经被使用。关于5点的TP和几十倍的SL - 作为一种选择,但这样的TP会吃掉利润。 Alexey Burnakov 2016.06.06 23:35 #96 我这周和上周和你在一起,被时区 隔开,所以我没有得到现场拨号。我在加州工作,所以...无论如何,我想我(也许你也是)已经可以很好地计划实验,训练和验证结果。你也可以多余地招募预测者。我认为,囿于固定的目标,比如在一小时内收盘,预测交易并不是最优的,结果也很弱。在MT测试器中,我根据平衡和恢复系数进行优化。在R中,我优化了猜测方向或预测价格差异的准确性。无论你怎么看,这些都是不同的事情。也许可以尝试在R中为学习方法写出自己的损失函数,比如说,利润最大化。这个功能可以在一些学习方法中被替代。 СанСаныч Фоменко 2016.06.07 08:17 #97 阿列克谢-伯纳科夫。我这周和上周和你在一起,被时区隔开,所以我没有得到现场拨号。我在加州工作,所以...无论如何,我想我(也许你也是)已经可以很好地计划实验,训练和验证结果。你也可以多余地招募预测者。我认为,囿于固定的目标,比如在一小时内收盘,预测交易并不是最优的,结果也很弱。在MT测试器中,我根据平衡和恢复系数进行优化。在R中,我优化了猜测方向或预测价格差异的准确性。无论你怎么看,这些都是不同的事情。也许可以尝试在R中为学习方法写出自己的损失函数,比如说,利润最大化。这个功能可以被替换成一些学习方法。最近,我一直在实施以下计划。我实施了我以前的基于趋势指标的EA。它是一个坚实的专家顾问,在真实账户上进行交易。下一步。我寻找它的缺点,并试图用R来改善它们。比如说。我从高杆上把握大方向。然而,如果我仔细看一下时间,特别是在低杠方面有一个巨大的滞后。因此,如果是D1,而我在M5上交易,那么我几乎以前天的数据为方向。即使以30%的误差预测D1的发展一步,也从根本上提高了EA的盈利能力,更重要的是增加了它不会卖掉的信心。这样吧--在R中预测一个现成的,甚至是糟糕的EA的一些元素,以便升级它?你如何找到这样的想法? Alexey Burnakov 2016.06.07 19:47 #98 最近为smart-lab写了一篇文章。一个薄弱的社区,但得到了一些有用的东西。http://smart-lab.ru/search/topics/?q=%D0%B4%D0%BB%D1%8F+%D0%BB%D1%8E%D0%B1%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9+fx Alexey Burnakov 2016.06.07 19:51 #99 SanSanych Fomenko: 我最近一直在实施以下计划。我把我的老趋势顾问放在指标上。它是一个成熟的专家顾问,在真实账户上交易。现在我正在寻找它的缺点,并试图用R来减少这些缺点。我寻找它的缺点,并试图用R来改善它们。比如说。我从高杆上把握大方向。然而,如果我仔细看一下时间,特别是在低杠方面有一个巨大的滞后。因此,如果是D1,而我在M5上交易,那么我几乎以前天的数据为方向。即使以30%的误差预测D1的发展一步,也从根本上提高了EA的盈利能力,更重要的是增加了它不会卖掉的信心。这样吧--在R中预测一个现成的,甚至是糟糕的EA的一些元素,以便升级它?你如何找到这样的想法?这个想法很有趣,我也有一些正在运行的EA。也许我会考虑如何升级它们。但我不明白到底有什么需要改进的?机器需要学习什么?专家顾问有一套严格的开仓和平仓 逻辑。在机器学习中,决定是以一种稍微不同的方式作出的。 所以,并不完全清楚你到底要做什么。 Andrey Dik 2016.06.07 20:15 #100 Alexey Burnakov: 这是个有趣的想法。 我也有EA工作。也许我会考虑如何升级它们。但我不清楚到底需要改进什么?你需要什么来教导机器?专家顾问有一套严格的开仓和平仓 逻辑。在机器学习中,决定是以一种稍微不同的方式作出的。 所以,你到底要做什么,还不是很清楚。你要做的事情很清楚。不清楚的是我们为什么需要它。首先,如果有一个系统可以分析另一个系统的正确性和/或控制参数,那么受控系统就变得没有必要了,因为如果你同时使用它们,两者的总效率会同时下降,并低于你单独使用它们。例如,如果有一个系统能给出70%的正确决策,而有一个系统能以99%的精度控制一个或多个参数,那么最终的效率将是相等的。0,7*0,99=0,693这比单独的系统要低。阿门。最 好是在没有 "控制器 "的情况下尝试改进原始系统。 1...34567891011121314151617...3399 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
本教程:https://drive.google.com/file/d/0B_Au3ANgcG7CN2tTUHBkdEdpVEU/view?usp=sharing
谢谢,看了看这些栏目,原则上我也做过--三角洲、最小、最大、时间等。
如何为我创建一个外汇交易模型的方式只会越来越复杂,简单的方式并不能带来稳定的结果。我现在看到的情况是这样的。
1) 从MT5卸下数据:OHLC、时间、指标。在这一阶段,我不会添加三角洲。
2)将数据加载到R中,通过对初始数据的添加、减去、最小、最大等,向其添加大量的新列。在R中做到这一点比在mt5中更容易。
3)以某种方式选择输入数据的子集(按列)。我可以按照Alexey的例子,使用GenSA或者直接使用GA包进行遗传优化。由于我只需要每个输入的二进制结果(开/关),在我看来GA有一个优势,它有一个二进制的操作模式。但我需要尝试比较这两套方案。
4)对输入的子集进行分析。这在阿列克谢的例子中也是如此。但我要冒着风险马上在输入的子集上训练模型,并因此使用验证数据错误。只要该模型的学习时间不超过几秒钟。
5)回到第2步,增加新的计数输入,执行其他步骤,经历这样的循环,直到结果停止改进。
我还对关于主要成分的方法的文章进行了一些实验。文章中的例子有一个细微的差别,即结果可以从输入数据中准确计算出来。在我的案例中,当输入数据明显不足时,这个方法开始使用噪声进行学习。事实证明,如果这种方法只用几个成分就能达到0.95的结果(r-squared)--那么模型中使用的预测因子很可能是正确的。如果即使使用所有成分,r-squared仍低于0.95,该模型在计算中包括了噪音。然而,值得注意的是,随着额外噪声预测器的加入--r-squared一点一点地减少。我认为通过这种方式,你可以将预测器的子集相互比较--如果r-squared更大,那么子集就更好。
我还用主成分法的文章做了一些实验。在文章的例子中,有一个细微的差别,即结果可以从输入数据中准确计算出来。在我的案例中,当输入数据明显不足时,这种方法开始使用噪声进行学习。事实证明,如果这种方法只用几个成分就能达到0.95的结果(r-squared)--那么模型中使用的预测因子很可能是正确的。如果即使使用所有成分,r-squared仍低于0.95,该模型在计算中包括了噪音。然而,值得注意的是,随着额外噪声预测器的加入--r-squared一点一点地减少。我认为这是一种将预测器的子集相互比较的方法--如果r-squared更大,那么子集就更好。
到目前为止,在预选 与目标变量 "相关 "的预测因子 方面,我们似乎有:Alexey有一些技术,我也有。再来一次也不失为一个好主意。PCA非常有吸引力,因为它广为人知,大量的文献....。然而,请注意,有大量的算法可以计算预测器的 "重要性",但我还没有设法使用它们。但与我的算法相结合,这些标准算法中几乎任何一种都能得到好的结果--误差减少了5-7%。
而初始预测器的数量,我认为应该是几十个,有几千个观测值。在统计学中,如果有些东西不够,那么就没有统计。
谢谢,看了一下列,原则上我也已经做过了--三角洲、最小、最大、时间等等。
不客气。你也可以在我的装备上练习。有一个高质量的实验设计。数据是好的。而在验证上获得一个积极的结果一点也不容易。
1) 从MT5卸下数据:OHLC,时间,指标。在这一阶段,我不会添加三角洲。
2)将数据加载到R中,通过添加、减去、最小、最大等原始列,为它们添加大量的新列。在R中做到这一点比在mt5中更容易。
3)以某种方式选择输入数据的子集(按列)。我可以按照Alexey的例子,使用GenSA或者直接使用GA包进行遗传优化。由于我只需要每个输入的二进制结果(开/关),在我看来GA有一个优势,它有一个二进制的操作模式。但你需要尝试比较这两种套餐。
在此,我建议保持两点:首先--输入应该是相对于其平均值而言的所有vdostary。第二,关于列枚举的机制;是的,GA有二进制模式。GenSA没有,但我模拟了二元选择。
4)对输入的子集进行分析。这在阿列克谢的例子中也是如此。但我要冒着风险马上在输入的子样本上训练模型,并使用验证数据错误作为结果。只要模型的学习时间不超过几秒钟就可以了。
好主意!但请记住,整个过程仍然可能需要很长的时间,因为你通常需要成千上万次的迭代。这个健身函数是最复杂的,因为它计算整个模型。另一方面,我应用了一个所谓的过滤健身函数,这里没有学习本身,但有一个启发式的方法,决定输入对输出有多大的影响,在更广泛的意义上。计算速度可以超过两秒。但不是一个数量级的。
对我来说,创建外汇交易模式的方式只会越来越复杂,简单的方式并不能产生一致的结果。目前我是这样看的。
到目前为止,我已经放弃了增加新的预测因素和对实验设计的各种小改进。
我有一个想法,但我还没有实施。问题是,我们、你和其他人通常会预测交易结束的某个条件,例如提前3小时或当价格达到拿下或停止的水平。
而你得到了糟糕的结果。当我在MT4 中输入几个并发的条件来关闭一个交易,这些条件是通过OR操作符来实现的,我设法得到一个积极的OM,甚至在样本之外。
所以我在想,我怎么能在R中模拟预测一次交易的结果,同时基于几个条件。例如,如果价格在3小时内达到TP,那么就关闭它。但3小时的参数不应该被硬性设定,因为它应该被优化选择。如果我们还添加一个条件,即如果价格在3小时内为正值,但没有达到TP,我们应该把STOP画到Breakeven。
在这种情况下,进入一个位置也是由机器预测的。
这就是心中的任务。
所以我在想,我怎么能在R中模拟预测一次交易的结果,同时基于几个条件。例如,如果价格在3小时内达到TP,那么就关闭它。但3小时的参数不应该被硬性设定,因为它应该被优化选择。如果我们还添加一个条件,如果价格在3小时内获胜,但没有达到TP,我们需要将STOP画到Breakeven。
从交易EA的经验来看,我不喜欢TP和SL。如果交易系统构建正确,其自身的交易退出将比基于TP和SL的退出更有效。
SL和TP的最佳值随时间变化,不存在稳定的恒定值。我们可以找到一些数值,在某一时期可以提高交易系统的效率,但在这种情况下,策略效率会在这一时期之后下降。最好不要移动SL,而是将其保持在 "出错 "的距离,如果价格达到SL,则完全停止交易,以便进行错误分析和交易策略优化。
但也有一些聪明的自我优化的EA,使用TP。我理解,我们应该在训练集中已经引入了一个常数TP。例如,在我的案例中,TP训练的结果是0/1--价格在下一栏中增加/减少了。但是,如果价格已经上升并达到了TP水平,那么在条形图结束时,它已经跌破了初始水平--在训练设置中,结果是 "1",而不是 "0"(因为交易将以TP的利润关闭,并且不会有更多的交易到条形图结束)。TP通常很小,小于50点(4位数 的5点)。SL要大几十倍,以防 "一切出错"。fronttest或trade的TP不能被优化,只有在创建训练样本时使用。我见过这样成功的策略,我认为这个方向值得挖掘。
根据专家的交易经验,我不喜欢TPs和SLs。如果交易系统构建正确,其自身的交易退出将比基于TP和SL的退出更有效。
那么它自己的出口是如何制定的呢?仅仅通过时间?
如果你说要在一小时内平仓,但如果在一小时内突破了TP,那么这将是结果1,那么复杂的平仓条件已经被使用。
关于5点的TP和几十倍的SL - 作为一种选择,但这样的TP会吃掉利润。
我这周和上周和你在一起,被时区 隔开,所以我没有得到现场拨号。我在加州工作,所以...
无论如何,我想我(也许你也是)已经可以很好地计划实验,训练和验证结果。你也可以多余地招募预测者。
我认为,囿于固定的目标,比如在一小时内收盘,预测交易并不是最优的,结果也很弱。
在MT测试器中,我根据平衡和恢复系数进行优化。在R中,我优化了猜测方向或预测价格差异的准确性。无论你怎么看,这些都是不同的事情。
也许可以尝试在R中为学习方法写出自己的损失函数,比如说,利润最大化。这个功能可以在一些学习方法中被替代。
我这周和上周和你在一起,被时区隔开,所以我没有得到现场拨号。我在加州工作,所以...
无论如何,我想我(也许你也是)已经可以很好地计划实验,训练和验证结果。你也可以多余地招募预测者。
我认为,囿于固定的目标,比如在一小时内收盘,预测交易并不是最优的,结果也很弱。
在MT测试器中,我根据平衡和恢复系数进行优化。在R中,我优化了猜测方向或预测价格差异的准确性。无论你怎么看,这些都是不同的事情。
也许可以尝试在R中为学习方法写出自己的损失函数,比如说,利润最大化。这个功能可以被替换成一些学习方法。
最近,我一直在实施以下计划。
我实施了我以前的基于趋势指标的EA。它是一个坚实的专家顾问,在真实账户上进行交易。
下一步。
我寻找它的缺点,并试图用R来改善它们。
比如说。
我从高杆上把握大方向。然而,如果我仔细看一下时间,特别是在低杠方面有一个巨大的滞后。因此,如果是D1,而我在M5上交易,那么我几乎以前天的数据为方向。即使以30%的误差预测D1的发展一步,也从根本上提高了EA的盈利能力,更重要的是增加了它不会卖掉的信心。
这样吧--在R中预测一个现成的,甚至是糟糕的EA的一些元素,以便升级它?
你如何找到这样的想法?
最近为smart-lab写了一篇文章。一个薄弱的社区,但得到了一些有用的东西。
http://smart-lab.ru/search/topics/?q=%D0%B4%D0%BB%D1%8F+%D0%BB%D1%8E%D0%B1%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9+fx
我最近一直在实施以下计划。
我把我的老趋势顾问放在指标上。它是一个成熟的专家顾问,在真实账户上交易。
现在我正在寻找它的缺点,并试图用R来减少这些缺点。
我寻找它的缺点,并试图用R来改善它们。
比如说。
我从高杆上把握大方向。然而,如果我仔细看一下时间,特别是在低杠方面有一个巨大的滞后。因此,如果是D1,而我在M5上交易,那么我几乎以前天的数据为方向。即使以30%的误差预测D1的发展一步,也从根本上提高了EA的盈利能力,更重要的是增加了它不会卖掉的信心。
这样吧--在R中预测一个现成的,甚至是糟糕的EA的一些元素,以便升级它?
你如何找到这样的想法?
这个想法很有趣,我也有一些正在运行的EA。也许我会考虑如何升级它们。但我不明白到底有什么需要改进的?机器需要学习什么?
专家顾问有一套严格的开仓和平仓 逻辑。在机器学习中,决定是以一种稍微不同的方式作出的。
所以,并不完全清楚你到底要做什么。
这是个有趣的想法。 我也有EA工作。也许我会考虑如何升级它们。但我不清楚到底需要改进什么?你需要什么来教导机器?
专家顾问有一套严格的开仓和平仓 逻辑。在机器学习中,决定是以一种稍微不同的方式作出的。
所以,你到底要做什么,还不是很清楚。
你要做的事情很清楚。不清楚的是我们为什么需要它。首先,如果有一个系统可以分析另一个系统的正确性和/或控制参数,那么受控系统就变得没有必要了,因为如果你同时使用它们,两者的总效率会同时下降,并低于你单独使用它们。例如,如果有一个系统能给出70%的正确决策,而有一个系统能以99%的精度控制一个或多个参数,那么最终的效率将是相等的。
0,7*0,99=0,693
这比单独的系统要低。
阿门。最 好是在没有 "控制器 "的情况下尝试改进原始系统。