트레이딩의 머신러닝: 이론, 모델, 실전 및 알고리즘 트레이딩 - 페이지 2633

 
Maxim Dmitrievsky # :

시장에서 봇을 다운로드하고 MT5 테스터에서 실행하면 모든 거래 및 기타 정보가 포함된 보고서를 저장할 수 있는 옵션이 있습니다.

테스트 실행 및 csv에 거래 업로드를 포함하여 자동화 가능 — https://www.mql5.com/ru/code/26132

MultiTester
MultiTester
  • www.mql5.com
Множественные прогоны/оптимизации в Тестере.
 
mytarmailS # :

시장에서 금에 대한 하나의 전략을 절약))

내 테스터의 자본 곡선

더 잘 보려면 tslab에 올려 놓으십시오.

모든 것이 길을 따라 일치합니다.


거래를 살펴보았다


그 과정에서 이것은 초과 체류와 이해할 수 없는 거래 알고리즘을 가진 수동 거래자입니다.

물론 숲은 아무것도 인식하지 못했지만 흥미롭고 유익했습니다)))

글쎄, 당신은 시간 프레임을 읽고 2개의 모델을 훈련해야 합니다. 하나는 거래용이고 다른 하나는 타이밍용입니다. 또는 다중 클래스. 봇에 대한 설명을 보십시오. 모든 것이 잘못되어 작동하지 않을 수도 있습니다
 
Andrey Khatimlianskii # :

테스트 실행 및 csv에 거래 업로드를 포함하여 자동화 가능 — https://www.mql5.com/ru/code/26132

네 감사합니다
 
Dmytryi Voitukhov # :

유용할 수 있습니다... 나는 재발 없이 다대다를 가지고 있습니다. 그리고 컨볼루션 레이어가 없습니다. 그리고 뉴런의 기전을 분석한 후 이 모델을 선택했습니다.   여기서 우리는 공통분모를 찾고 있습니까? ... 인수.

주장해야 할 것이 무엇인지 이해하지 못합니다.
 
Aleksey Nikolayev # :

감사합니다. 살펴보겠습니다.

그래도 순서가 중요합니다. 예를 들어 항상 증분을 무작위로 혼합하여 SB를 얻을 수 있습니다.

나는 또한 당신이 순차 패턴 마이닝과 거기에서 발생하는 시퀀스 정렬 문제에 대해 쓴 적이 있다는 것을 기억했습니다. 이것도 문제를 푸는 방법 중 하나인 것 같습니다. 그러나 시퀀스가 동일한 클래스에 속한다는 사실이 반드시 유사하다는 것을 의미하지는 않습니다.

apriori_cspade <- function(apri_supp= 0.1 ,arpi_conf= 0.1 , liS , 
                             maxgap= NULL , maxlen= 5 ,rhs= NULL ,
                             apri_maxlen= 2 ,apri_minlen= 2 ,verbose=T,
                             redundant.rules = F, cspade_supp= 0.5 , cspade_conf= 0.5 ){
    
    
    
     library (arules)
    
    
    targ <- NULL
     if (!is.null(rhs))  {
      targ <- list(rhs=rhs, default = "lhs" )
      apri  <- apriori(liS, parameter=list(support=apri_supp, 
                                          confidence=arpi_conf,
                                          minlen=apri_minlen,
                                          maxlen=apri_maxlen), 
                                          appearance = targ,
                             control = list(verbose=verbose))
    }
   
    
     if (is.null(rhs)){
      apri <- apriori(liS, parameter=list(support=apri_supp, 
                                          confidence=arpi_conf, 
                                          target= "rules" ,
                                          minlen=apri_minlen,
                                          maxlen=apri_maxlen),
                              control = list(verbose=verbose))
    }
    
    ar <- as (apri, "data.frame" )
    ar <- as .character(ar$rules)
    ar <- gsub( "[{}>]" , "" ,ar)
    ar <- unlist(stringr::str_split(ar ,pattern = "=" ))
    ar <- ar[!duplicated(ar)]
    ar <- stringr::str_trim(ar)
     for (i in 1 :length(liS))   liS[[i]] <-  liS[[i]]  [ liS[[i]]  %in% ar ]
    
    
    
    liS <- liS[  unlist(lapply(liS ,function(x) length(x)> 2 ))  ]
    
    
     if (  length(liS) <= 0 ) return ( NULL )
    
    
    
    
    
     library (arulesSequences)
    cspade.form <- as .data.frame( matrix (ncol = 4 ,nrow = 0 ))
     for (i in 1 :length(liS)){
      
      Q <- liS[[i]]
      cspade.form <- rbind(cspade.form,
                           cbind.data.frame( ID = rep(i,length(Q)),
                                             evID = 1 :length(Q),
                                             SIZE = rep( 1 ,length(Q)),
                                             ITEM = Q))}
    
    
    write.table(cspade.form , file = "D:\\R2\\arulesSeq\\seq\\temp.txt" ,
                append = F,sep = "," ,row.names = F,col.names = F)
    
    x <- read_baskets(con = "D:\\R2\\arulesSeq\\seq\\temp.txt" ,sep = "," ,
                      info = c( "sequenceID" , "eventID" , "SIZE" ))
    
    mod <- cspade(x, parameter=list(support = cspade_supp,
                                    maxlen = maxlen,
                                    maxgap=maxgap),
                                  control=list(verbose = verbose))
    gc(reset = T,verbose = F)
    
    rules <- ruleInduction(mod, confidence = cspade_conf, control=list(verbose = verbose))
     if (redundant.rules) rules <- rules[!is.redundant(rules)]
    
     final <- as (rules, "data.frame" )
    
     # parse rules
    R <- final $rule
    R <- gsub( "[\"<>{}]" , "" ,R)
    R <- stringr::str_split(gsub( "=" , "," ,R) , pattern = "," )
    R <- lapply(R,trimws)
    
    li <- list(rules= final , parse.rules=R)
    
     return (li)}

데이터

 set .seed( 123 )
>  li <- list()
>   for (i in 1 : 100 ){
+    li <- append(li,  
+                 list(c(letters[sample( 1 : 10 ,sample( 5 : 10 , 1 ))] ,   sample(c( "buy" , "sell" ), 1 )))
+    )}
>  
>  head(li)
[[ 1 ]]
[ 1 ] "c"      "b"      "f"      "j"      "e"      "d"      "i"      "sell"

[[ 2 ]]
[ 1 ] "j"      "e"      "c"      "h"      "a"      "sell"

[[ 3 ]]
[ 1 ] "i"    "c"    "h"    "b"    "g"    "buy"

[[ 4 ]]
 [ 1 ] "c"    "d"    "f"    "a"    "j"    "e"    "i"    "h"    "b"    "g"    "buy"


함수를 실행하고 레이블로 이어지는 시퀀스를 찾습니다.

ac <- apriori_cspade(liS = li,apri_supp = 0.1 ,
                      arpi_conf = 0.5 ,
                      rhs = c( "buy" , "sell" ),cspade_supp = 0.1 ,redundant.rules = T)
 ac
$rules
                                rule support confidence      lift
29           < {"a"},{"f"}> => < {"j"}>     0.10  0.5000000 0.7246377
56           < {"b"},{"f"}> => < {"i"}>     0.12  0.6000000 0.8333333
80           < {"e"},{"a"}> => < {"h"}>     0.14  0.5000000 0.6666667
98           < {"i"},{"e"}> => < {"g"}>     0.11  0.5000000 0.6329114
149         < {"b"},{"e"}> => < {"d"}>     0.11  0.5789474 0.7617729
168             < {"a"}> => < {"buy"}>     0.45  0.6081081 1.0484623
169             < {"b"}> => < {"buy"}>     0.44  0.6027397 1.0392064
170             < {"c"}> => < {"buy"}>     0.47  0.6103896 1.0523959
171             < {"d"}> => < {"buy"}>     0.46  0.6052632 1.0435572
172             < {"e"}> => < {"buy"}>     0.38  0.5757576 0.9926855
173             < {"f"}> => < {"buy"}>     0.42  0.6000000 1.0344828
174             < {"g"}> => < {"buy"}>     0.47  0.5949367 1.0257529
175             < {"h"}> => < {"buy"}>     0.43  0.5733333 0.9885057
176             < {"i"}> => < {"buy"}>     0.41  0.5694444 0.9818008
177             < {"j"}> => < {"buy"}>     0.45  0.6521739 1.1244378
178       < {"j"},{"i"}> => < {"buy"}>     0.17  0.6800000 1.1724138
182       < {"j"},{"g"}> => < {"buy"}>     0.18  0.6923077 1.1936340
183       < {"g"},{"j"}> => < {"buy"}>     0.18  0.6666667 1.1494253
184       < {"j"},{"f"}> => < {"buy"}>     0.14  0.7000000 1.2068966
185       < {"f"},{"j"}> => < {"buy"}>     0.21  0.7000000 1.2068966
187       < {"e"},{"j"}> => < {"buy"}>     0.17  0.7083333 1.2212644
189       < {"d"},{"j"}> => < {"buy"}>     0.23  0.7666667 1.3218391
191       < {"c"},{"j"}> => < {"buy"}>     0.25  0.7142857 1.2315271
192       < {"j"},{"b"}> => < {"buy"}>     0.16  0.6666667 1.1494253
194       < {"j"},{"a"}> => < {"buy"}>     0.14  0.6666667 1.1494253
195       < {"a"},{"j"}> => < {"buy"}>     0.22  0.7333333 1.2643678
196 < {"g"},{"c"},{"j"}> => < {"buy"}>     0.10  1.0000000 1.7241379
197       < {"i"},{"h"}> => < {"buy"}>     0.17  0.5862069 1.0107015
198       < {"h"},{"i"}> => < {"buy"}>     0.17  0.6071429 1.0467980
204       < {"e"},{"i"}> => < {"buy"}>     0.17  0.6538462 1.1273210
207       < {"i"},{"c"}> => < {"buy"}>     0.16  0.6956522 1.1994003
210       < {"b"},{"i"}> => < {"buy"}>     0.20  0.7692308 1.3262599
212       < {"a"},{"i"}> => < {"buy"}>     0.15  0.7142857 1.2315271
213 < {"c"},{"f"},{"i"}> => < {"buy"}>     0.10  0.6666667 1.1494253


나는 "더러운"기능을 직접 작성했지만 작동하고 기능 내부의 경로를 직접 변경하고 필요한 패키지를 설치합니다

그러나 이러한 유형의 "희소한 시퀀스"를 찾는 알고리즘은 매우 탐욕스럽습니다. 알고리즘 자체가 효율적인 검색을 수행하고 C++로 작성되었다는 사실에도 불구하고 단순히 야생 크기의 검색이 있습니다.
 
mytarmailS # :

데이터


함수를 실행하고 레이블로 이어지는 시퀀스를 찾습니다.


나는 "더러운"기능을 직접 작성했지만 작동하고 기능 내부의 경로를 직접 변경하고 필요한 패키지를 설치합니다

그러나 이러한 유형의 "희소한 시퀀스"를 찾는 알고리즘은 매우 탐욕스럽습니다. 알고리즘 자체가 효율적인 검색을 수행하고 C++로 작성되었다는 사실에도 불구하고 단순히 야생 크기의 검색이 있습니다.

감사합니다. 작업에 고정하는 방법에 대해 생각하겠습니다.

 
Aleksey Nikolayev # :

감사합니다. 작업에 고정하는 방법에 대해 생각하겠습니다.

질문이 있을 것입니다. 나는 이 접근 방식에 많은 시간을 할애했기 때문에 주제에서 다소간, 또한 이 접근 방식을 가장 유망한 것으로 보호합니다.
 

하나의 접근 방식입니까 아니면 둘 다입니까?

https://habr.com/ru/post/661457/

Датацентрический и моделецентрический подходы в машинном обучении
Датацентрический и моделецентрический подходы в машинном обучении
  • 2022.04.19
  • habr.com
Код и данные — фундамент ИИ-системы. Оба эти компонента играют важную роль в разработке надёжной модели, но на каком из них следует сосредоточиться больше? В этой статье мы сравним методики, ставящие в центр данные , либо модель , и посмотрим, какая из них лучше; также мы поговорим о том, как внедрять датацентрическую инфраструктуру...
 
Mikhail Mishanin # :

하나의 접근 방식입니까 아니면 둘 다입니까?

https://habr.com/ru/post/661457/

그러한 계시를 보는 것은 드뭅니다. 그러나 이것은 시장에 대한 올바른 접근 방식입니다.

 
Mikhail Mishanin # :

하나의 접근 방식입니까 아니면 둘 다입니까?

https://habr.com/ru/post/661457/

제 생각에는 우리 작업의 특성을 고려하여 두 접근 방식의 조화로운 조합입니다. 표시는 시장의 "물리"에 "고착"해야 하며 모델은 이익을 늘리기 위해 구축되어야 합니다(예를 들어 옳을 가능성이 아님).

사유: