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

 
mytarmailS #:
いや、そんな単純な話ではない。
切り分けるのは簡単ではありませんが、そうでなければ、複雑にする意味はないでしょう?
 
Maxim Dmitrievsky #:
それを切り分けるのは簡単ではないが、そうでなければ物事を複雑にする意味はない。

サイクルは大きすぎて捉えられないし、農業以外は予測もできない。時間的な構成要素、つまり時間の中で繰り返される事象を特定することしかできない。そして、イベントと価格への影響のつながりを見つけることができれば、それはゴールである))))。

 

文法的進化 記号的回帰、遺伝的プログラミングの進化版......。

これらのツールを使えば、あらゆる種類のパターンを自動的に検索することができる。


例えば、数式から最適な指標制御を検索することができます。

関数のテンプレート(検索領域)を作成します。

library(gramEvol)
ruleDef <- list(expr  = grule(op(expr, expr), func(expr), var),
                func  = grule(sin, cos, log, sqrt),
                op    = grule("+", "-", "*","/"),
                var   = grule(distance, distance^n),
                n     = grule(1, 2, 3, 4))

grammarDef <- CreateGrammar(ruleDef)
gr <- GrammarRandomExpression(grammarDef,numExpr = 10,max.depth = 5)
q <- as.matrix(unlist(lapply(gr,as.character)),ncol=1)
q

自動的に数式を作成します:

[1,] "sqrt(log(cos(sqrt(cos(distance^2)))))"                                                                  
 [2,] "sin(log(sqrt(sin(sqrt(distance * distance))) * (sin(log(distance^3)) - cos(cos(distance)) - distance)))"
 [3,] "(sin(distance * sqrt(sin(distance * sqrt(distance^3)))) + distance^1)/distance"                         
 [4,] "sin(log(log(distance^4)))"                                                                              
 [5,] "distance"                                                                                               
 [6,] "distance^4"                                                                                             
 [7,] "log(sin(distance)) * (log(distance) - cos(distance^4 - distance^4))"                                    
 [8,] "distance^1"                                                                                             
 [9,] "distance"                                                                                               
[10,] "log(distance) * (distance/log((distance^4 - distance^3) * distance^2))"        

そして 遺伝的に最適解を検索 します。

=====================

また、ログ・ルールを作成し、規則性を検索することも可能です。

ここでも関数テンプレート(検索エリア)を作成 します。

library(gramEvol)
ruleDef <- list(
  expr = grule(expr & sub.expr, 
               expr | sub.expr, 
               sub.expr),
  sub.expr = grule( com(var, var) ),
  com = grule(">=","<="),
  var = grule(x,y,w,z,q,y,r)
  )

grammarDef <- CreateGrammar(ruleDef)
gr <- GrammarRandomExpression(grammarDef,numExpr = 15,max.depth = 3)

q <- as.matrix(unlist(lapply(gr,as.character)),ncol=1)
q

そして出力はルール

[1,] "x >= y"                  
 [2,] "y <= y | y >= y | w >= y"
 [3,] "y <= x"                  
 [4,] "y <= y"                  
 [5,] "y <= r"                  
 [6,] "z <= z"                  
 [7,] "y <= y"                  
 [8,] "x <= y"                  
 [9,] "z <= y | y >= z & r >= y"
[10,] "z >= x"                  
[11,] "y >= y | q >= y | q >= q"
[12,] "y >= y | q <= y | z >= q"
[13,] "y >= y | x <= y | x >= x"
[14,] "y >= r"                  
[15,] "y >= w"

これは遺伝学によって適合性がテストされます。

=============================

TSがあり、それを改良したいが、何百万もの変種を試すほどの想像力がない場合、アルゴリズムの助けを借りてそれを試みることができる。

例えば、ボリンジャーが値下がりしてブレイクダウンする(「PRICE < BOLINGER」)というエントリー・ポイントがあります。

このルールを文法に追加します。

library(gramEvol)
ruleDef <- list(
  expr = grule(expr & sub.expr, 
               expr | sub.expr, 
               sub.expr),
  sub.expr = grule( com(var, var)  ,  PRICE < BOLINGER),
  com = grule(">=","<="),
  var = grule(x,y,w,z,q,y,r)
  )

grammarDef <- CreateGrammar(ruleDef)
gr <- GrammarRandomExpression(grammarDef,numExpr = 15,max.depth = 3)

q <- as.matrix(unlist(lapply(gr,as.character)),ncol=1)
q

ルールは少々くだらないが、それはランダムに生成されるからだ。

[1,] "y >= q"                                                                                                        
 [2,] "PRICE < BOLINGER & y >= y | x >= x"                                                                            
 [3,] "PRICE < BOLINGER | PRICE < BOLINGER & x <= y | y <= w"                                                         
 [4,] "r <= y & PRICE < BOLINGER | w >= x | y <= x"                                                                   
 [5,] "PRICE < BOLINGER | PRICE < BOLINGER | y <= y & PRICE < BOLINGER"                                               
 [6,] "PRICE < BOLINGER"                                                                                              
 [7,] "PRICE < BOLINGER & PRICE < BOLINGER & z <= x | PRICE < BOLINGER & PRICE < BOLINGER | PRICE < BOLINGER | z <= x"
 [8,] "y <= y | PRICE < BOLINGER | x <= y | PRICE < BOLINGER | PRICE < BOLINGER"                                      
 [9,] "PRICE < BOLINGER & x <= y | y <= q & PRICE < BOLINGER"                                                         
[10,] "q >= z & PRICE < BOLINGER | q >= w & y <= x"                                                                   
[11,] "PRICE < BOLINGER | PRICE < BOLINGER"                                                                           
[12,] "w >= y"                                                                                                        
[13,] "PRICE < BOLINGER"                                                                                              
[14,] "y <= y & PRICE < BOLINGER | q >= x | PRICE < BOLINGER"                                                         
[15,] "q >= x" 

重要なのは、独自のルールを追加すれば、探索空間が大幅に狭まるということだ。

もし良いルールがあって、それを改良する方法がわからないが、改良したい場合は、他のルールで「被覆」して、自動的にチェックすることができる。

 
mytarmailS #:

文法的進化 記号的回帰、遺伝的プログラミングの進化版......。

これらのツールを使って、あらゆる種類のパターンを自動的に探すことができる。


例えば、あるインジケータの最適制御を次の式で検索することができる。

関数テンプレート(検索エリア)を作成する

すると自動的に数式が作成されます:

そして 最適な解を遺伝学的に探索 します。

=====================

あるいは、ログ・ルールを作成して、パターンを探すこともできる。

再度、関数テンプレート(検索エリア)を作成 します。

そして、出力には以下のルールがある。

が出力される。

=============================

もしあなたがTCを持っていて、それを改良したいが、何百万もの変種を試す十分な想像力がない場合、アルゴリズムの助けを借りてそれを試みることができます。

例えば、エントリー・ポイントとして、ボリンジャーのブレイクダウンとプライス・ダウン("PRICE < BOLINGER")があります。

このルールを文法に追加する。

ルールは少々バカバカしいが、それはランダムに生成されるからだ。

重要なのは、独自のルールを追加すれば、探索空間を大幅に縮小できるということだ。

良いルールがあって、それを改善する方法がわからないが、改善したい場合は、他のルールでそれを「被覆」し、自動的にチェックすることができる。

まあ、それは標識の周りに深い木を置くようなものだ。
 
Maxim Dmitrievsky #:
まあ、看板の周りに深い木を置くようなものだ。
これらは単純な例で、ツールの汎用性を理解するためのものだ。

単純な多年草の代わりに、関数でもニューラルネットワークでも何でもいい。


そして、これらはすべて自動で行われる。
 
mytarmailS #:
これらは単純な例で、このツールの多用途性を理解するためのものだ。

単純な括弧の代わりに、関数でもニューラルネットワークでも、好きなものを使うことができる。


そして、これらはすべて自動給油になります
トピックの発展が待たれる
 
elibrarius #:


このほとんど絶望的な努力のモチベーションをどのように高めていますか?
18年に始めたとき、私にはわずかな収入と物質的な動機というか、市場のMOが助けになるという希望がありました。

今は、市場からではなく、ほとんど受動的に、何倍もの収入を得ている。物質的な問題は気にならない。
、自由な時間はあるのですが、何度も実験に失敗してきた後でMOに費やすのは怠慢です。返ってくる望みはほとんどない。ただ一つあるのは、また財政難に陥った場合に備えて、別の資金源を確保しておくことだ。

誰が何をモチベーションにしているのだろう?

FXとの付き合いは長い。証券会社でアナリストとしてスタートし(経済学教育)、その後ディーラーやアシスタントマネージャーとして働き、トレードをした後、ボットやMOに興味を持った。

非効率なことも多かったが(技術的なことも含めて)、何とかまとまった額を持ち出すことができた。
 
Maxim Dmitrievsky #:

FXとは長い付き合いです。ブローカー・センターでアナリストとしてスタートし(経済学教育)、その後ディーラーやアシスタント・マネージャーとして働き、トレードをした後、ボットやMOに興味を持ちました。

テクニカルも含め)非効率なこともたくさんありましたが、なんとかまとまった額を取れるようになりました。

まあ、MOの助けを借りてうまくいかない人はいないでしょう。みんな模索中です。
 
elibrarius #:

さて、MOの力を借りてうまくいっている人はいないようだが......。みんな見てるよ。

それだけでなく、それは非合理的な衝動だ。

子供の頃、おもちゃを壊して新しいおもちゃを作るのが好きだったように。
 
Maxim Dmitrievsky #:

それだけでなく、非合理的な衝動でもある。

子供の頃、おもちゃを壊して新しいおもちゃを作るのが好きだった。

一般的には、創造性だ。しかし、創造性は「テーブルの上」にある。

理由: