交易中的机器学习:理论、模型、实践和算法交易 - 页 261 1...254255256257258259260261262263264265266267268...3399 新评论 mytarmailS 2017.01.18 10:20 #2601 那么预测的结果是什么呢? 敢问。 toxic 2017.01.19 19:00 #2602 mytarmailS: 那么在预测方面的结果是什么呢?敢问。 如果你问我,我可能无法明确回答,有很多东西被预测,一切都不同。但平均来说,大约有60-65%。 Dr. Trader 2017.01.19 22:41 #2603 这里是为模型训练准备的电子表格。价格按列转换为德尔塔;删除的列没有变化或有NA。每一列的每一行都塞进了3个滞后期(当前行减去以前的;以前的减去以前的;以前的减去以前的)。目标 - 下一行的增加/减少值(下一行减去当前行,四舍五入为+-1,如果没有变化则为0;共3类)。所有目标都有前缀 "target_"*不得使用其他目标进行预测,否则将是对未来的窥视。所有以 "target_"为前缀的列都不能作为预测器或直觉使用。 附加的文件: 250902254.txt 2 kb example0.prepared.zip 94 kb Dr. Trader 2017.01.20 01:51 #2604 问题。将csv文件按行分成两部分,训练数据和前沿测试的比例为10:1。我为target_SiH7.bid(来自上表)训练了模型,在训练数据上得到了62%的分类精度,在新数据上得到了74%的分类精度。本来很高兴,但仔细检查了一下,原来0班与其他班级相比很不平衡,仅按数额就有60%和74%。也就是说,该模型已经学会了很好地检测0,但它在-1和1类上却陷入了困境。需要一个不同的分数。对于两个不平衡的班级,这个指标很好--https://en.wikipedia.org/wiki/Cohen's_kappa,但在我们的案例中,有三个不平衡的班级,而不是两个,是否有一个类似于3的Kappa? mytarmailS 2017.01.20 07:58 #2605 我没有。 如果你问我,我可能无法明确回答,有非常多的事情是可以预测的,每件事都是不同的。但平均来说,大约有60-65%。有趣的是,你能否更详细地描述一下...只是我现在从事的是完全不同的预测领域,我不能分散,所以不能在这个三月的日期和你一起做实验,但阅读和观察非常有趣,请多写点...Dr.Trader:事实证明,0类与其他类相比非常不平衡,仅在数量上就有60%和74%。也就是说,该模型已经学会了很好地检测0,但它已经放弃了-1和1类。当我为U型车训练我的随机森林时,我遇到了同样的问题,U型车自然比非U型车少得多。我做的树越多,MO在转弯类上的得分越多,而更多地集中在非转弯类上。在caret 中,有几种平衡类的方法,但所有这些方法都是微不足道的--要么将观测值较少的类加倍,使所有类的观测值之和变得相同,要么从观测值较多的类中删除不必要的观测值。没有一种方法比完全不做平衡更有利可图(但这只是在我的情况下)。 Dr. Trader 2017.01.20 08:50 #2606 mytarmailS:有趣的是,你能否更详细地描述一下...我现在只是在一个完全不同的预测领域工作,我不能迷失方向,这就是为什么我不能和你在这个马特上做实验的原因,但阅读和观察非常有趣,请多写点...我在训练调头时也遇到了同样的问题,调头当然比不调头要少得多。我做的树越多,MO就越多地被U-turn类困住,而更多地集中在非turn类上。在caret 中,有几种平衡类的方法,但所有这些方法都是微不足道的--要么将观测值较少的类加倍,使所有类的观测值之和变得相同,要么从观测值较多的类中删除不必要的观测值。没有一种方法比完全不做平衡更有利可图(但这只是在我的情况下)。 在caret中,你可以通过一些参数改变训练函数中的健身函数。对于分类,你可以使用精度或卡帕:而对于回归,你可以使用一些自己的两个变体,如r^2和其他东西。我就是在那里学会了卡帕,它帮助我在非常不平衡的类上正确地训练了一个模型,没有任何额外的操作。 СанСаныч Фоменко 2017.01.20 11:17 #2607 如果我们讨论的是反转,那么我们应该以一种有意义的方式来平衡类:不是一个酒吧的反转,而是反转前的几个酒吧和反转后的几个酒吧。如果说班级无论如何都是不平衡的,但不是那么致命的,可以通过照顾来平衡。 Женя 2017.01.20 12:05 #2608 有毒。 一切都是可以协商的。我建议做期货,例如Si、RI、BR 等,一般来说是流动性最好的。我建议信号(-1,0,1)(short,cash,long)作为一个结果,信号比概率毫不含糊,不被MM 作为订单扭曲。后期处理、标志和目标由你决定,或者说是书。 经过一些思考,我得出一个结论,至少应该增加一个玻璃{price:vol,...||...,price:vol },因为它是每秒最后一个,对于每个预测的工具,那么delta是不需要的,bid,ask也是,它是IMHO强制的,如果用每秒的磁带分割量和OM的转移,或多或少的信息,那么对于玻璃一个delta是非常少的,至少需要看到不同的 "板块 "分布,等等,这就足够作为一个开始。添加一个翻滚器,并发布一个训练数据集,几天后,我们就可以玩了。:) Dr. Trader 2017.01.22 14:06 #2609 最终确定了斯科特的Pi 公制https://en.wikipedia.org/wiki/Scott's_Pi这是我的估算结果,我在前91%的线条上训练了模型,然后在最后剩下的数据上做了前测(backtest : fronttest = 10:1的比例)。 表中的 "class_0_rate "列--0级与-1和1级的比率,这样我就可以在Excel中筛选出那些该值过高的结果。最后两列是Scott的Pi指标,用于训练和测试,数值将从-1到1;其中0=结果是随机的,模型是无用的,1=一切正常。负面的结果是不好的,反相关,你可以试着把预测结果倒过来。在交易与预测完全相反的两个类别时,逆向相关有时也能正常工作。但有三个类,就很难找到相反的东西,每个类都有两个相反的值,在这种情况下,负值也是不好的。我认为我们需要选择在回测和前测中出价(或要价)预测值相似且高的货币,例如xagusd。虽然在0到1的范围内,0.18的分数是很小的。而在真正的交易中,提前一格的预测也是不好的。一般来说,有一个结果,但它不适用 :)Scott's Pi的R代码ScottsPi <- function(act, pred){ if(length(act) != length(pred)){ stop("different length") } n_observ <- length(act) all_levels <- unique(c(act,pred)) n_levels <- length(all_levels) marginal_matrix <- matrix(NA, ncol=n_levels, nrow=n_levels) colnames(marginal_matrix) <- all_levels rownames(marginal_matrix) <- all_levels for(i in 1:n_levels){ for(j in 1:n_levels){ marginal_matrix[i,j] <- sum((act==all_levels[i]) & (pred==all_levels[j])) } } diagSum <- 0 for(i in 1:n_levels){ diagSum <- diagSum + marginal_matrix[i,i] } diagSum <- diagSum / n_observ marginalSum <- 0 for(i in 1:n_levels){ marginalSum <- marginalSum + ((sum(marginal_matrix[i,]) + sum(marginal_matrix[,i]))/n_observ/2)^2 } p <- marginalSum return((diagSum - p)/(1-p))} 附加的文件: resultsTable_scottspi_v1r.zip 6 kb Machine learning in trading: Operator overloading Machine learning methods Женя 2017.01.22 17:27 #2610 Dr.Trader:最终确定了斯科特的Pi 公制https://en.wikipedia.org/wiki/Scott's_Pi这是我的估算结果,我在前91%的线路上训练了模型,然后在最后剩下的数据上做了前测(backtest : fronttest = 10:1的比例)。 表中的 "class_0_rate "列--0级与-1和1级的比率,这样我就可以在Excel中筛选出这个数值过高的结果。最后两列是Scott的Pi指标,用于训练和测试,数值将从-1到1;其中0=结果是随机的,模型是无用的,1=一切正常。负面的结果是不好的,反相关,你可以试着把预测结果倒过来。在交易与预测完全相反的两个类别时,逆向相关有时也能正常工作。但是有三个班级,就很难找到相反的,每个班级都有两个相反的,在这种情况下,负面的结果也是不好的。我认为我们需要选择在回测和前测中出价(或要价)预测值相似且高的货币,例如xagusd。虽然在0到1的范围内,0.18的分数是很小的。而在真正的交易中,提前一格的预测也是不好的。一般来说,有一个结果,但它不适用 :)Scott's Pi的R代码ScottsPi <- function(act, pred){ if(length(act) != length(pred)){ stop("different length") } n_observ <- length(act) all_levels <- unique(c(act,pred)) n_levels <- length(all_levels) marginal_matrix <- matrix(NA, ncol=n_levels, nrow=n_levels) colnames(marginal_matrix) <- all_levels rownames(marginal_matrix) <- all_levels for(i in 1:n_levels){ for(j in 1:n_levels){ marginal_matrix[i,j] <- sum((act==all_levels[i]) & (pred==all_levels[j])) } } diagSum <- 0 for(i in 1:n_levels){ diagSum <- diagSum + marginal_matrix[i,i] } diagSum <- diagSum / n_observ marginalSum <- 0 for(i in 1:n_levels){ marginalSum <- marginalSum + ((sum(marginal_matrix[i,]) + sum(marginal_matrix[,i]))/n_observ/2)^2 } p <- marginalSum return((diagSum - p)/(1-p))} 数据非常少,我的朋友挂了一个正常的数据集,但在某个地方迷路了。操盘手博士:数据不多,但在某处丢失了。 如果你不具体说,当然对于提前的tick来说,真的没有用,至少提前一分钟,在pass一分钟是纯MM,两边的限制器,在与价差成比例的距离,这里是 "量子泡沫",没有必要谈方向,因为它比价差小得多。 1...254255256257258259260261262263264265266267268...3399 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
那么在预测方面的结果是什么呢?敢问。
这里是为模型训练准备的电子表格。
价格按列转换为德尔塔;删除的列没有变化或有NA。
每一列的每一行都塞进了3个滞后期(当前行减去以前的;以前的减去以前的;以前的减去以前的)。
目标 - 下一行的增加/减少值(下一行减去当前行,四舍五入为+-1,如果没有变化则为0;共3类)。所有目标都有前缀 "target_"
*不得使用其他目标进行预测,否则将是对未来的窥视。所有以 "target_"为前缀的列都不能作为预测器或直觉使用。
问题。
将csv文件按行分成两部分,训练数据和前沿测试的比例为10:1。我为target_SiH7.bid(来自上表)训练了模型,在训练数据上得到了62%的分类精度,在新数据上得到了74%的分类精度。本来很高兴,但仔细检查了一下,原来0班与其他班级相比很不平衡,仅按数额就有60%和74%。也就是说,该模型已经学会了很好地检测0,但它在-1和1类上却陷入了困境。
需要一个不同的分数。对于两个不平衡的班级,这个指标很好--https://en.wikipedia.org/wiki/Cohen's_kappa,但在我们的案例中,有三个不平衡的班级,而不是两个,是否有一个类似于3的Kappa?
如果你问我,我可能无法明确回答,有非常多的事情是可以预测的,每件事都是不同的。但平均来说,大约有60-65%。
有趣的是,你能否更详细地描述一下...
只是我现在从事的是完全不同的预测领域,我不能分散,所以不能在这个三月的日期和你一起做实验,但阅读和观察非常有趣,请多写点...
事实证明,0类与其他类相比非常不平衡,仅在数量上就有60%和74%。也就是说,该模型已经学会了很好地检测0,但它已经放弃了-1和1类。
当我为U型车训练我的随机森林时,我遇到了同样的问题,U型车自然比非U型车少得多。我做的树越多,MO在转弯类上的得分越多,而更多地集中在非转弯类上。
在caret 中,有几种平衡类的方法,但所有这些方法都是微不足道的--要么将观测值较少的类加倍,使所有类的观测值之和变得相同,要么从观测值较多的类中删除不必要的观测值。
没有一种方法比完全不做平衡更有利可图(但这只是在我的情况下)。
有趣的是,你能否更详细地描述一下...
我现在只是在一个完全不同的预测领域工作,我不能迷失方向,这就是为什么我不能和你在这个马特上做实验的原因,但阅读和观察非常有趣,请多写点...
我在训练调头时也遇到了同样的问题,调头当然比不调头要少得多。我做的树越多,MO就越多地被U-turn类困住,而更多地集中在非turn类上。
在caret 中,有几种平衡类的方法,但所有这些方法都是微不足道的--要么将观测值较少的类加倍,使所有类的观测值之和变得相同,要么从观测值较多的类中删除不必要的观测值。
没有一种方法比完全不做平衡更有利可图(但这只是在我的情况下)。
一切都是可以协商的。我建议做期货,例如Si、RI、BR 等,一般来说是流动性最好的。我建议信号(-1,0,1)(short,cash,long)作为一个结果,信号比概率毫不含糊,不被MM 作为订单扭曲。后期处理、标志和目标由你决定,或者说是书。
经过一些思考,我得出一个结论,至少应该增加一个玻璃{price:vol,...||...,price:vol },因为它是每秒最后一个,对于每个预测的工具,那么delta是不需要的,bid,ask也是,它是IMHO强制的,如果用每秒的磁带分割量和OM的转移,或多或少的信息,那么对于玻璃一个delta是非常少的,至少需要看到不同的 "板块 "分布,等等,这就足够作为一个开始。添加一个翻滚器,并发布一个训练数据集,几天后,我们就可以玩了。:)
最终确定了斯科特的Pi 公制https://en.wikipedia.org/wiki/Scott's_Pi
这是我的估算结果,我在前91%的线条上训练了模型,然后在最后剩下的数据上做了前测(backtest : fronttest = 10:1的比例)。
表中的 "class_0_rate "列--0级与-1和1级的比率,这样我就可以在Excel中筛选出那些该值过高的结果。
最后两列是Scott的Pi指标,用于训练和测试,数值将从-1到1;其中0=结果是随机的,模型是无用的,1=一切正常。负面的结果是不好的,反相关,你可以试着把预测结果倒过来。在交易与预测完全相反的两个类别时,逆向相关有时也能正常工作。但有三个类,就很难找到相反的东西,每个类都有两个相反的值,在这种情况下,负值也是不好的。
我认为我们需要选择在回测和前测中出价(或要价)预测值相似且高的货币,例如xagusd。虽然在0到1的范围内,0.18的分数是很小的。而在真正的交易中,提前一格的预测也是不好的。一般来说,有一个结果,但它不适用 :)
Scott's Pi的R代码
if(length(act) != length(pred)){
stop("different length")
}
n_observ <- length(act)
all_levels <- unique(c(act,pred))
n_levels <- length(all_levels)
marginal_matrix <- matrix(NA, ncol=n_levels, nrow=n_levels)
colnames(marginal_matrix) <- all_levels
rownames(marginal_matrix) <- all_levels
for(i in 1:n_levels){
for(j in 1:n_levels){
marginal_matrix[i,j] <- sum((act==all_levels[i]) & (pred==all_levels[j]))
}
}
diagSum <- 0
for(i in 1:n_levels){
diagSum <- diagSum + marginal_matrix[i,i]
}
diagSum <- diagSum / n_observ
marginalSum <- 0
for(i in 1:n_levels){
marginalSum <- marginalSum + ((sum(marginal_matrix[i,]) + sum(marginal_matrix[,i]))/n_observ/2)^2
}
p <- marginalSum
return((diagSum - p)/(1-p))
}
最终确定了斯科特的Pi 公制https://en.wikipedia.org/wiki/Scott's_Pi
这是我的估算结果,我在前91%的线路上训练了模型,然后在最后剩下的数据上做了前测(backtest : fronttest = 10:1的比例)。
表中的 "class_0_rate "列--0级与-1和1级的比率,这样我就可以在Excel中筛选出这个数值过高的结果。
最后两列是Scott的Pi指标,用于训练和测试,数值将从-1到1;其中0=结果是随机的,模型是无用的,1=一切正常。负面的结果是不好的,反相关,你可以试着把预测结果倒过来。在交易与预测完全相反的两个类别时,逆向相关有时也能正常工作。但是有三个班级,就很难找到相反的,每个班级都有两个相反的,在这种情况下,负面的结果也是不好的。
我认为我们需要选择在回测和前测中出价(或要价)预测值相似且高的货币,例如xagusd。虽然在0到1的范围内,0.18的分数是很小的。而在真正的交易中,提前一格的预测也是不好的。一般来说,有一个结果,但它不适用 :)
Scott's Pi的R代码
if(length(act) != length(pred)){
stop("different length")
}
n_observ <- length(act)
all_levels <- unique(c(act,pred))
n_levels <- length(all_levels)
marginal_matrix <- matrix(NA, ncol=n_levels, nrow=n_levels)
colnames(marginal_matrix) <- all_levels
rownames(marginal_matrix) <- all_levels
for(i in 1:n_levels){
for(j in 1:n_levels){
marginal_matrix[i,j] <- sum((act==all_levels[i]) & (pred==all_levels[j]))
}
}
diagSum <- 0
for(i in 1:n_levels){
diagSum <- diagSum + marginal_matrix[i,i]
}
diagSum <- diagSum / n_observ
marginalSum <- 0
for(i in 1:n_levels){
marginalSum <- marginalSum + ((sum(marginal_matrix[i,]) + sum(marginal_matrix[,i]))/n_observ/2)^2
}
p <- marginalSum
return((diagSum - p)/(1-p))
}