Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 2639

 
mytarmailS #:
Não, não é tão simples assim.
Não é fácil isolá-los, mas de outra forma, de que adianta complicar as coisas?
 
Maxim Dmitrievsky #:
Não é fácil isolá-los, mas, caso contrário, qual é o sentido de complicar as coisas?

Os ciclos são grandes demais para serem capturados, e não há previsão para eles, exceto para a agricultura, e aí nem tudo é tão simples. Componentes temporais - eventos repetidos no tempo só podem ser identificados. E se você também encontrar os vínculos dos eventos e as influências sobre o preço, isso é um gol)))).

 

Evolução gramatical / regressão simbólica, uma versão mais avançada da programação genética....

Com essas ferramentas, você pode pesquisar automaticamente padrões de qualquer tipo.


Por exemplo, é possível pesquisar o controle ideal de indicadores por meio de uma fórmula.

Criamos um modelo de função (área de pesquisa)

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

e ele cria fórmulas automaticamente:

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

que , em seguida, buscam geneticamente a melhor solução.

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

Ou é possível criar regras de registro, buscando assim as regularidades.

Novamente, criamos um modelo de função (área de pesquisa).

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

E o resultado são regras

[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"

que são testadas quanto à adequação pela genética.

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

Se você tiver um TS e quiser aprimorá-lo, mas não tiver imaginação suficiente para tentar milhões de variantes, poderá tentar fazer isso com a ajuda de um algoritmo.

Porexemplo, temos um ponto de entrada: quebra do bolinger com o preço em baixa ("PRICE < BOLINGER").

Adicionamos essa regra à nossa gramática.

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

As regras são um pouco estúpidas, mas isso se deve ao fato de serem geradas aleatoriamente.

[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" 

A questão é que reduzimos muito o espaço de pesquisa se adicionarmos nossa própria regra.

Se tivermos uma boa regra e não soubermos como melhorá-la, mas quisermos, podemos "revesti-la" com outras regras e verificá-la automaticamente.

 
mytarmailS #:

Evolução gramatical / regressão simbólica, uma versão mais avançada da programação genética....

Você pode usar essas ferramentas para procurar padrões automaticamente, de qualquer tipo.


Por exemplo, é possível procurar o controle ideal de um indicador usando a fórmula

criar um modelo de função (área de pesquisa)

e ele cria fórmulas automaticamente:

que , em seguida, busca geneticamente a melhor solução.

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

Ou você pode criar regras de registro para procurar padrões.

Novamente, crie um modelo de função (área de pesquisa )

E, na saída, obtemos as regras

que são testadas quanto à adequação pela genética.

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

Se você tiver uma CT e quiser melhorá-la, mas não tiver imaginação suficiente para tentar milhões de variantes, poderá tentar fazer isso com a ajuda de um algoritmo.

Porexemplo, temos um ponto de entrada: quebra do bolinger com o preço em baixa ("PRICE < BOLINGER").

Adicionamos essa regra à nossa gramática.

As regras são um pouco estúpidas, mas isso se deve ao fato de serem geradas aleatoriamente.

A questão é que reduzimos muito o espaço de pesquisa se adicionarmos nossa própria regra.

Se tivermos uma boa regra e não soubermos como melhorá-la, mas quisermos, podemos "revesti-la" com outras regras e verificá-la automaticamente.

Bem, isso é como colocar árvores profundas ao redor dos sinais.
 
Maxim Dmitrievsky #:
Bem, é como colocar árvores profundas ao redor das placas.
Esses são exemplos simples, apenas para entender a versatilidade da ferramenta.

Em vez de perenes simples, poderiam ser funções, redes neurais ou o que você quiser.


E tudo isso será automático.
 
mytarmailS #:
Esses são exemplos simples, apenas para entender a versatilidade da ferramenta.

Em vez de simples parênteses, podem ser funções, redes neurais ou o que você quiser


E tudo isso será sobre lubrificação automática
Estamos aguardando o desenvolvimento do tópico
 
elibrarius #:

Uma pergunta para aqueles que estão envolvidos no MO.
Como você se motiva para esse empreendimento quase sem esperança?
Em 18, quando comecei, eu tinha uma pequena renda e um incentivo material, ou melhor, a esperança de que o MO no mercado ajudaria.

Agora, recebo muitas vezes mais, quase passivamente, não do mercado. A questão material não me incomoda. Nos últimos dois anos, usei MO três vezes por um ou dois meses, para verificar a ideia que me interessava.
Tenho tempo livre, mas é preguiçoso gastá-lo em MO depois de muitos experimentos malsucedidos. Como não tenho quase nenhuma esperança de retorno. A única coisa - apenas para ter outra fonte no caso de outra queda financeira (se algo acontecer). Mas a motivação está fraca no momento.

Quem se motiva com o quê?

Longo relacionamento com o mercado de câmbio. Comecei como analista em uma corretora (formação em economia), depois trabalhei como corretor e gerente assistente, negociei e depois me interessei por bots e MO.

Houve muitas ineficiências (inclusive técnicas), quando consegui retirar somas decentes
 
Maxim Dmitrievsky #:

Tenho um longo relacionamento com o mercado de câmbio. Comecei como analista em um centro de corretagem (formação em economia), depois trabalhei como negociador e gerente assistente, negociei, depois me interessei por bots e MO

Houve muitas ineficiências (inclusive técnicas), quando consegui retirar somas decentes.
A motivação ainda é o lucro?
Bem, ninguém com a ajuda do MO não dá certo.... todos estão pesquisando.
 
elibrarius #:
A motivação tem tudo a ver com ganhar dinheiro?
Bem, parece que ninguém com a ajuda da MO está se saindo bem.... todos estão olhando.

Além disso, é um impulso irracional.

Como quando você era criança, gostava de quebrar brinquedos e construir novos.
 
Maxim Dmitrievsky #:

Além disso, é um desejo irracional.

Como quando eu era criança, gostava de quebrar brinquedos e fazer novos.

Em geral - criatividade. Mas a criatividade "em cima da mesa", porque é improvável que todo esse trabalho seja visto e apreciado por alguém.