Existe um padrão para o caos? Vamos tentar encontrá-lo! Aprendizado de máquina com o exemplo de uma amostra específica. - página 28

 
RomFil #:

Adicionei uma coluna: "1" compra, "-1" venda. Acho que fiz tudo certo, mas não verifiquei... :) Preguiçoso.

No gráfico sem spread e comissão, este é o resultado em pontos:

Resultados: PR=157488 +negociações=778 -negociações=18 (lucro, número de negociações positivas e negativas)

Spread de 0,00050:


Resultados: PR=117688 +negociações=629 -negociações=167

Spread de 0,00100:

PR=77888 +negociações=427 -negociações=369

Spread a 200:


PR=-1712 +negociações=241 -negociações=555

Parabéns pelo seu superoscilador!

Obtive esses resultados levando em conta o Target_P (os sinais que não coincidem na direção são excluídos) - estou confuso com as flutuações no início e depois com um crescimento tão rápido.

Se não houver nenhum erro em seu código, você pode se considerar um milionário!

Pode me dizer qual é o segredo? Entendo que se trata essencialmente de um polinômio que você, de alguma forma, levou aos limites de um oscilador.

 
Aleksey Vyazmikin #:

Parabéns pelo seu super oscilador!

Obtive esses resultados levando em conta o Target_P (os sinais que não coincidem na direção são excluídos). No entanto, é confuso que ele flutue no início e depois cresça tão rapidamente.

Se não houver nenhum erro em seu código, você pode se considerar um milionário!

Você pode me dizer qual é o segredo? Entendo que se trata essencialmente de um polinômio que você, de alguma forma, levou aos limites de um oscilador.

Quase não há segredos. Eu lhe contei tudo acima. Nada de polinômios.

Vou lhe dar algumas dicas:

1) Alvo. Ele deve ser determinado por si mesmo, ou seja, você deve filtrar os dados de forma que o lucro potencial seja maximizado em movimentos fortes e planos. Eu costumava usar a wavelet Dobeshi para a decomposição da série e diria até que é a variante mais correta (embora agora eu tenha encontrado uma que consome menos recursos). O mais importante na filtragem é não fazer isso "na hora" e excluir pelo menos 10 a 20% dos dados nas bordas do traço da amostra. É necessário remover os dados das bordas para excluir os efeitos de borda.

2) Oscilador. Na verdade, ele pode ser o mais simples. Por exemplo, o esquecido RVI ... :) Apenas o período correto deve ser selecionado.

3) Mas o mais importante são as redes neurais "certas" e o algoritmo de sua aplicação ... :) Incluindo a interpretação correta do resultado das redes neurais.


O erro no código pode estar apenas no tempo de aparecimento do sinal (embora eu já tenha verificado oito vezes e não tenha encontrado nenhum erro), mas mesmo que o aparecimento do sinal seja deslocado para a direita (ou seja, para fazer um atraso artificial do sinal em 1-2 etapas), também há um lucro - menor do que o inicial, é claro, mas as condições iniciais da primeira postagem são grandes.

 
RomFil #:

Não há quase nenhum segredo. Eu lhe disse tudo acima. Não há polinômios.

Vou escrever uma série de dicas:

1) Meta. Ele deve ser determinado por si mesmo, ou seja, você deve filtrar os dados de modo que o lucro potencial seja maximizado em movimentos fortes e planos. Eu costumava usar a wavelet Dobeshi para a decomposição da série e diria até que é a variante mais correta (embora agora eu tenha encontrado uma que consome menos recursos). O mais importante na filtragem é não fazer isso "na hora" e excluir pelo menos 10 a 20% dos dados nas bordas do traço da amostra. É necessário remover os dados das bordas para excluir os efeitos das bordas.

2) Oscilador. Na verdade, ele pode ser o mais simples. Por exemplo, o esquecido RVI ... :) Apenas o período correto deve ser selecionado.

3) Mas o mais importante são as redes neurais "certas" e o algoritmo de sua aplicação ... :) Incluindo a interpretação correta do resultado das redes neurais.


O erro no código pode estar apenas no tempo de aparecimento do sinal (embora eu já tenha verificado oito vezes e não tenha encontrado nenhum erro), mas mesmo que o aparecimento do sinal seja deslocado para a direita (ou seja, para fazer um atraso artificial do sinal em 1-2 etapas), também há um lucro - menor do que o inicial, é claro, mas as condições iniciais da primeira postagem são grandes.

A primeira dica - é sobre meus dados, portanto, vamos ignorá-la por enquanto.

A segunda dica - eu me pergunto - você usou o trem de amostra?

Terceira dica - e aqui eu não entendo - por que tantas redes neurais? O que você alimenta na entrada, retornos ou o quê?

 
Aleksey Vyazmikin #:

A primeira dica é sobre meus dados, portanto, vamos ignorá-la por enquanto.

A segunda dica é: será que você tem coletado amostras?

Terceira dica - e aqui eu não entendo - por que tantas redes neurais? O que você alimenta na entrada, retornos ou o quê?

2) Sim, apenas a amostra do trem é superfaturada, porque se considera que a amostra do trem e a amostra do teste são o resultado de um único e mesmo processo. Se os processos forem diferentes, naturalmente nada será obtido.

3) É muito simples. Você já estudou genética?

Então, quando a genética trabalha para resolver uma equação com dez variáveis, por exemplo, o mesmo resultado (muito próximo) pode ser obtido com variáveis diferentes. O mesmo acontece com as redes neurais. Crie e treine duas redes neurais com as mesmas amostras e, em seguida, observe o erro dessas redes e seus coeficientes de peso. Eles serão diferentes!

Além disso, para diferentes partes dos gráficos, você precisa de diferentes profundidades de amostras alimentadas na entrada das redes neurais. Ou seja, redes neurais com diferentes profundidades de amostragem têm precisão diferente em diferentes partes do gráfico. Portanto, o comitê "certo" permite responder corretamente em toda a extensão das amostras. E, principalmente, que esse próprio comitê determine essa correção. Talvez isso já seja o rudimento da IA... :)

 
RomFil #:

3) É muito simples. Você já fez genética?

Então, quando a genética trabalha para resolver uma equação com dez variáveis, por exemplo, o mesmo resultado (muito próximo) pode ser obtido com variáveis diferentes. O mesmo acontece com as redes neurais. Crie e treine duas redes neurais com as mesmas amostras e, em seguida, observe o erro dessas redes e seus coeficientes de peso. Eles serão diferentes!

Além disso, para diferentes partes dos gráficos, você precisa de diferentes profundidades de amostras alimentadas na entrada das redes neurais. Ou seja, as redes neurais com diferentes profundidades de amostragem têm precisão diferente em diferentes partes do gráfico. Portanto, o comitê "certo" permite responder corretamente em toda a extensão das amostras. E, principalmente, que esse próprio comitê determine essa correção. Talvez isso já seja o rudimento da IA... :)

Você está me confundindo - não consigo entender, você tem uma fórmula de oscilador com coeficientes livres, que são selecionados por meio da genética? A genética é implementada em uma rede neural (não conheço essa variante)?

Está claro, mas como você coletou e distribuiu os coeficientes - no trem ou em outra amostra?

Entendo corretamente que a entrada são valores puros com algum recuo ou até mesmo janelas inteiras, mas de tamanhos diferentes em redes diferentes?

 
Aleksey Vyazmikin #:

Você está me confundindo - não consigo entender, você tem uma fórmula de oscilador com coeficientes livres, que são selecionados por meio da genética? A genética é implementada em uma rede neural (não conheço essa opção)?

Está claro, mas como você coletou e distribuiu os coeficientes - no trem ou em outra amostra?

Entendo corretamente que a entrada são valores puros com algum recuo ou até mesmo janelas inteiras, mas de tamanhos diferentes em redes diferentes?

A genética é comum, sem rede neural (para ser honesto, a genética na rede neural também é desconhecida para mim).

Tudo é determinado apenas em uma amostra de trens. O próprio comitê determina todos os coeficientes.

Sim, valores quase puros, diferentes profundidades, diferentes janelas, etc.

 
RomFil #:

A genética é comum, sem neurose (para ser honesto, a genética na neurose também é desconhecida para mim).

Tudo é determinado apenas em uma amostra de trens. O próprio comitê determina todos os coeficientes.

Sim, valores quase puros, diferentes profundidades, diferentes janelas, etc.

O oscilador foi mencionado anteriormente como uma imagem coletiva não aplicada na realidade?

 
Aleksey Vyazmikin #:

O oscilador foi mencionado anteriormente como uma imagem coletiva não aplicada na realidade?

Não, o oscilador não é uma imagem coletiva, mas uma realidade (colocada no porão):


O próprio oscilador real + pontos é a previsão. Os pontos aparecem nos primeiros ticks de uma nova barra. Mas o aparecimento de um ponto não é um sinal para uma negociação - é apenas um aviso. Além disso, o movimento adicional do preço é analisado e só então a decisão sobre a negociação é tomada. A propósito, esse gráfico também mostra um stop (marca vermelha), que em 98-99% dos casos não é rompido - é uma defesa contra flutuações bruscas. Esse é o sinal para comprar, na verdade... :)

 
RomFil #:

Não, o oscilador não é uma imagem coletiva, ele é real (colocado no porão):


O próprio oscilador + pontos é uma previsão. Os pontos aparecem nos primeiros ticks de uma nova barra. Mas o aparecimento de um ponto não é um sinal para uma negociação - é apenas um aviso. Além disso, o movimento posterior do preço é analisado e só então a decisão sobre a negociação é tomada. A propósito, esse gráfico também mostra um stop (marca vermelha), que em 98-99% dos casos não é rompido - é uma defesa contra flutuações bruscas. Esse é o sinal para comprar, na verdade... :)

Bem, esse sistema é puramente seu e não tem nada a ver com os dados que forneci, porque você não usou outros dados para análise?

Estou anexando um arquivo - por favor, aplique nele o modelo que você treinou anteriormente - estou interessado no resultado.

Arquivos anexados:
 
Então, sua genética é responsável pelos dados que alimentam as entradas da rede? E os dados em si são o viés da série temporal?
Razão: