Ticarette makine öğrenimi: teori, pratik, ticaret ve daha fazlası - sayfa 2425

 
Maksim Dmitrievski :
Peki, şimdi, ancak 5-15 adetlik artışlarla alabilirsiniz, göstergeler daha da kötü olmayacak

Sadece artışlarla 30 puanlık mat beklentisi, nerede görebilirsiniz? 2014-2018 örneği üzerinde çalışmak ve 2020'de çalışmak - bu, sonlandırmalarda nerede?

Maksim Dmitrievski :
Veya tüm tahmin edicileri önce korelasyonla (saniyeler içinde) ayıklayın ve ardından kalan 5-15'i alın (olabildiğince çok alırsanız)

Ekonometri bu şekilde size zaman kazandırır

Ortaya çıktığından daha iyi hale getirmeye çalışmak ister misin? Örneği atacağım - büyük değil.

 
Maksim Dmitrievski :

Burada stratejilerin ölmesini düşündüm ...

Pazarın özelliklerini uzun bir süre önceden tahmin edersek ne olur? daha sonra öngörülen özelliklere sahip bir diziyi geri yükleyin ve ondan öğrenin ve ardından bu modeli piyasada işlem yapın .. bu yönde düşünmeye çalıştınız mı?


Örneğin, pazarın spektrumunu tahmin edin ...

"Geleceği bilemeyiz ama hayal edebiliriz" gibi
 
Alexey Vyazmikin :

Böylece, araştırmanın ilk aşamasını yaptım

Ne kadar enerji harcadı...

 
mytarmailS :

Ne kadar enerji harcadı...

Bu, tüm şüphecilere bir hediyedir.

 
Maksim Dmitrievski :

Veya tüm tahmin edicileri önce korelasyonla (saniyeler içinde) ayıklayın ve ardından kalan 5-15'i alın (olabildiğince çok alırsanız)

Ama fikrini kontrol edeceğim - benim için zor değil. Peki alınacak korelasyon katsayısı nedir? Ve kalan tahmin edicilerden 5-15'i nasıl seçilir - özellikle yazın - belki onları orada nasıl ölçebilir ve düzenleyebilirim?

 
mytarmailS :

Ne kadar enerji harcadı...

Başkalarının parasını saymak yerine bana R'den bahseder misin?

Burada korelasyonu hesaplaması ve ilişkili sütunları kaldırması gereken bir komut dosyası yaptım.

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 = "" )

Ve iki soru var:

1. Bu kodun for döngüsünde yürütülmesi nasıl yapılır, yani, katsayıyı artırmam ve katsayı indeksiyle kaydedilecek dosyanın adını veya döngüde oluşturulan başka bir dizine değiştirmem gerekiyor.

2. Hesaplamalar için yardımcı sütunları kaldırıyorum, ilişkili sütunları sildikten sonra bunları görünen tabloya (df2) nasıl kopyalayacağım.

Cevap için teşekkürler.

 
Alexey Vyazmikin :

Başkalarının parasını saymak yerine bana R'den bahseder misin?

Burada korelasyonu hesaplaması ve ilişkili sütunları kaldırması gereken bir komut dosyası yaptım.

Ve iki soru var:

1. Bu kodun for döngüsünde yürütülmesi nasıl yapılır, yani, katsayıyı artırmam ve katsayı indeksiyle kaydedilecek dosyanın adını veya döngüde oluşturulan başka bir dizine değiştirmem gerekiyor.

2. Hesaplamalar için yardımcı sütunları kaldırıyorum, ilişkili sütunları sildikten sonra bunları görünen tabloya (df2) nasıl kopyalayacağım.

Cevap için teşekkürler.

sorunun cevabı (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)


şimdi aynısını yapan ancak daha temiz görünen bir işlev yazabilirsiniz.

 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 )

dosya girildi

data = df1
çekirdek analiz için kullanılmayacak sütunları belirtin

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

iyi, coef ayarı. findCorrelation işlevinden korel

cor.coef = 0.1
çıktıda df1 alıyoruz ancak çöp işaretleri olmadan
 

şimdi ilk sorunun cevabı

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 = "" )
}
 
Alexey Vyazmikin :

Daha sonra, numune treninde kuantum tablosunun sabit bir ayarıyla eğitim yaptım - %60 test - %20 sınav - %20 ile

Modelinizi testteki en başarılı sürüme ayarladığınızı düşünmüyor musunuz?
Ben kendim birkaç kez başarılı test sitelerine gittim ve düşündüm - işte Kase ))). Ve birkaç ay boyunca segmentleri ileri veya geri kaydırdıktan sonra, her şey netleşti ve model artık aynı değildi ve tahminciler aynı değildi, ancak bunlarda bir tahliye vardı.

Çapraz doğrulama veya ileriye doğru yürüme konusunda tamamen model analizine geçtim. En iyi ihtimalle %50 50 gördüm.
Son mesajlardan birindeki bağlantı noktası da çapraz doğrulama ile ilgiliydi.

 
YURY_PROFIT :

Burada tartıştığım programcı Maxim'in geriye dönük testler konusunda bir makine öğrenme danışmanı var - sadece ateş edin, ileri testlerde bir buçuk ay sürdü, ayrıca iyi karlı istatistiklerle, şimdi duraklamadan bile birleşiyor))

YURY_PROFIT :

Lütfen, gerçek piyasada en az 3 ay boyunca yeniden eğitim almadan kârlı bir şekilde çalışan, karlı bir makine öğrenmesi Uzman Danışmanına bir örnek verin.

Peki, sürekli olarak yeniden eğitim almanın sorunu tam olarak nedir? " Yeniden eğitim olmadan" vakum koşulları nelerdir? İleri en az bir gün çalışırsa, bu zaten bir kâsedir ve en azından her keneyi yeniden eğitebilirsiniz, bu bir teknoloji meselesidir.