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

 
Maxim Dmitrievsky:
那么,你可以采取5-15的增量,它将和

马特的期望值超过30点只在增量上,我们在哪里可以观察到?在2014-2018年的样本上进行培训,在2020年工作--这在增量上是什么?

Maxim Dmitrievsky:
或者先按相关性剔除所有的预测者(几秒钟的时间),然后再抽取剩下的5-15个(如果你从强度上得到这么多的话)。

这就是计量经济学 如何为你节省时间。

想尝试做得比你更好吗?我将给你一个样本--它不是一个大的样本。

 
马克西姆-德米特里耶夫斯基

我一直在考虑死亡策略...

如果我预测未来很长一段时间的市场特征呢? 然后用预测的特征重建一个系列,并从中学习,然后用这个模型交易市场......你有没有尝试过这个方向的思考?


例如,预测市场的光谱。

就像 "我们不可能知道未来,但我们可以想象它"。
 
Aleksey Vyazmikin:

因此,我做了第一阶段的研究

有多少电力进入....

 
mytarmailS:

有多少能量已经进入....

这是给所有怀疑论者的礼物。

 
Maxim Dmitrievsky:

或者先按相关性筛选出所有的预测者(几秒钟的时间),然后再抽取剩下的5-15个(如果你能得到这么多的话)。

但我会检查你的想法 - 这对我来说并不难。那么我应该采取什么相关系数呢?以及如何从剩下的预测因素中选择5-15个--具体写出来--也许如何在那里测量它们并安排它们?

 
mytarmailS:

有多少权力已经消失....

与其数别人的钱,你能给我一个关于R的提示吗?

这里有一个脚本,应该可以计算出相关性并删除相关的列。

library('caret')

df1 = read.csv("F:\\FX\\Открытие Брокер_Demo\\MQL5\\Files\\Proboy_236_TP_4_SL_4\\Si\\Setup\\train.csv", header = TRUE, sep = ";",dec = ".")

df1 <- df1[, ! colnames(df1)  %in% 
           c("Target_100_Buy",
             "Target_100_Sell",
             "Target_P",
             "Time",
             "Target_100")  ] # удаляем не нужные колонки
print (df1)
df2 = cor(df1)
hc = findCorrelation(df2, cutoff=0.3) # putt any value as a "cutoff" 
hc = sort(hc)
reduced_Data = df1[,-c(hc)]
print (reduced_Data)
write.table(reduced_Data, file = "F:\\FX\\Открытие Брокер_Demo\\MQL5\\Files\\Proboy_236_TP_4_SL_4\\Si\\Setup\\outfile_03.csv",
            append = FALSE, quote = FALSE, sep=";",
            eol = "\n", na = "NA", dec = ".", row.names = FALSE,
            col.names = TRUE, qmethod = c("escape", "double"),
            fileEncoding = "")

而且有两个问题。

1.如何使这段代码在一个for循环中执行,即我需要增加系数并改变文件名,用系数索引来保存,或在循环中产生的另一个目录。

2.我正在删除用于计算的辅助列,我如何将它们复制到删除相关列后出现的表格(df2)中。

谢谢你的答复。

 
Aleksey Vyazmikin:

与其数别人的钱,你能给我一些关于R的建议吗?

我做了一个脚本,应该可以计算出相关性并删除相关的列。

而且有两个问题。

1.我如何使这段代码在for循环中执行,即我需要增加系数并改变文件名,用系数索引来保存,或在循环中生成的另一个目录。

2.我正在删除用于计算的辅助列,我如何将它们复制到删除相关列后出现的表格(df2)中。

谢谢你的答复。

对问题(2)的回答

library('caret')
#df1 загруженная дата
df1 <- as.data.frame(matrix(nrow = 100,ncol = 10,data = sample(1:10,1000,replace = T)))
# head(df1)

not <- c("V1","V2","V3") #  имена переменных которые нам НЕ нужны для корреляции

df2 <-  cor(     df1[, ! colnames(df1)  %in%  not]      )  
# head(df2)

not.need <- findCorrelation(df2, cutoff=0.1) # putt any value as a "cutoff" 
not.need.nms <- colnames(df2[,not.need])  # получаем имена переменных что не прошли коррел тест
# head(not.need.nms)

# получаем изначальную  df1 только без признаков что не прошли отбор
reduced_Data <- df1[, ! colnames(df1)  %in%  not.need.nms]
# head(reduced_Data)


现在你能不能写一个函数,做同样的事情,但看起来更整齐。

get.findCorrelation <- function(data , not.used.colums , cor.coef){
library('caret')
df2 <-  cor(     data[, ! colnames(data)  %in%  not.used.colums])  
not.need <- findCorrelation(df2, cutoff=cor.coef) 
not.need.nms <- colnames(df2[,not.need])  # получаем имена переменных что не прошли коррел тест
reduced_Data <- data[, ! colnames(data)  %in%  not.need.nms]
return(reduced_Data)}

gf <- get.findCorrelation(data = df1 , 
                          not.used.colums = c("V1","V2","V3"),
                          cor.coef = 0.1)

一个文件被送入输入

data = df1
指定不会被用于Corel分析的列

not.used.colums = c("V1","V2","V3")

好了,从findCorrelation函数中调整korel

cor.coef = 0.1
输出是df1,但没有垃圾特征
 

现在,第一个问题的答案是

way <- "F:\\FX\\Открытие Брокер_Demo\\MQL5\\Files\\Proboy_236_TP_4_SL_4\\Si\\Setup\\"

cor.test.range <- seq(from = 0.1,to = 0.7,by = 0.1)  #  диапазон перебора в коеф корр

for(i in 1:length(cor.test.range)){
  
  reduced_Data <- get.findCorrelation(data = df1 , 
                      not.used.colums = c("V1","V2","V3"),
                      cor.coef = cor.test.range[i] )
  
  file.name <- paste0("test.with.cor_" , cor.test.range[i] , ".csv")
  final.way <- paste0(way , file.name)
  
  
  write.csv2(x = reduced_Data,file = final.way,row.names = F)  #  возможно это лучше
  
  #  write.table(reduced_Data, file = final.way,
  #              append = FALSE, quote = FALSE, sep=";",
  #              eol = "\n", na = "NA", dec = ".", row.names = FALSE,
  #              col.names = TRUE, qmethod = c("escape", "double"),
  #              fileEncoding = "")
}
 
阿列克谢-维亚兹米 金。

然后我做了一个固定调谐的量子表训练,训练的样本是--60%测试--20%考试--20%与

在你看来,你不是在根据最成功的测试样本调整你的模型吗?
我自己也打过几次成功的试验地,认为--这里是圣杯)))。而在我将这些网站向前或向后转移了几个月之后--一切都变得清晰了,模型是错误的,预测因素也是错误的,我在这些网站上赔了钱。

我完全转而分析关于交叉估值或估值远期的模型。我顶多看到50%。
医生在他最后的一篇文章中也提到了交叉验证。

 
YURY_PROFIT

马克西姆,和我一起战斗的程序员,在回测中有一个机器学习的专家顾问--刚开了个头,在正向测试中,它也持续了一个半月,有体面的盈利统计,现在它甚至没有暂停就被甩掉了)

YURY_PROFIT

请给我提供一个机器学习EA的例子,该EA在真实市场上至少工作了3个月而没有重新培训,并获得了利润。

那么,持续的再培训有什么问题呢?这个"没有再培训 " 的真空状态是什么?如果我在外汇上工作一天,它就已经是一个圣杯了,我可以在每一次打勾时 重新训练,这是一个技术问题。