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

 
Dr. Trader:

Parece complicado e não tenho a certeza do resultado, vou passar.
R tem um pacote GMDH ("MGUA" em inglês).

É difícil porque há todo o tipo de algoritmos e é fácil ficar confuso.

Há um pacote, mas é "monótono".

Vou tentar explicar em termos mais simples e mais curtos...

Um modelo combinatório não-físico e auto-organizador é

uma pesquisa simples de todas as combinações possíveis de elementos de amostra (preditores) e verificação de cada iteração desta pesquisa no OOS uma vez que os preditores são polinómios ou harmônicas, tais combinações podem tornar-se mais complicadas, de modo a ir como se fosse para um novo nível e fazer combinações com combinações e novamente verificar no OOS e novamente para um novo nível e assim por diante até que o erro mínimo no OOS seja encontrado, esta é uma essência de auto-organização (se eu entendi tudo corretamente lá)

O que eu proponho....

Todos sabemos que qualquer função pode ser decomposta em uma série de Fourier, como na Fig.

ч

O oposto também é verdade que com as combinações certas de harmônicas, podemos conseguir qualquer função que precisamos

Agora imagine que existe uma função (uma curva) ou um vector, chame-lhe como quiser... que descreve completamente um instrumento de mercado e o ultrapassa... Pode ser uma sazonalidade inteligente expressa numa função ou dependência de outros instrumentos, ou ciclos lunares )) é absolutamente sem importância e nós mortais não a conhecemos MAS podemos encontrar esta dependência sem sequer saber onde procurá-la ... Vamos chamar a esta dependência - que impulsiona o mercado - uma super dependência mais NW

Tudo o que precisamos é de

1) tomar uma gama adequada de harmônicas

2) criar um alvo

3) comece a passar por todas as combinações possíveis entre os harmónicos e observe o OOS.

Você entende como é simples e profundo, nós não sabemos onde procurar o SP, mas podemos gerá-lo sinteticamente por nós mesmos!

É isso, parece um simples algoritmo de sobreamostragem, mas quando o entendi, fiquei espantado...

Mas há um grande MAS! Haverá triliões de combinações, precisamos de uma forma de contornar isto, e eu preciso da vossa ajuda.

Talvez a genética seja uma forma de procurar boas combinações?

Qual é a sua opinião sobre a ideia e a sua implementação?

BLEEP!!! ......

 

O que você está descrevendo é encaixar o resultado para "bom no OOS". Primeiro, seleciona-se os parâmetros do modelo (combinações harmônicas) de forma que haja um bom resultado na amostra. Então você seleciona dentre eles os parâmetros que são bons nos oos. Este é um ajuste duplo de bons resultados e o modelo provavelmente será inútil em novos dados de negociação.

Com combinações de harmônicas você pode descrever movimento de preços, mas o mesmo pode ser alcançado com neurônicos ou florestas. Eu acho que você já fez isso centenas de vezes com a neurônica e isso não funcionou, por que você acha que o resultado do MGUA será positivo? A aprendizagem de máquinas em forex não pode ser usada tão facilmente como nos problemas convencionais, o comportamento dos preços muda com o tempo, e a maioria das dependências que você encontra e usa - deixará de existir muito rapidamente. E todos esses modelos são projetados para dependências constantes que não mudam com o tempo, e por causa disso não dão lucro em tal problema.

 
mytarmailS:

É difícil porque há todo o tipo de algoritmos e é fácil ficar confuso.

Há um pacote, mas é "monótono".

Vou tentar explicar em termos mais simples e mais curtos...

Um modelo combinatório não-físico e auto-organizador é

uma pesquisa simples de todas as combinações possíveis de elementos de amostra (preditores) e verificação de cada iteração desta pesquisa no OOS uma vez que os preditores são polinómios ou harmônicas, tais combinações podem tornar-se mais complicadas, de modo a ir como se fosse para um novo nível e fazer combinações com combinações e novamente verificar no OOS e novamente para um novo nível e assim por diante até que o erro mínimo no OOS seja encontrado, esta é uma essência de auto-organização (se eu entendi tudo corretamente lá)

O que eu proponho....

Todos sabemos que qualquer função pode ser decomposta em uma série de Fourier, como na Fig.

O inverso também é verdade, que com as combinações certas de harmônicas, podemos obter qualquer função que precisamos

Agora imagine que existe uma função (uma curva) ou um vector, chame-lhe como quiser... que descreve completamente um instrumento de mercado e o ultrapassa... Pode ser uma sazonalidade inteligente expressa numa função ou dependência de outros instrumentos, ou ciclos lunares )) é absolutamente sem importância e nós mortais não a conhecemos MAS podemos encontrar esta dependência sem sequer saber onde procurá-la ... Vamos chamar a esta dependência - que impulsiona o mercado - uma super dependência mais NW

Tudo o que precisamos é de

1) tomar uma gama adequada de harmônicas

2) criar um alvo

3) comece a passar por todas as combinações possíveis entre os harmónicos e observe o OOS.

Você entende como é simples e profundo, nós não sabemos onde procurar o SP, mas podemos gerá-lo sinteticamente por nós mesmos!

É isso, parece um simples algoritmo de sobreamostragem, mas quando o entendi, fiquei espantado...

Mas há um grande MAS! Haverá triliões de combinações, precisamos de uma forma de contornar isto, e eu preciso da vossa ajuda.

talvez a genética seja uma forma de procurar boas combinações?

Qualquer pensamento sobre a ideia e a sua implementação

Eu implementei tal ideia no meu indicador. É muito consumidora de recursos. Posso ajustá-lo no histórico de 1000 bar, ou posso ajustá-lo no histórico de 10000 bar. O resultado final é o seguinte: às vezes funciona perfeitamente e prevê um ponto no preço. Mas outras vezes nem sequer está perto. A razão é que todos esses períodos começam a flutuar no mercado após o ponto de cálculo. Provavelmente é possível introduzir correcções -+ a partir dos valores actuais, mas não funcionou para mim.
 
Dr. Trader:

O que você está descrevendo é encaixar o resultado para "bom no OOS". Primeiro, seleciona-se os parâmetros do modelo (combinações harmônicas) de forma que haja um bom resultado na amostra. Depois, a partir destes, você seleciona os parâmetros que são bons nos oos. Este é um ajuste duplo para um bom resultado, e em novos dados de negociação o modelo muito provavelmente será inútil...

Dormi com a ideia e compreendi-a eu mesmo, é uma treta, é apenas uma adaptação...

Mas aqui está a questão, porque não encaixa tudo o resto? Qualquer treino com o OOS é adequado para o OOS, certo?

Dr. Trader:

Por que você acha que o resultado da MGUA será positivo?

Eu próprio ainda não compreendo nada disto, talvez nunca compreenda...

É que na correspondência particular Nikolai me recomendou estudar análise espectral e conhecer o MSUA se você quiser começar a fazer algo útil.

Ele mesmo disse que começou com ele, e quando construiu seu primeiro robô de trabalho usou apenas dois livros, um de Ivakhnenk "MSIA" e o outro de Marple "Spectrum Anal".

a tradução dos títulos dos livros não está correcta, apenas a resumi para deixar claro do que estamos a falar em geral.

Quem é o Nicholas? Para além de ser um homem humilde e muito inteligente.

Ele é Ph.D. em inteligência artificial, tem construído robôs há cerca de 20 anos, os seus últimos robôs são parecidos com isto:

я

Então ele estava a girar estas redes há cerca de 30 anos, numa altura em que ainda não conhecíamos palavras como "rede neural" ......

E agora este homem recomenda apenas duas coisas Fourier e Mgua, o senso comum diz que vale a pena ouvir... Aqui estão algumas das minhas razões porque deve funcionar))

 
Maxim Romanov:
Esse é mais ou menos o ponto que eu estava a fazer no indicador. É muito consumidora de recursos. Posso ajustá-lo ao histórico de 1000 barras, ou ao histórico de 10000. O resultado final é o seguinte: às vezes funciona perfeitamente e prevê um ponto no preço. Mas outras vezes nem sequer está perto. A razão é que todos esses períodos começam a flutuar no mercado após o ponto de cálculo. Você provavelmente pode inserir correções -+ a partir dos valores atuais, mas eu não consegui.
Eu vejo, encaixando como encaixe)) Eu concordo com o fato de que eu estava errado...
 

pergunta

há um vector "x" e uma matriz "y".

precisamos de calcular rapidamente a distância euclidiana entre "x" e cada linha de matriz "y".

Eu ultrapassei a função padrão "dist()" e escrevi a minha própria função

штатная

system.time(for(i in 1:nrow(m)) {dist.ve[i] <- dist(rbind(x,m[i,]))})

   user  system elapsed
   4.38    0.00    4.39

самописная

system.time(for(i in 1:nrow(m)) {dist.ve[i] <- euc.dist(x,m[i,])})
   user  system elapsed
   0.65    0.00    0.67

mas isto não é suficiente, eu gostaria de acelerar para o segundo zero 0.0....

o que mais pode ser feito?

código:

x <- rnorm(10)
m <- matrix(data = rnorm(1000000),ncol = 10)

euc.dist <- function(x1, x2) sqrt(sum((x1 - x2) ^ 2))

dist.ve <- rep(0,nrow(m)) # distance vector
system.time(for(i in 1:nrow(m)) {dist.ve[i] <- dist(rbind(x,m[i,]))})
system.time(for(i in 1:nrow(m)) {dist.ve[i] <- euc.dist(x,m[i,])})
 
mytarmailS:

Mas a questão é esta, então porque não encaixa tudo o resto? Porque então acontece que qualquer treino com testes OOS é adequado para o OOS, certo? se não, então porque não?

A validação cruzada e oos teste sobre dados estacionários (tendo dependências constantes e imutáveis) é útil. Em dados não estacionários, é inútil.

Você pode, por exemplo, treinar um monte de modelos usando o mesmo algoritmo, mas em dados de tempos diferentes; para cada modelo encontre lucros na amostra e oos e encontre a correlação para esses dois lucros. Para modelos comumente conhecidos em Forex, geralmente não existe tal correlação, ou seja, o lucro por amostra não garante nada, neste caso é inútil fazer uma validação cruzada para tentar melhorar os resultados em novos dados.
Por outro lado, se a correlação for alta e positiva, então o modelo tem algum potencial e você pode fazer a validação cruzada com segurança para ajustar os parâmetros do modelo e melhorar os resultados.

 

Aqui está um exemplo para o post anterior. Tomamos eurusd preços abertos por alguns meses, treinamos um modelo (randomForest) sobre eles, e os usamos para prever, durante um pequeno período de tempo, novos dados. O valor teórico é o incremento de preço para a próxima barra (duas classes 0 e 1). Tudo isso é repetido 1000 vezes para diferentes intervalos de tempo, então a correlação é encontrada.

No final vemos a correlação de resultados em treinamento e novos dados, neste caso temos cerca de 0,1, ou seja, algo deve ser mudado no treinamento, esta abordagem não trará lucro. Um bom resultado nos dados da formação não garante um bom resultado no futuro.

A função TrainModel pode ser usada para treinar seus modelos, fazer validação cruzada, correspondência genética, etc.

Arquivos anexados:
 
Dr. Trader:

Aqui está um exemplo para o post anterior. Tomamos eurusd preços abertos por alguns meses, treinamos um modelo (randomForest) sobre eles, e os usamos para prever, durante um pequeno período de tempo, novos dados. O valor teórico é o incremento de preço para a próxima barra (duas classes 0 e 1). Tudo isso é repetido 1000 vezes para diferentes intervalos de tempo, então a correlação é encontrada.

No final vemos a correlação de resultados em treinamento e novos dados, neste caso temos cerca de 0,1, ou seja, algo deve ser mudado no treinamento, esta abordagem não trará lucro. Um bom resultado nos dados da formação não garante um bom resultado no futuro.

Você pode usar a função TrainModel para treinar seus modelos, fazer validação cruzada, correspondência genética, etc.

1. Porque é que normalizas manualmente?

2. por que na correlação -1 e 1 é bom? apenas se 1 for bom -1 for muito mau, se eu entender a ideia correctamente, -1 é uma correlação inversa

3. você já tentou monitorar o erro de um modelo treinado em uma janela deslizante, e se ele não lhe convém, recicle o modelo e veja o que vai acontecer?

4. e a idéia global do porque tudo isso funciona tão mal, o mercado não é estacionário, você precisa elaborar algum outro conceito de formação de características, talvez mudar completamente para o paradigma das regras lógicas, eu acho que você precisa se afastar dos números quase completamente, ou estudar a análise do espectro)))))

 

Ontem, vasculhei as malas à procura da certa para acabar uma ideia, não encontrei a certa, mas encontrei uma interessante...

Chama-se "tendência".

https://cran.r-project.org/web/packages/trend/trend.pdf

O pacote implementa vários testes de tendências e outras coisas

por exemplo, a função

mk.test() - dá características de uma tendência, por exemplo, para cima ou para baixo, etc...

pettitt.test() - como eu entendi, ele encontra o ponto no vetor onde a tendência começou

Sens.slope() - com esta função, os ângulos de inclinação da tendência podem ser calculados

e muitas outras características especiais

Acho que, desde que se possa observar cientificamente a tendência, deve-se verificá-la) calculei mk.test()$Zg numa janela deslizante de 200 valores, de acordo com os palhaços, e acabou por ser algo como um indicador

Acima de zero é tendência para cima, abaixo de zero é tendência para baixo.

й

E o quê? capta tendências e não confunde a direção dos preços como macd-ki e stochastc-ki.... Em geral, gosto do facto de abrirem sempre posições na direcção da tendência...

Durante alguns períodos, até faz bom dinheiro,

с

Se eu levar o chrono, não o M5, então talvez seja algo útil.

Karoch o que eu proponho, alguém que tem um computador poderoso e tempo para contar todos esses testes de tendência, declives, ângulos, etc. e alimentar o MO, talvez isso funcione, só que agora eu tenho um computador rodando a toda velocidade, correndo para processar, terminar a contagem em quatro dias e o laptop no qual eu sento agora, ele só pode olhar sites)

Razão: