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

 
mytarmailS #:

FF와 최적화 표면을 혼동하고 있는 것 같아요.

누가 더 이상 어떻게 생각하는지 모르겠습니다. 일종의 농담과 같습니다.
그리고 패턴을 찾거나 견고성을 평가하는 측면에서는 모두 무의미합니다.
 
예를 들어, 앤드류는 정상적인 TC를 받은 적이 없지만 20년 동안 자신이 옳았고 진정으로 의미 있는 일을 하고 있다고 경건하게 믿습니다.
그리고 이 모든 주장은 죽은 파스나 다름없습니다.
 
fxsaber #:

여기에는 교활함이 있습니다. 링크는 단지 열리도록 하기 위한 것입니다. '관심'이 있는 사람은 아무도 그 내용을 자세히 들여다보지 않을 것입니다. 학술적인 성격의 글은 말할 것도 없고 안드레이가 씹어먹은 글은 아무도 읽지 않을 것입니다.


자신의 최적화 알고리즘의 순위를 계산할 수 있는 이 알기 쉬운 TOP을 본 사람이 있나요?

https://habr.com/ru/users/belyalova/publications/articles/


이것은 뉴런에 대한 그라데이션 기반 최적화 방법 입니다,

그리고 우리는 그라데이션이 없는 전역 최적화 방법에 대해 이야기하고 있습니다,

어서, 세이버.

그게 바로 ABC입니다.

그건 그렇고, 현지 최적화 전문가는 자신의 기사에서 이에 대해 아무 말도 하지 않았습니다(그 자신은 AO의 오크나무이기 때문입니다).

 
Aleksey Nikolayev #:

특히 "손실 함수!=품질 지표" 섹션을 읽어보세요. 이보다 더 명확하게 설명할 수 없을 정도입니다.

열 수 없습니다, 약간 막혔습니다(

알렉세이 니콜라예프 #:
함수 공간은 무한 차원이므로 매개 변수가 무제한으로 늘어날 가능성이 있습니다. 실제로 이것은 어떻게든 매개 변수의 수를 제어해야 할 필요성으로 이어집니다. 예를 들어 나무의 경우 잎 가지 치기입니다.

예를 들어, AMO 포레스트, 부스트는 기본 요소, 규칙으로 구성됩니다.


필요한 규칙의 Beckus Naur 문 법을 만들 수 있습니다.

이렇게요.

grammarDef
<ex3> ::= <ex2> | <ex2> & <ex2> | <ex2> & <ex3>
<ex2> ::= <ex1> | <com>(<ex1>, <ex1>)
<ex1> ::= <op>(<var>, <var>)
<com> ::= "&" | "|"
<op>  ::= ">=" | "<=" | "==" | "!="
<var> ::= x1 | x2 | x3 | x4

각 규칙 뒤에는 코드/스트링/유전자형이 있습니다.

2 3 1 3 2 4 3 2 3 1 4 4 1 2 1 4 3 2 4 3 4 1 3 4 3 1 2 1 1 3 2 4 1 4 2 4 3 3 1 4 3 2 3  ->  (x1 == x4 | x2 != x1) & (x4 >= x3 & x1 != x2) & (x3 <= x2 & x3 != x1) 
1 1 4 4 1 4 1 4 2 3 1 4 1 1 1 3 1 4 2 3 4 1 1 3 4 3 2 4 1 4 2 3 4 3 3 2 3 4 2 2 4 4 3  ->  x1 <= x2 & x4 == x2 & x2 <= x4 
2 4 1 4 1 1 1 2 1 4 4 1 2 1 3 1 2 3 3 3 3 4 4 2 2 3 1 3 4 2 2 1 2 4 2 1 4 4 3 3 1 4 3  ->  x2 >= x2 & x1 >= x2 & x2 != x3 
4 3 1 3 2 4 2 2 3 4 4 1 1 2 2 1 3 2 4 3 4 3 3 1 3 1 3 2 2 2 4 4 2 3 2 1 4 1 3 1 3 2 4  ->  (x1 == x3 | x1 != x1) & (x2 == x4 | x4 >= x1) 
1 3 3 1 4 2 2 3 4 3 3 4 4 2 2 4 3 1 4 2 1 1 3 4 2 3 1 2 3 1 1 1 3 3 2 2 2 2 2 3 3 1 2  ->  (x3 >= x3 | x4 >= x4) & x3 == x1 
2 1 2 1 3 3 1 2 3 3 2 3 3 3 2 3 4 4 4 3 4 3 2 2 3 1 4 3 4 2 4 3 4 1 2 3 1 2 1 3 1 4 3  ->  x4 != x2 & x4 != x3 & (x1 != x1 | x1 != x4) 
3 3 1 1 3 3 3 2 4 2 2 3 1 2 2 3 2 4 1 4 3 4 4 2 2 4 1 2 2 4 3 4 2 2 3 4 3 4 4 3 4 4 2  ->  x4 != x4 | x3 >= x3 
3 2 1 1 3 4 2 3 2 2 2 4 3 2 3 4 2 2 4 4 1 1 3 1 2 3 2 4 1 2 1 2 1 2 1 4 3 2 4 1 1 4 2  ->  x4 <= x1 
4 2 3 2 4 4 3 3 3 4 1 4 3 3 3 2 4 3 1 3 4 4 1 4 4 2 1 2 3 1 3 3 4 2 4 1 4 2 3 4 3 4 3  ->  x1 == x1 & (x2 >= x1 | x4 != x3) 
3 2 2 1 2 3 2 4 3 3 4 2 4 4 2 4 3 4 2 2 1 1 2 2 1 3 1 4 3 4 3 2 4 4 3 2 2 2 2 2 3 1 1  ->  x3 <= x4 

왼쪽은 유전형, 오른쪽은 생성된 규칙이며, 이 유전형은 AO의 도움으로 검색할 수 있습니다.

규칙의 합은 동일한 부스트 또는 포레스트입니다.

아주 간단합니다.


이 모든 것을 구현하는 코드는 다음과 같습니다.

library(gramEvol)
grammarDef <- CreateGrammar(list(
  ex3 = grule(ex2, ex2 & ex2, ex2 & ex3),
  ex2 = grule(ex1, com(ex1, ex1)),
  ex1 = grule( op(var, var) ),
  com = grule("&","|"),
  op = grule(">=","<=","==","!="),
  var = grule(x1,x2,x3,x4)))


for(i in 1:10){
  genotype <- sample(1:4,size = 43,replace = T)
  rule <- as.character(GrammarMap(genotype, grammarDef))
  cat(as.character(genotype), " -> ", rule, "\n")
}

패키지문서

그래서 순전히 최적화와 문법으로만 AMO를 구현하는 데 아무런 장애물이 보이지 않습니다.


함수, 변환, 데이터 등 모든 면에서 자유롭고 일반적으로 모든 것을 구현할 수 있습니다.



같은 포레스트, 차이점은 없습니다.

X <- iris[,1:(ncol(iris)-1)]
target <- iris[,"Species"] 


library(inTrees)
library(RRF)

target |> 
as.factor() |> 
RRF(x = X,ntree=100) |> 
RF2List() |> 
extractRules(X = X) 






697 rules (length<=6) were extracted from the first 100 trees.
       condition                                                                        
  [1,] "X[,4]<=0.8"                                                                     
  [2,] "X[,4]>0.8 & X[,4]<=1.65 & X[,4]<=1.45"                                          
  [3,] "X[,3]<=4.95 & X[,4]>0.8 & X[,4]<=1.65 & X[,4]>1.45 & X[,4]<=1.55"               
  [4,] "X[,3]>4.95 & X[,4]>0.8 & X[,4]<=1.65 & X[,4]>1.45 & X[,4]<=1.55"                
  [5,] "X[,4]>0.8 & X[,4]<=1.65 & X[,4]>1.45 & X[,4]>1.55"                              
  [6,] "X[,3]<=4.75 & X[,4]>0.8 & X[,4]>1.65 & X[,4]<=1.85 & X[,4]<=1.75"               
  [7,] "X[,3]>4.75 & X[,4]>0.8 & X[,4]>1.65 & X[,4]<=1.85 & X[,4]<=1.75"                
  [8,] "X[,1]<=5.95 & X[,3]<=4.85 & X[,4]>0.8 & X[,4]>1.65 & X[,4]<=1.85 & X[,4]>1.75"  
  [9,] "X[,1]>5.95 & X[,3]<=4.85 & X[,4]>0.8 & X[,4]>1.65 & X[,4]<=1.85 & X[,4]>1.75"   
 [10,] "X[,3]>4.85 & X[,4]>0.8 & X[,4]>1.65 & X[,4]<=1.85 & X[,4]>1.75"                 
 [11,] "X[,4]>0.8 & X[,4]>1.65 & X[,4]>1.85"                                            
 [12,] "X[,4]<=0.8"                                                                     
 [13,] "X[,3]<=4.95 & X[,4]>0.8 & X[,4]<=1.55"                                          
 [14,] "X[,3]>4.95 & X[,4]>0.8 & X[,4]<=1.55"                                           
 [15,] "X[,1]<=5.45 & X[,4]>0.8 & X[,4]>1.55 & X[,4]<=1.75"                             
 [16,] "X[,1]>5.45 & X[,3]<=5.45 & X[,4]>0.8 & X[,4]>1.55 & X[,4]<=1.75"                
 [17,] "X[,1]>5.45 & X[,3]>5.45 & X[,4]>0.8 & X[,4]>1.55 & X[,4]<=1.75"                 
 [18,] "X[,1]<=5.95 & X[,3]<=4.9 & X[,4]>0.8 & X[,4]>1.55 & X[,4]>1.75"                 
 [19,] "X[,1]>5.95 & X[,3]<=4.9 & X[,4]>0.8 & X[,4]>1.55 & X[,4]>1.75"                  
 [20,] "X[,3]>4.9 & X[,4]>0.8 & X[,4]>1.55 & X[,4]>1.75"                                
 [21,] "X[,4]<=0.8"                                                                     
 [22,] "X[,3]<=4.85 & X[,4]>0.8 & X[,4]<=1.7"                                           
 [23,] "X[,1]<=5.95 & X[,3]<=4.85 & X[,4]>0.8 & X[,4]>1.7"                              
 [24,] "X[,1]>5.95 & X[,3]<=4.85 & X[,4]>0.8 & X[,4]>1.7"                               
 [25,] "X[,1]<=6.6 & X[,3]>4.85 & X[,4]>0.8 & X[,4]<=1.65"                              
 [26,] "X[,1]>6.6 & X[,3]>4.85 & X[,4]>0.8 & X[,4]<=1.65"                               
 [27,] "X[,3]>4.85 & X[,4]>0.8 & X[,4]>1.65"                                            
 [28,] "X[,3]<=2.45"                                                                    
 [29,] "X[,3]>2.45 & X[,3]<=5.35 & X[,4]<=1.75"                                         
 [30,] "X[,3]>2.45 & X[,3]>5.35 & X[,4]<=1.75"                                          
 [31,] "X[,1]<=5.95 & X[,3]>2.45 & X[,3]<=4.85 & X[,4]>1.75"                            
 [32,] "X[,1]>5.95 & X[,3]>2.45 & X[,3]<=4.85 & X[,4]>1.75"                             
 [33,] "X[,3]>2.45 & X[,3]>4.85 & X[,4]>1.75"                                           
 [34,] "X[,3]<=2.45"           
...
..
..
..
.
.
.
 
mytarmailS #:
열 수 없습니다, 조금 막혔습니다(

우리는 많이 막혔지만 어떻게 든 적응합니다.

mytarmailS #:
예를 들어 AMO 포레스트의 경우 부스트는 기본 요소, 규칙으로 구성됩니다.

나는 고정 된 매개 변수 세트가 없기 때문에 학습 (최적화)이 불가능하다고 주장하지 않았습니다. 저는 고정 된 매개 변수 세트를 사용하는 기존 최적화와의 중요한 차이점에 대해서만 이야기하고있었습니다. 제 말이 믿기지 않으시면 MT5에서 트리나 문법을 구현해 보시면 됩니다(최적화 도구가 고정된 세트에 대해 작동하는 경우). 절대적으로 불가능한 것은 아니지만 매우 불편합니다.

 
Aleksey Nikolayev #:

저는 고정된 매개변수 집합이 없기 때문에 학습(최적화)이 불가능하다고 주장한 것이 아닙니다. 고정된 매개변수 집합을 사용하는 기존 최적화와 상당한 차이점에 대해서만 이야기한 것입니다. 제 말이 믿기지 않으시면 MT5에서 트리나 문법을 구현해 보시면 됩니다(최적화 도구가 고정된 세트에 대해 작동하는 경우). 절대적으로 불가능한 것은 아니지만 매우 불편합니다.

MQL5 언어를 사용하면 테스터와 옵티마이저의 표준 기능이 없는 것을 보완할 수 있습니다. 동적 매개 변수 세트가 필요한 경우 MQL5에서 모델에 대한 외부 옵티마이저를 작성할 수 있습니다.

 
Andrey Dik #:

MQL5 언어를 사용하면 테스터와 옵티마이저의 표준 기능 부족을 보완할 수 있습니다. 동적 매개변수 집합이 필요한 경우 MQL5에서 모델에 대한 외부 최적화 프로그램을 작성할 수 있습니다.

가장 비좁은 자전거의 제작자가 되려면 MQL5로 그라데이션 부스팅을 작성하는 것이 필수입니다.
 

한 학생이 인공지능에게 질문을 합니다.

질문: 이름이 무엇인가요?

답변: 바샤. 지옥에 가세요.

질문: 지옥에 가라는 게 뭐죠?

답변: 두 번째 질문 바스야에 대한 답변입니다.

P.Z.

이 질문은 신경계에 충격을줍니다.

 
Aleksey Nikolayev #:
가장 형편없는 자전거의 제작자가 되려면 mql5로 그라디언트 부스팅을 작성하는 것이 필수입니다.

그렇다면 다른 언어로 작성된 것과 mql5로 작성된 부스팅의 근본적인 차이점은 무엇일까요? mql5는 C#만큼 빠르고 C++만큼 빠릅니다. 구문도 이들 언어와 크게 다르지 않습니다. MO 요구 사항을 위해 최근 많은 내장 언어 기능이 추가되고 있습니다.
표준 테스터는 기성 거래 환경으로서 편리하지만, MO 및 최적화와 관련된 모든 것은 누군가가 비좁다면 테스터 없이도 구현할 수 있습니다.
MT5에는 근본적인 제한이 없습니다.
 
Andrey Dik #:

mql5로 작성된 부스팅과 다른 언어로 작성된 부스팅의 근본적인 차이점은 무엇일까요? mql5는 C#만큼 빠르며 C++만큼 빠릅니다. 구문도 이들 언어와 크게 다르지 않습니다. MO 요구 사항을 위해 최근 많은 내장 언어 기능이 추가되고 있습니다.
표준 테스터는 기성 거래 환경으로서 편리하지만, MO 및 최적화와 관련된 모든 것은 누군가가 비좁다면 테스터 없이도 구현할 수 있습니다.
MT5에는 근본적인 제한이 없습니다.
mql5에서 CPU에서 계산을 병렬화하는 메커니즘에 대해 알고 있나요?
사유: