トレーディングにおける機械学習:理論、モデル、実践、アルゴトレーディング - ページ 3383

 
mytarmailS #:

彼はFFと最適化サーフェスを混同しているんだと思う。

もう誰が何を考えているのかわからない。雑談みたいなものだ。
パターンを見つけたり、ロバスト性を評価するという点では、すべて無意味だ
 
例えばアンドリューは、普通のTCを経験したことは一度もないが、20年間自分が正しかったと、そして本当に意味のあることをしていると、とても敬虔に信じている。
そして、これらの議論はすべて、死んだ湿布と同じである
 
fxsaber #:

ある種のずる賢さがある。リンクは開くことを確認するためのものだ。興味がある」人は誰も掘り下げない。学術的な著作物はもちろん、アンドレイの噛み砕いた記事など誰も読まないだろう。


独自の最適化アルゴリズムのランキングを計算できる機能を備えた、このわかりやすいTOPを見た人はいるのだろうか?

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


これらはニューロン用の勾配ベースの最適化手法です、

そして我々は勾配のない 大域的 最適化法について話している、

さあ、セイバー。

ABCだよ。

ところで、あなたの地元の最適化の専門家は、彼の記事で何も言っていない(彼自身がAOのツリー・オークだから)。

 
Aleksey Nikolayev #:

特に「損失関数 != 品質指標」のセクションを 読んでください。これ以上はっきりしたことは書けない。

ちょっとブロックされていて開けませんでした(

Aleksey Nikolayev#:
関数空間は無限次元であるため、パラメータの数は無制限になる可能性があります。実際には、これは何らかの方法でパラメーターの数を制御する必要性につながる - 木の場合、それは例えば葉の枝刈りである。

例えば、AMOのフォレスト、ブーストはプリミティブ、ルールで構成されている。


必要なルールのベッカス・ナウル文法を 作ることができる。

このように。

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の助けを借りて検索できる。

この遺伝子型は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での並列計算のメカニズムをご存知ですか?
理由: