交易中的机器学习:理论、模型、实践和算法交易 - 页 14 1...789101112131415161718192021...3399 新评论 mytarmailS 2016.06.14 18:17 #131 阿列克谢-伯纳科夫。 好吧,你可能会想。例如,想象一下,在每个迭代中,神经网络不做基于目标偏离预测的标准误差反向传播,而是得到数据,在上一版本的权重下,真实交易与理想的交易相差 这么多点。并根据这些信息更新权重。也就是说,信息应该是一个平行的流向机器。也许,这可以做到。你为什么需要砝码?你为什么一开始就谈论他们呢?我明白你需要以前的重量,现在我明白了,我什么都不明白) Alexey Burnakov 2016.06.14 18:20 #132 mytarmailS: 你为什么需要砝码?你为什么一开始就谈论他们呢?我明白你需要以前的重量,现在我明白了,我什么都没明白)嗯,看起来是这样的 ))我们不需要这些砝码。我提到它们只是为了让你明白。我们需要知道该系统在以前的权重上是如何交易的。我们需要以某种综合方式获得交易的结果。一切都是。权重由该算法更新。 Alexey Burnakov 2016.06.14 18:50 #133 在这里,一个简单的函数起作用。需要尝试一种更复杂的方式。它仍然需要区别对待,这就是诀窍所在。library(neuralnet)y <- as.data.frame(matrix(runif(n = 10000, min = -15, max = 15), ncol = 2))y$V3 <- runif(n = 5000, min = -15, max = 15)y$V4 <- runif(n = 5000, min = -15, max = 15)y$V5 <- runif(n = 5000, min = -15, max = 15)y$V6 <- runif(n = 5000, min = -15, max = 15)y$V7 <- runif(n = 5000, min = -15, max = 15)y$V8 <- y$V1 ^ 2 + y$V2 ^ 2colnames(y) <- c('input_1', 'input_2', 'noise_1', 'noise_2', 'noise_3', 'noise_4', 'noise_5', 'output')f_f <- function(x, y){ 1/2*(y-x)^2 }print( nn_model <- neuralnet(formula = output ~ input_1 + input_2 + noise_1 , data = y , hidden = 1 , threshold = 0.01 , stepmax = 1e+05 , rep = 100 , startweights = NULL , learningrate.limit = NULL , learningrate.factor = list(minus = 0.5, plus = 1.2) , learningrate=NULL , lifesign = "none" , lifesign.step = 10 , algorithm = "rprop+" , err.fct = f_f #"sse" , act.fct = "logistic" , linear.output = F , exclude = NULL , constant.weights = NULL , likelihood = FALSE ) ) Machine learning in trading: Machine Learning and Neural Machine learning methods mytarmailS 2016.06.14 19:33 #134 f_f <-function(x, y) 1/2*(y-x)^2f_f - 计入网络的误差,对吗?x是应该有的数值(理想曲线)。y是它应该是的样子(真实的曲线)。它们之间的区别是误差我需要一个由以前的蜡烛图组成的交易矢量,我需要打开交易的规则,我需要交易输入数据。 Alexey Burnakov 2016.06.14 19:51 #135 mytarmailS:f_f <- function(x, y) 1/2*(y-x)^2f_f - 计入网络的误差,对吗?x是应该有的数值(理想曲线)。y是它应该是的样子(真实的曲线)。它们之间的区别是误差我想我需要一个由蜡烛图组成的交易矢量,但我不明白如何通过什么规则打开交易,这些输入数据应该是什么样子? 几乎是对的。X是一个ns预测的向量。Ygrek是每根柱子向前的价格增量向量(例如),这就是网络预测的内容。而整个函数就是NS算法在每次迭代时看到的内容。到目前为止还没有结果。它们需要被建模。如何。我们应该描述开仓的逻辑,并在函数体中 直接输入价差。将开放位置的结果写在矢量中,并计算矢量上的内在特征。例如:buy<-(y-spread)[x>0]。这将是一个长线的载体。然后all<-append(buy, sell)。但这可能不会奏效。对函数的种类有很多限制(。 Alexey Burnakov 2016.06.14 23:33 #136 在此期间,我继续我的实验。我只在eurusd 上训练了机器,并在验证时得到了小的正MO。附上当前MT4中模型测试的截图。训练阶段仍在进行中......完整的结果要到明天才会公布。结合R的计算是相当长的,如果没有开放的交易,每分钟都要计算。始于1999年。验证将从2010.09开始。目前的图表是2003年的。我使用10个五位数的点差。预计在MO验证时可获得7-8个点的收益。不密....但现在你已经可以找到点差为10点的DC,这就是为什么我认为结果几乎是显著的。 附加的文件: 2016_06_15_00.23.17.png 362 kb Alexey Volchanskiy 2016.06.15 02:13 #137 一位同事给我发了一个机器学习课程的链接,你想看一下吗?它是免费的,但由于某种原因,它是用Python语言编写的(()。https://www.udacity.com/course/machine-learning-for-trading--ud501 СанСаныч Фоменко 2016.06.15 09:44 #138 阿列克谢-沃尔昌斯基。一位同事给我发了一个机器学习课程的链接,你想看一下吗?它是免费的,但由于某种原因,它是用Python语言编写的(()。https://www.udacity.com/course/machine-learning-for-trading--ud501最有效的。1.你投入R- 5分钟。2.下载rattle软件包,它被设计成一个GUI,所以不需要任何R知识。3.为了减少你的启动成本,你可以使用我的文章。它包含了解释,更重要的是,还附有一个准备好的文件。一旦你看到我的文件,你可以很容易地准备你自己的文件。4.你会得到六个模型。5.主要是在拨浪鼓中你可以看到机器学习的整个周期。最初的数据准备(数据挖掘)。建模结果评价作为你所有拨浪鼓活动的R上的奖励文本。然后这个文本可以在拨浪鼓之外使用。所有这些将给你一些没有差距的基础,最重要的是有一个具体的与外汇挂钩的机器学习经验。PS。 拨浪鼓不仅在最初的步骤中对你非常有用,而且在以后也是如此:最小的成本,估计一些东西,进行实验......。辽宁省当然,你不能没有书。这里 有很多这样的人。搜索的效果非常好。 Dr. Trader 2016.06.15 14:42 #139 mytarmailS:感谢Dr.Trader 的详细说明!你知道,可能最好的和最正确的是教授逆转本身,甚至是同一个之字形,也就是给出三种状态1)向上调头 2) 下降的逆转3)不是调头但不管教不教,要抓反转是相当困难的,再加上观察次数的倾斜,班级 "不反转 "的情况会多出几十倍甚至上百倍。那么你使用什么预测因素,结果如何?我刚刚开始使用光谱分析,第一次测试结果比用指标要好得多,我通过拨浪鼓运行,训练和测试的误差大约是6%,但当我开始使用R时,如果我没有弄错的话,误差上升到30%,San Sanich说这是再训练,所以我还是不大明白还有一种方法是通过频谱分析找出哪些时期在市场中占主导地位,然后你可以在指标中使用这些时期。 我将得到自适应指标,不根据历史进行调整。我使用标准指标作为创建预测器的基础。我自己还在做实验,尝试这个论坛主题中的想法。过去几周我一直在做,现在最好的结果如下:(计算量很大,我试图用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模型本身,暂时定位于预测因子的预筛选功能。library('vtreat') PrunePredictors <- function(srcTable, pruneSig = -1) { targetName <- tail(colnames(srcTable), 1) treatmentsN <- designTreatmentsN(srcTable,setdiff(colnames(srcTable),targetName),targetName, verbose=FALSE) if(pruneSig<0){ pruneSig = 1.0/(ncol(srcTable)-1) } scoreFrameSorted <- treatmentsN$scoreFrame[,c("origName", "psig", "code")] scoreFrameSorted <- subset( scoreFrameSorted, code == "clean")[,1:2] scoreFrameSorted <- scoreFrameSorted[with(scoreFrameSorted, order(psig)), ] scoreFrameSortedPruned <- subset( scoreFrameSorted, psig < pruneSig) scoreFrameSortedPruned <- scoreFrameSortedPruned[,1] cat("Minimal psig:", scoreFrameSorted[1,2], "\n") cat("Maximal psig:", scoreFrameSorted[nrow(scoreFrameSorted),2], "\n") cat("Threshold:", pruneSig, "\n") cat("Good predictors:", nrow(subset( scoreFrameSorted, psig < pruneSig)), "\n") return(scoreFrameSortedPruned) }srcTable是一个包含预测器的表,最后一列应该是所需的训练结果。pruneSig最好留为-1。结果是,该函数将返回一个列表,其中有来自表中的列名,这些列名带有一些有用的信息。如果没有发现任何有用的东西,则是一个空列表。文章中提到的这种方法意义不大,但事实证明是相当充分的,它能很好地筛除垃圾。另外,结果列表将按相关性排序,从较有用到较不有用。4)如果函数返回空列表--我再次运行第二步,在现有数据上再次生成不同的数学组合,然后第三步筛选出来。我必须重复这3-4次。数据量随着每次重复而增长,所以最好以某种方式限制产生的新数据量。我们可以改变这个用于筛选的函数,这样,如果列表是空的,它就会返回一百或两个最佳结果,并只从它们中生成新的预测器。5)接下来,根据这篇文章,我们需要训练主成分模型本身。我有一些问题 - 到目前为止,训练过的模型的最佳r-squared是0.1,这还不够,文章说我至少需要0.95。但我可以在获得的预测器上训练一些其他的R模型,它会给出更好的结果。我对神经元的经验最多,用它进行前沿测试的最佳结果是,误差约为37%。PCE模型应该是更稳定的,不需要重新训练等,但到目前为止,我无法得到任何预测器。如果你在前沿测试中的误差为30%,那么它是一个相当有利可图的模型,为MT5制作专家顾问并在策略测试器中进行检查。 Dr. Trader 2016.06.15 14:53 #140 阿列克谢-沃尔昌斯基。一位同事给我发了一个机器学习课程的链接,你想看一下吗?它是免费的,但由于某种原因,它是用Python语言编写的(()。https://www.udacity.com/course/machine-learning-for-trading--ud501 我开始看这个课程,它对Python的Pandas框架非常关注。第一课看起来更像是关于这个框架的教程,而不是关于数据分析的教程。但该教程看起来很充分,没有像许多其他无用的培训中那样典型的 "我是外汇大师,我会让你大开眼界,你会赚到几百万",这让人希望他们会把充分的东西讲到最后。但也值得注意的是,这个课程是为股票交易设计的,而不是外汇,我不知道这两个领域的模型学习过程是否相似。 1...789101112131415161718192021...3399 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
好吧,你可能会想。例如,想象一下,在每个迭代中,神经网络不做基于目标偏离预测的标准误差反向传播,而是得到数据,在上一版本的权重下,真实交易与理想的交易相差 这么多点。并根据这些信息更新权重。也就是说,信息应该是一个平行的流向机器。也许,这可以做到。
你为什么需要砝码?你为什么一开始就谈论他们呢?
我明白你需要以前的重量,现在我明白了,我什么都不明白)
你为什么需要砝码?你为什么一开始就谈论他们呢?
我明白你需要以前的重量,现在我明白了,我什么都没明白)
嗯,看起来是这样的 ))
我们不需要这些砝码。我提到它们只是为了让你明白。我们需要知道该系统在以前的权重上是如何交易的。我们需要以某种综合方式获得交易的结果。一切都是。
权重由该算法更新。
在这里,一个简单的函数起作用。需要尝试一种更复杂的方式。它仍然需要区别对待,这就是诀窍所在。
library(neuralnet)
y <- as.data.frame(matrix(runif(n = 10000, min = -15, max = 15), ncol = 2))
y$V3 <- runif(n = 5000, min = -15, max = 15)
y$V4 <- runif(n = 5000, min = -15, max = 15)
y$V5 <- runif(n = 5000, min = -15, max = 15)
y$V6 <- runif(n = 5000, min = -15, max = 15)
y$V7 <- runif(n = 5000, min = -15, max = 15)
y$V8 <- y$V1 ^ 2 + y$V2 ^ 2
colnames(y) <- c('input_1', 'input_2', 'noise_1', 'noise_2', 'noise_3', 'noise_4', 'noise_5', 'output')
f_f <- function(x, y){
1/2*(y-x)^2
}
print(
nn_model <- neuralnet(formula = output ~ input_1 + input_2 + noise_1
, data = y
, hidden = 1
, threshold = 0.01
, stepmax = 1e+05
, rep = 100
, startweights = NULL
, learningrate.limit = NULL
, learningrate.factor = list(minus = 0.5, plus = 1.2)
, learningrate=NULL
, lifesign = "none"
, lifesign.step = 10
, algorithm = "rprop+"
, err.fct = f_f #"sse"
, act.fct = "logistic"
, linear.output = F
, exclude = NULL
, constant.weights = NULL
, likelihood = FALSE
)
)
f_f <-function(x, y) 1/2*(y-x)^2
f_f - 计入网络的误差,对吗?
x是应该有的数值(理想曲线)。
y是它应该是的样子(真实的曲线)。
它们之间的区别是误差
我需要一个由以前的蜡烛图组成的交易矢量,我需要打开交易的规则,我需要交易输入数据。
f_f <- function(x, y) 1/2*(y-x)^2
f_f - 计入网络的误差,对吗?
x是应该有的数值(理想曲线)。
y是它应该是的样子(真实的曲线)。
它们之间的区别是误差
我想我需要一个由蜡烛图组成的交易矢量,但我不明白如何通过什么规则打开交易,这些输入数据应该是什么样子?
一位同事给我发了一个机器学习课程的链接,你想看一下吗?它是免费的,但由于某种原因,它是用Python语言编写的(()。
https://www.udacity.com/course/machine-learning-for-trading--ud501
一位同事给我发了一个机器学习课程的链接,你想看一下吗?它是免费的,但由于某种原因,它是用Python语言编写的(()。
https://www.udacity.com/course/machine-learning-for-trading--ud501
最有效的。
1.你投入R- 5分钟。
2.下载rattle软件包,它被设计成一个GUI,所以不需要任何R知识。
3.为了减少你的启动成本,你可以使用我的文章。它包含了解释,更重要的是,还附有一个准备好的文件。一旦你看到我的文件,你可以很容易地准备你自己的文件。
4.你会得到六个模型。
5.主要是在拨浪鼓中你可以看到机器学习的整个周期。
所有这些将给你一些没有差距的基础,最重要的是有一个具体的与外汇挂钩的机器学习经验。
PS。
拨浪鼓不仅在最初的步骤中对你非常有用,而且在以后也是如此:最小的成本,估计一些东西,进行实验......。
辽宁省
当然,你不能没有书。这里 有很多这样的人。搜索的效果非常好。
感谢Dr.Trader 的详细说明!
你知道,可能最好的和最正确的是教授逆转本身,甚至是同一个之字形,也就是给出三种状态1)向上调头
2) 下降的逆转
3)不是调头
但不管教不教,要抓反转是相当困难的,再加上观察次数的倾斜,班级 "不反转 "的情况会多出几十倍甚至上百倍。
那么你使用什么预测因素,结果如何?
我刚刚开始使用光谱分析,第一次测试结果比用指标要好得多,我通过拨浪鼓运行,训练和测试的误差大约是6%,但当我开始使用R时,如果我没有弄错的话,误差上升到30%,San Sanich说这是再训练,所以我还是不大明白
还有一种方法是通过频谱分析找出哪些时期在市场中占主导地位,然后你可以在指标中使用这些时期。 我将得到自适应指标,不根据历史进行调整。
我使用标准指标作为创建预测器的基础。我自己还在做实验,尝试这个论坛主题中的想法。
过去几周我一直在做,现在最好的结果如下:(计算量很大,我试图用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语言编写的(()。
https://www.udacity.com/course/machine-learning-for-trading--ud501