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

 
mytarmailS #:
我记得,但这是一个拟合误差,我的意思是,跟踪采样......
下一根蜡烛的测试误差是多少?

这是接下来 300 个柱状图的误差。在每个柱状图上生成预测因子,然后过滤,训练模型,预测下一个柱状图。

 
Maxim Dmitrievsky #:
这有一定道理,因为模型的寿命往往不长。但我希望能找到不需要不断重新训练的方案,至少间隔一年以上,而且模型退化缓慢,易于跟踪 。

我不同意这种说法。

市场是变化的,而变化的时间间隔是不同的,相互独立。

我以前可以编写 3 到 6 个月的 EA。我在周末对它们进行优化。然后它们就死了,而且死的时间很短,足以耗尽存款。但没有足够的时间进行优化。最后,情况变得更糟:一段时间后,发现有一个边界,离开这个边界就无法选择参数。

市场变化的时间更长:5-7 年。但结果与月度周期相同。机器人将永远死亡。我将在私信中发送一个特定的市场机器人--在这里你不能发送。

因此,"样本外 "的整个概念都是垃圾。机器人仍然有生命周期,但我们不知道有多长:3个月还是7年。当机器人死亡时,我们会将其与另一个提款机混淆,从而损失我们的存款。

理想情况下,应该在下一根蜡烛上重新训练机器人。如果我们在 ticks 上工作,那么就在下一个 tick 上,在 H1 上,那么就在下一个小时到来时。

 
Valeriy Yastremskiy #:

我并不反对在每个单杠上进行训练,甚至可以在非固定的蜱上进行训练。我不完全理解培训结构。EA 逻辑是一个单独的训练,还是每个条形图训练的一部分?它就像第一个训练的尾部,有多少个尾部,或者训练的阶段?

在每个条形图上,一切都是新的

 
Maxim Dmitrievsky #:

还有更多木质的因果推理模型,还没来得及弄明白

从实践中,有很多解释:

- 环境会影响研究对象(当实验室条件下一切都相关时,在自然条件下就会出现其他无法计算的依赖关系--最微不足道的就是人为因素或拥挤效应)--RL 比 ML 更好,但也需要建模,而且并非一切都能考虑在内....。
- 当涉及 2 个相关值时,我们只能推断出什么依赖于什么,而不能反过来推断(结果依赖于因 素或因素依赖于结果)
- 中介、调节、相互作用、依赖关系干扰过程(通常甚至无法通过实验进行追踪)
- 一般来说,重要的是要规划实验(能够绘制依赖关系图,确切地说,是逻辑的、理论的依赖关系图是很 有用的),以便规划实验,实验结果可以通过 ML 或更简单的方法进行处理....................................
,即按什么顺序和什么因素来确定,以便得到被调查因素的条件分布,或两个被调查因素的联合影响,将得到的结果与无条件分布进行比较--提出 "更好--不是更好"、"影响--不影响 "的假设,从统计学角度进行确认或反驳,并转入现场条件下的测试....。就能得到新的因果推论)。

在 ML RF 中,我不知道他们是如何处理相关矩阵的(尤其是第 2 点值得商榷)。

许多人正是因为第 2 点而批评概率模型,并开始颂扬因果推断,声称他们已经考虑到了其他因素的影响....。但从算法上讲,虚拟机如何解决这个问题(推理的 另一个同义词)是个未知数(至少对我来说是这样)--我想说的是 "什么都没有"。

对我来说,因果推理 本质上就是推理,而对中介、调节、相互作用的研究是另一个大课题,也是一个品味问题(即勾勒出这样或那样的逻辑图)--也是一种设计(实验)。

仅仅在市场上有一个 BP - 您无法测试关于依赖关系的假设......而在合理的实验设置下,一个 OLS 或 ANOVA 就足够了(但您不必肯定地把筹码单列出来)。

?? ...因此,除了逻辑和理论知识之外,我不知道将某一特征归因于某一因素或某一结果(通过木质模型或其他方法)的算法 ....但如今,我们有各种各样的东西在其他词语下做广告--我不知道你是在什么情况下遇到因果推理

[删除]  
JeeyCi #:

从实践中可以得出许多解释:
- 环境影响测试者(当实验室条件下一切都相关时,在自然条件下就会出现其他无法估量的依存关系--最普通的依存关系--人为因素或拥挤效应) - RL 比 ML 更好,但也有必要建立模型,而且并非一切都能考虑在内....。
- 当涉及到 2 个相关值时,只能推断出什么依赖于什么,而不能反过来推断(结果依赖于因 素或因素依赖于结果)
- 中介、调节、相互作用、依赖关系干扰过程(通常甚至无法通过实验进行追踪)
- 一般来说,重要的是要规划实验(能够绘制依赖关系图是非常有用的,完全符合逻辑的、 理论上的依赖关系图),以便规划实验,实验结果可由 ML 处理。...
,即按什么顺序和什么因素进行固定,以获得被调查因素的条件分布,或两个被调查因素的共同影响,将获得的结果与无条件分布进行比较--提出 "更好--不好 "的假设,从统计学角度证实或反驳,转入实地条件下的测试......并进行新的因果推论)。

在 ML RF 中,我不知道他们是如何处理相关矩阵的(尤其是第 2 点值得商榷)。

许多人正是因为第 2 点而批评概率模型,并开始颂扬因果推理,声称他们已经考虑到了其他因素的影响....。但从算法上讲,虚拟机是如何解决这个问题的(这是推理的另一个同义词),我们不得而知(至少对我来说是这样)--我只能说 "一无所获"。

对我来说,因果推理 本质上就是推理,而对中介、调节、相互作用的研究则是另一个大课题,也是一个品味问题(即勾勒出一个符合逻辑的图形)--也是一种设计(实验)。

仅仅在市场上拥有 1 个 BP - 您无法真正测试关于依赖关系的假设......而通过合理的实验,一个 OLS 或 LDA 就足够了(但您不必肯定地分配功能)。

?? ...因此,除了逻辑和理论知识之外,我不知道将特征归因于因素或结果(通过木质模型或其他方法)的算法.....但如今,我们有各种各样的东西在其他词语下做广告--我不知道你在什么情况下遇到了因果推理

我看到一些Uber lib 说他们改进了流程。

以及相关性!=因果关系的一般解释,并试图用不同的方法来解决这个问题,从 A/B 开始,但我对此并不了解。

他们有一些奇怪的定义,你没有瓶子是无法理解的,你必须用不必要的词来填充你的脑袋。

Causal Inference from Observational Data, или как провести А/В-тест без А/В-теста.
Causal Inference from Observational Data, или как провести А/В-тест без А/В-теста.
  • Stats&Data ninja
  • koch-kir.medium.com
Привет дата-ниндзя👋! Первый вопрос, который ты задашь — зачем вообще это нужно ❗️❓ Предположим, ты исследуешь причинно-следственную связь между двумя величинами (Y зависит от X). И тогда, изменяя X, мы можем быть уверены что изменяем Y, причем уверены мы не только в самом факте изменения, но и в его направлении и величине (magnitude). Конечно...
 
mytarmailS #:

顺便提一下,我想知道其他模型将如何工作,它们是否能够在 不出错 的情况下创建mach() 函数

在没有任何 GP 调整的情况下对不同模型进行了简单训练

1 0.002392       форест
3 0.005348 екстр. буст.
4 0.024160     нейронка
2 0.037200         МГУА

结论:模型无法创建函数,只能以一定的精度近似函数,因此创建特征和选择特征仍然很重要。

set.seed(125)
dat <- round(rnorm(100000),2)
X <- matrix(dat,ncol = 5)
Y <- apply(X,1,max)
colnames(X) <- paste0("x",1:5)

tr <- 1:19950
ts <- 19951:20000

#///////////////

library(randomForest)
rf <- randomForest(Y[tr]~.,X[tr,],ntree=100)
pr <- predict(rf,X[ts,])

cb <- round(  cbind(pred=pr,actual=Y[ts])  ,2)
matplot(cb,t="l",col=c(1,2),lty=1,lwd=c(3,1),main="RF regresion")
rf_MSE <- mean((cb[,1] - cb[,2])^2)  #  rf MSE 0.002392

#///////////////

library(GMDHreg)
gmdh <- gmdh.mia(X = X[1:10000,],
                 y = Y[1:10000],
                 x.test = X[10000:19951,] ,
                 y.test = Y[10000:19951], prune = 25,criteria = "test")
pr <- predict(gmdh,X[ts,])

cb <- round(  cbind(pred=pr,actual=Y[ts])  ,2)
matplot(cb,t="l",col=c(1,2),lty=1,lwd=c(3,1),main="gmdh regresion")
gmdh_MSE <- mean((cb[,1] - cb[,2])^2)  #  gmdh MSE 0.038692

#///////////////

library(xgboost)
xgb_train = xgb.DMatrix(data = X[1:10000,], label = Y[1:10000])
xgb_test =  xgb.DMatrix(data = X[10000:19951,], label = Y[10000:19951])

watchlist = list(train=xgb_train, test=xgb_test)
xgb = xgb.train(data = xgb_train, max.depth = 3, watchlist=watchlist, nrounds = 1750)

pr <- predict(xgb,X[ts,])
cb <- round(  cbind(pred=pr,actual=Y[ts])  ,2)
matplot(cb,t="l",col=c(1,2),lty=1,lwd=c(3,1),main="xgb regresion")
xgb_MSE <- mean((cb[,1] - cb[,2])^2)  #  xgb MSE 0.005348

#///////////////

library(automl)
nn <- automl_train(Xref = X[tr,], Yref = Y[tr],
                   autopar = list(numiterations = 10,
                                  psopartpopsize = 10),
                   hpar = list(numiterations = 10))

pr <- automl::automl_predict(nn,X[ts,])

cb <- round(  cbind(pred=pr,actual=Y[ts])  ,2)
matplot(cb,t="l",col=c(1,2),lty=1,lwd=c(3,1),main="nn regresion")
nn_MSE <- mean((cb[,1] - cb[,2])^2)  #  nn MSE 0.023828

#///////////////

 res <- c(rf_MSE , gmdh_MSE , xgb_MSE , nn_MSE)
nms <- c("форест","МГУА","екстр. буст.","нейронка")
m <- cbind.data.frame(res,nms)
m <- m[order(m$res),]
m
barplot(m$res,names.arg = m$nms)
 
СанСаныч Фоменко #:

这是接下来 300 个条形图的误差。在每个条形图中,先形成预测因子,然后进行过滤,训练模型并预测下一个条形图。

我晚上会尝试做一些类似的事情,但我做过很多这样的再训练机器人,它们能给出这样的分数,我简直不敢相信....。

我们对什么是测试样本的概念/理解存在混淆,正因为如此,我们在谈论不同的事情时,把它称作同一件事。

 
Aleksey Vyazmikin #:

任务队列已经卸载了一些 - 可以运行脚本了。我运行它时出现了错误。

我的理解是否正确,即程序需要旧版本的 R 4.0?

我搜索了旧版本,但没有找到。可怕的不兼容性当然令人厌恶。

这是错的。如果软件包是为不同版本构建的,就会有警告。我们在说什么不兼容?

randomForest v.4.7-1.1 并没有在任何地方和起重机中出现。R 4.1.3

 
Renat Fatkhullin #:

请注意,从第 3440 版开始,我们将发布 AVX 版本的软件:https://www.mql5.com/ru/forum/432624/page5#comment_42117241。

下一步是将数学装置重写为矢量和 OpenCL 函数,这样无需安装 CUDA 等额外库即可实现十倍加速。

这真是向前迈进了一大步。需要重写指标和专家?

 
СанСаныч Фоменко #:

我不同意这种说法。

市场在变化,而变化的时间间隔是不同的,相互独立。

我曾经可以编写 3 至 6 个月的智能交易系统。我在周末对它们进行优化。然后它们就死了,而且死的时间很短,足以耗尽存款。但没有足够的时间进行优化。最后,情况变得更糟:一段时间后,我发现存在一个边界,离开这个边界就无法选择参数。

市场变化的时间更长:5-7 年。但结果与月度周期相同。机器人将永远死亡。我将在私信中发送市场上的具体机器人 - 您不能在这里发送。

因此,"样本过期 "的整个概念都是垃圾。机器人仍有生命周期,但我们不知道有多长:3个月还是7年。当机器人死亡时,我们会将其与另一次缩水相混淆,从而耗尽我们的资金。

理想情况下,应该在下一根蜡烛上重新训练机器人。如果我们在 ticks 上工作,那么就在下一个 tick 上,在 H1 上,那么就在下一个小时到来时。

您是否将您的算法与 KNN(或对其进行的某些修改)进行过比较?如果有的话,我们会很感兴趣。