Usando inteligência artificial na MTS - página 18

 
rip:
njel:
Senhoras e senhores, o que dar como contribuição? Uma vela?
Respeito ao autor ...
Por favor, formule uma regra de treinamento de rede no fórum.

--
rip
Apenas a topologia da rede é mais ou menos clara a partir do código. Pelo menos, o autor criou as funções e comentários para elas de tal forma, que se pode entendê-las em geral.

Pesquisei mais no código e descobri que meus gráficos não continham barras suficientes. Aumentei para 16.000. Fiz 6 negócios de todo o período com uma perda não muito grande, mas de 9% no resultado final. Poucos ofícios - um pequeno dreno.

Em resumo, é claro que nada é claro, mas afinal como usar este Expert Advisor? Deveria haver algumas recomendações, certo? Talvez eu esteja fazendo algo errado?

Não faz sentido continuar a pesquisar o código e tentar analisá-lo por mim mesmo. Fazer alegações de que o Expert Advisor ou é deficitário ou lucrativo por 6 negócios é inútil. É apenas uma perda de tempo.
 

Aparentemente, é necessário um pequeno esclarecimento

O Expert Advisor é um dreno, ou pelo menos não é lucrativo. É postado para aquelas pessoas que querem brincar com redes neurais, mas não querem escrever tudo do zero.
A configuração da rede é escrita de forma bastante universal. Na verdade, existem apenas duas limitações - no mínimo duas camadas e um neurônio de saída.

Agora, quanto ao motivo pelo qual o Expert Advisor não trabalha como está.
Ele não pode fazê-lo porque a tarefa de prever n ticks por m ticks anteriores é obviamente insolúvel. A grade não consegue encontrar dependências para uma boa previsão. Se tentarmos classificar os indicadores, isso também falhará, mas a grade não pode dividir os dados de entrada em classes.
Isto significa que é necessário processar os dados para a rede de uma forma mais criativa. Isso é o que vou fazer.

Estas são minhas conclusões. Após a compreensão e análise do meu consultor especializado, aqueles que o desejarem virão ao mesmo ou, talvez, a algumas idéias novas.

De fato, o Expert Advisor pode ser considerado como uma biblioteca para trabalhar com redes neurais, dar-se o trabalho de compreendê-las e usá-las.

Se alguém teve a idéia, após minha mensagem anterior, de que esta EA pode ser jogada, ou você não leu atentamente, ou eu não me fiz entender o suficiente.
Eu parafraseei Figar0: "Não é nada lucrativo, mas informativo.

Agora, para algumas respostas pessoais.

Reshetov E, em geral, como deve ser usado corretamente e se vale a pena usá-lo de alguma forma? Porque compreender o código de outra pessoa é uma tarefa tediosa e ingrata. E se você conhece o algoritmo, é muito mais fácil escrever seu próprio programa a partir do zero do que entender o de outra pessoa
.

Se você quer dizer comércio, provavelmente não deveria usá-lo. Pelo menos eu não o faria. É valioso apenas como código.
Na verdade, concordo parcialmente que você pode escrever seu próprio programa a partir do zero, conhecendo o algoritmo. Não tenho tanta certeza sobre o simples.
Mas você é bem-vindo a escrever algoritmos. Você pode facilmente encontrar livros sobre redes neurais, princípios de treinamento e outras coisas na Internet. Enquanto escrevia este Expert Advisor, minha coleção chegou facilmente a duas dúzias de livros e artigos.


Mathemat
Acho que este código não tem nada em comum com o Expert Advisor da Reshetov ...

O que ambos têm em comum é que ambos têm redes neurais com indicadores como inputs :) A diferença é que não tenho um, mas muitos neurônios, respectivamente, eu escrevi meu próprio algoritmo para treinamento.


Favor formular uma regra de aprendizado para a rede no fórum.

Se for para mim, por favor, elabore. Eu realmente não entendo no que você está interessado.





 
maveric писал (а):


Por favor, formule uma regra de treinamento da rede no fórum.

Se for para mim, por favor, elabore. Eu realmente não entendo no que você está interessado.


Você é bem versado em redes neurais, por que não escreve um artigo sobre o assunto, especialmente focando em algoritmos de aprendizagem para redes multicamadas. Isso seria de interesse para muitas pessoas. Os artigos aqui são pagos, seu trabalho não será desperdiçado.
 
Integer писал (а):
maveric escreveu (a):


Por favor, formule uma regra de treinamento da rede no fórum.

Se for para mim, por favor, elabore. Eu realmente não entendo no que você está interessado.


Você tem uma boa compreensão das redes neurais, por que não escreve um artigo sobre o assunto, especialmente focando em algoritmos de aprendizagem para redes multicamadas. Isso seria de interesse para muitas pessoas. Os artigos aqui são pagos, seu trabalho não será desperdiçado.
Isso não me parece uma boa idéia :)
Aprendi sobre redes neurais com livros e artigos escritos por pessoas sérias, não secretos, mas fáceis de encontrar na Internet.
Tenho receio de que se torne como na anedota quando Moisha cantou os Beatles para Abram :)
 

Por favor, formule uma regra de treinamento da rede no fórum.

Se for para mim, por favor, elabore. Eu realmente não entendo no que você está interessado.

Você respondeu minha pergunta ;) Neste caso, você desenvolveu uma rede que se aproxima da série temporal n-passos à frente. Você toma como inputs valores próximos e/ou valores indicadores. Ok, então outra pergunta. Quanto à classificação - o senhor disse que deveríamos tentar classificar os indicadores, posso desenvolver essa idéia? Sim, tenho outra observação. A prática tem mostrado que os melhores resultados são obtidos quando as redes de treinamento (treinamento com um professor), cuja amostra de treinamento tem uma distribuição normal. Fiz pesquisas de séries cronológicas formadas por citações várias vezes, há muito tempo ... Sua distribuição não tem nada a ver com a distribuição normal. Talvez devêssemos analisar a construção de uma amostra de treinamento e reduzi-la a uma amostra com distribuição normal. Neste caso, o MSE diminuirá muito mais rapidamente e você verá melhores resultados na amostra de teste.
 
maveric:


Agora, quanto à razão pela qual o Expert Advisor não trabalha como está.
Não funciona porque a tarefa de prever n ticks com base em m ticks anteriores é obviamente insolúvel. A grade não consegue encontrar dependências para uma boa previsão. Se tentarmos classificar os indicadores, isso também falhará, mas a grade não pode dividir os dados de entrada em classes.
Isto significa que é necessário processar os dados para a rede de uma forma mais criativa. Que é o que eu vou fazer a seguir.


Talvez pudéssemos abrir um novo fio, onde pudéssemos discutir a formação e o pré e pós processamento das amostras? Acho que seria de interesse para vários visitantes.
 
rip:

Por favor, formule uma regra de treinamento da rede no fórum.

Se for para mim, por favor, elabore. Eu realmente não entendo no que você está interessado.

Você respondeu minha pergunta ;) Neste caso, você desenvolveu uma rede que se aproxima da série temporal n-passos à frente. Você toma como inputs valores próximos e/ou valores indicadores. Ok, então outra pergunta. Quanto à classificação - o senhor disse que deveríamos tentar classificar os indicadores, posso desenvolver essa idéia? Sim, tenho outra observação. A prática tem mostrado que os melhores resultados são obtidos quando as redes de treinamento (treinamento com um professor), cuja amostra de treinamento tem uma distribuição normal. Fiz pesquisas de séries cronológicas formadas por citações várias vezes, há muito tempo ... Sua distribuição não tem nada a ver com a distribuição normal. Talvez devêssemos analisar a construção de uma amostra de treinamento e reduzi-la a uma amostra com distribuição normal. Neste caso, o MSE diminuirá muito mais rapidamente e você verá melhores resultados na amostra de teste.

Não apenas uma distribuição normal. Pelo menos os conjuntos de amostras também devem ser consistentes.
De modo geral, é a seguinte maneira.
Encontramos o início da primeira tendência ("para cima, para baixo") Algum número de barras antes deste início será uma entrada em grade, toda a tendência seguinte será enrolada na forma de 1 0 0 200 6 os três primeiros números são identificadores de tendência os dois últimos são mudança geral de preço e comprimento (em barras) da tendência. O próximo exemplo é formado não antes do final desta tendência.
É possível não prever a duração da tendência, mas apenas a mudança absoluta de preço sobre ela.
Isto tornará os conjuntos de exemplos (mais) consistentes.
Vamos obter exemplos de N1 N2 N3 para três tipos de tendências.
por exemplo
ACIMA ( 1 0 0 ) - 100
plano( 0 1 0) - 200
para baixo( 0 0 0 1) - 250

Como fazer uma distribuição normal.
1. se o número mínimo de exemplos (100) nos convém, podemos estupidamente cortar o resto
2. Aqueles exemplos que são menos numerosos deveriam ser oferecidos com mais freqüência, para equilibrá-los.
3. Acrescente aos exemplos aqueles que são poucos em número, dando-lhes um pouco de ruído.
4. Mais exemplos para baixo do que para cima, este último pode ser adicionado a este último com exemplos das citações invertidas de USDEUR em vez de EURUSD

Agora vou analisar estes exemplos na ordem decrescente da frieza :)
4. O ideal Não restam figuras, tudo é carne e sangue do mercado. Mas é tedioso escrever, terei que recalcular muitos índices por mim mesmo + para calculá-los eu mesmo.
3. É um pouco pior, pois damos pelo menos um pouco de leveza à grade na forma daquele ruído que acrescentamos.
2. Se mostrarmos a grade muitas vezes a mesma coisa, ela simplesmente se lembrará dela e não generalizará.
1. Embora para que o treinamento leve uma longa história (para garantir que após o descarte dos exemplos remanescentes) - então este método leva todos os três Poderosamente bate todos os outros três Para todos os parâmetros :)


Portanto, é algo assim. A propósito, meu consultor especializado é uma mistura de itens 1 e 2.
 
maveric:

Não apenas normal. No mínimo, os conjuntos de exemplos também devem ser consistentes.
Em geral é o que parece.
Encontramos o início da primeira tendência ("para cima") Algum número de barras antes deste início será uma entrada em grade, toda a tendência seguinte será enrolada na forma 1 0 0 200 6 os três primeiros números são identificadores de tendência os dois últimos são mudança geral de preço e o comprimento (em barras) da tendência. O próximo exemplo é formado não mais cedo do que o fim desta tendência.
É possível não prever a duração da tendência, mas apenas a mudança absoluta de preço sobre ela.
Isto tornará os conjuntos de exemplos (mais) consistentes.
Vamos obter exemplos N1 N2 N3 para três tipos de tendências.
por exemplo
UP ( 1 0 0 0 ) - 100
flat( 0 1 0 ) - 200
down( 0 0 0 1 ) - 250
A distribuição normal é a distribuição de probabilidade de uma variável aleatória. Um conjunto de dados não pode ser contraditório ou não contraditório - é o valor de uma f-função que descreve um processo físico e simplesmente é. Somente nossa interpretação de seus valores pode ser contraditória.

Você sabe, não consigo entender uma coisa, o que você quer que uma rede neural faça? Aproximar uma série ou obter uma classificação da situação do mercado? A meu ver, são tarefas fundamentalmente diferentes, portanto, os dados de entrada e saída devem ser preparados de forma completamente diferente.

Vamos definir um pouco os termos:
1. A aproximação de uma série é a construção de um mapeamento multidimensional F: x->y que generaliza um dado conjunto de exemplos {xt, yt}. Com base neste mapeamento, ele está realizando uma visão H-passo para o futuro com base em uma certa dependência latente nos termos da série. Isto é, pode ser generalizado - estamos tentando operar com o valor dos próprios membros da fila, bem como com algum conjunto de valores que descrevem a fila - eles são extremos locais, etc. (definimos um corredor de preços para algum intervalo, digamos)
2. Classificação - ou seja, é formada uma imagem de mercado - digamos, uma tendência ascendente. É necessário reconhecer esta imagem.

O que você acha disto? A julgar pelo seu código - você está tentando prever os pontos de entrada e saída do mercado. Francamente falando, duvido profundamente da exatidão do
para tal tarefa.

Eu ficaria grato - se você puder me provar que estou errado.

--
rip
 
rip:
Maveric:

Não apenas normal. Ao menos os conjuntos de exemplos também devem ser consistentes.
Em geral, é assim.
Encontramos o início da primeira tendência ("para cima, para baixo") Algum número de barras antes deste início será uma entrada em grade, toda a tendência seguinte será rolada na forma 1 0 0 200 6 os três primeiros números são identificadores de tendência os dois últimos são mudança geral de preço e comprimento (em barras) da tendência. O próximo exemplo é formado não antes do final desta tendência.
É possível não prever a duração da tendência, mas apenas a mudança absoluta de preço sobre ela.
Isto tornará os conjuntos de exemplos (mais) consistentes.
Vamos obter exemplos de N1 N2 N3 para três tipos de tendências.
por exemplo
ACIMA ( 1 0 0 ) - 100
plano( 0 1 0) - 200
para baixo( 0 0 0 1) - 250
A distribuição normal é a distribuição de probabilidade de uma variável aleatória. Um conjunto de dados não pode ser contraditório ou não contraditório - é o valor de uma f-função que descreve um processo físico e simplesmente é. Somente nossa interpretação de seus valores pode ser contraditória.

Você sabe, não consigo entender uma coisa, o que você quer fazer com que uma rede neural faça? Aproximar uma série ou obter uma classificação da situação do mercado? A meu ver, são tarefas fundamentalmente diferentes, portanto, os dados de entrada e saída devem ser preparados de forma completamente diferente.

Vamos definir os termos:
1. A aproximação das séries é uma construção de mapeamento multidimensional F: x->y, que generaliza um dado conjunto de exemplos {xt, yt}. Com base neste mapeamento, podemos imaginar o futuro em passos H com base em certas dependências ocultas de termos de séries. Isto é, pode ser generalizado - estamos tentando operar com o valor dos próprios membros da fila, bem como com algum conjunto de valores que descrevem a fila - eles são extremos locais, etc. (nós definimos um corredor de preços para um determinado intervalo, digamos).
2. Classificação - ou seja, é formada uma imagem de mercado - digamos, uma tendência ascendente. Esta imagem precisa ser reconhecida.

O que você acha disto? Pelo que entendi em seu código - você está tentando prever os pontos de entrada e saída do mercado. Francamente, tenho minhas dúvidas sobre a validade
da tarefa.

Eu ficaria grato - se você puder provar o contrário.

--
rip


Para problemas de classificação, é a nossa interpretação dos dados que conta. Grosso modo, em uma tarefa de reconhecimento de letra, em um conjunto de exemplos da letra A você não deve encontrar as letras X e U, etc. :)

Eu quero fazer as duas coisas. Talvez duas grades, talvez uma, como acontece. O primeiro passo da grade é classificar a situação atual. Se der um sinal suficientemente claro do início de uma tendência, então o segundo passo é uma tentativa de olhar para o futuro, a fim de estimar quanto dinheiro pode ser feito com esta tendência.

Presumo que a aproximação das séries financeiras é pior do que a classificação.

 
maveric писал (а):

Minha suposição é que as séries financeiras se prestam pior à aproximação do que à classificação.

As séries de preços, como qualquer outra série contínua, podem ser aproximadas sem nenhum problema. Apenas não confunda interpolação com extrapolação. A interpolação com um neurônio multicamadas pode ser feita como dois dedos no asfalto. Extrapolação de séries não periódicas por redes neurais é uma perda de tempo.