Como formar os valores de entrada para os NS corretamente. - página 23

 
StatBars писал (а) >>

Não estou desenvolvendo NS, estou atualmente procurando por entradas e saídas ótimas para construir uma amostra de treinamento, acho que uma amostragem adequada é mais importante do que NS, há muitas variantes de NS em diferentes idiomas na web...

Certo. Arquitetura com boas entradas não é um problema. Pode-se dizer: as entradas são tudo, a arquitetura não é nada.


Aqui, os senhores pegaram as entradas normais e obtiveram resultados adequados com a MTS "Сombo":




--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Isto é quando a EA trabalha com um lote fixo. Eu ainda não adicionei um MM a ele.
resposta 11.05.2008 14:17 zxc
Valio:

Eu também tentei colocar minha mão neste milagre. Eu tentei por uma semana, depurei o algoritmo na versão básica e adicionei algumas funções próprias no BasicTradingSystem, ou seja, refiz o "BTS básico" na língua do autor. Os resultados são fantásticos em dados históricos: rentabilidade de 8 a 12, retorno esperado é de cerca de 1000, mas é real com meu próprio indicador. Testei em 1H EUR, o intervalo de tempo é de cerca de meio ano. Próximo mês após - resultado

"no mês seguinte - o resultado" ????

Valio, então qual é o resultado que você obtém? Muito interessante!

É que eu também refiz este EA, e no início a rentabilidade do euromoney por um ano (nem mesmo por meio ano, mas por um ano) por H1 era superior a 18 (e superior)! Mas os avanços acabaram não sendo tão bons, para dizer de forma branda.

Agora, depois de outra revisão, a rentabilidade durante a otimização é menor (cerca de 10), mas agora para frente está se mantendo decentemente (mais de 3 meses). Para frente, mais de 3 meses, a rentabilidade é superior a 2,5. Ainda estou trabalhando nisso, acho que pode ser um Expert Advisor muito interessante.

resposta
 
Reshetov писал (а) >>

Certo. A arquitetura, com as entradas certas, não é mais um problema. Pode-se dizer: as entradas são tudo, a arquitetura não é nada.


Aqui, os cavalheiros pegaram as entradas certas e obtiveram os resultados apropriados com o "Combo" da MTS:

Em certa medida, concordo com você. Mas, a arquitetura de rede desempenha um grande papel ... Por exemplo, as redes RBF são muito melhores para resolver alguns problemas de interpolação.

 
rip писал (а) >>

Concordo com você em alguns pontos. Mas, a arquitetura de rede desempenha um grande papel ... As redes RBF, por exemplo, são muito melhores para resolver alguns problemas de interpolação.

Para o comércio, os problemas de interpolação e aproximação são absolutamente inúteis, porque o mercado está mudando o tempo todo e as cotações não são funções suaves. Aqui precisamos resolver os problemas de extrapolação, para que a estratégia comercial possa passar com sucesso nos testes futuros, em vez de se limitar a adequar a história. Não precisamos saber qual era o valor do preço entre o mais ou menos e o mais ou menos datado, porque ele já é conhecido sem nenhuma interpolação.


Portanto, não perca seu tempo com interpolações e arquiteturas. Além disso, a interpolação e a aproximação podem ser feitas usando diferentes métodos e é muito mais fácil e mais precisa.


Escolha entradas adequadas para que a classificação de padrões possa ser realizada mesmo em uma arquitetura elementar. Depois disso, não há mais necessidade de selecionar a arquitetura correspondente. Tentar fazer o oposto é apenas uma perda de tempo.


Para construir uma casa, o mais importante é a fundação, não o acabamento. Embora o acabamento pareça mais atraente do que a base.


E assim é a arquitetura da NS. Certamente acrescenta funcionalidade, mas somente se as entradas forem adequadas. Se for inadequado, o reboco não salvará a casa do colapso, se a fundação desmoronar.

 
Reshetov писал (а) >>

A coisa mais importante para construir uma casa é a fundação, não o acabamento. Embora o acabamento pareça mais atraente do que a base.

Assim como a arquitetura do NS. Certamente acrescenta funcionalidade, mas somente se as entradas forem adequadas. Se forem inadequados, então o gesso não salvará a casa do colapso se a fundação desmoronar.

OK, eu concordo - sinais de entrada e saída são importantes. Esta é a declaração do problema que define a arquitetura NS. Classificação por padrões, essa é uma delas.

Digamos, por que um sinal de entrada não pode ser a determinação do sinal da próxima barra + a determinação dos extremos da mesma barra? O que está errado?


Mesmo para a classificação, a questão importante será qual NS você toma e como você prepara os dados. Uma rede não é uma ferramenta precisa, ela não pode

Dar o resultado aos centésimos, mas pode dar os critérios ... em relação ao qual outra ferramenta dará o cálculo.

 
Reshetov писал (а) >>

Para o comércio, os problemas de interpolação e aproximação são absolutamente inúteis, porque o mercado está mudando o tempo todo e as cotações não são funções suaves. Aqui precisamos resolver os problemas de extrapolação, para que a estratégia comercial passe com sucesso nos testes futuros, em vez de se limitar a adequar-se à história. Não precisamos saber qual era o valor do preço entre assim e assim e data, porque já é conhecido sem nenhuma interpolação.

Portanto, não perca seu tempo com interpolações e arquiteturas. Além disso, a interpolação e aproximação pode ser feita por vários outros métodos e é muito mais fácil e mais precisa.


Escolha entradas adequadas para que a classificação de padrões possa ser realizada mesmo em uma arquitetura elementar. Depois disso, não há mais necessidade de selecionar a arquitetura correspondente. Tentar fazer o oposto é apenas uma perda de tempo.


Para construir uma casa, o mais importante é a fundação, não o acabamento. Embora o acabamento pareça mais atraente do que a base.


Assim como a arquitetura do NS. Certamente acrescenta funcionalidade, mas somente se as entradas forem adequadas. Se for inadequado, o gesso não salvará a casa do colapso se a fundação desmoronar.

Eu concordo plenamente. Como me disse um estimado camarada (Steve Ward) - "Procure por entradas" )))))

 
TheXpert писал (а) >>

Quieto!!! Eu já tenho um VC++ libc pronto.

Só existem 2 problemas:

1. ligação para Boost, eu quero me livrar dele, é melhor serializá-lo manualmente, ele falha de qualquer forma.

2. algo com passo adaptativo.


Por que fazer uma bicicleta? Especialmente lá

1. MLP com possibilidade de criar estrutura em árvore.

2. std::valarray + otimização agressiva das operações para uma contagem mais rápida.

3. Há uma etapa adaptativa

4. Padrões com auto-normalização.

5. amplas oportunidades de expansão.



Ы ?

Sim, está tudo muito bem, obrigado pela sugestão. Mas como eles dizem é melhor fazer isso uma vez para si mesmo :)

Eu realmente aprendi muito neste fim de semana.

Especialmente quando eu consegui reduzir o número de ciclos de 10e7 para cerca de 10e4.

Eu o fiz de duas maneiras.

1. O neurônio com o maior erro é corrigido em velocidade dupla. (tentou substitui-lo por um neurônio com erro mínimo - pior)

2. Se a correção de um neurônio for inferior a um mínimo (por exemplo, 10e-6), sua correção aumenta em 10 vezes.

Eu gostei muito. :)

Bem, quanto a usar o de outra pessoa, até que você mesmo entenda a necessidade de algo, você ainda não precisa.

Especialmente porque a velocidade é importante aqui, e o aumento da funcionalidade em detrimento da velocidade é inaceitável. Na minha opinião, é melhor escrever uma grade para uma tarefa específica. É claro, não sem ter objetos normais e uma estrutura bem pensada, mas...

Sobre os pontos 2 e 3, já é interessante. Existe alguma maneira de descobrir os métodos que você usa?

-----------------------------------

Eu li os posts. É pena que ainda estejamos aqui. :) Tudo o que estou fazendo é escrever COMO IMPORTANTE SÃO OS INPUTOS!!!.Arquitetura não é nada - insumos são tudo, Procure por insumos, etc.

Mas não há nada de concreto. Talvez os gurus gostariam de compartilhar? А?

 
rip писал (а) >>

>> O que é uma libra?

Meu próprio, eu já o coloquei no RSDN antes. Ainda não cheguei à SourceForge, e ela precisa de mais trabalho...

 
sergeev писал (а) >>

Eu fiz isso de duas maneiras.

1. O neurônio com o maior erro é corrigido com dupla velocidade. (tentou substitui-lo por um neurônio com erro mínimo - pior)

2. Se a correção de um neurônio for inferior a um mínimo (por exemplo, 10e-6), sua correção aumenta em 10 vezes.

Eu gostei muito. :)

Sim, legal, por que eu mesmo não o construo?

Bem, quanto a usar o de outra pessoa, até que você mesmo entenda a necessidade de algo, você ainda não precisa.

Mais ainda, que a velocidade é importante aqui, e o aumento da funcionalidade às custas da velocidade é inadmissível. Na minha opinião, é melhor escrever uma grade para uma tarefa específica. É claro, não sem ter objetos normais e estrutura pensada, mas...

Quanto à velocidade - fiz o melhor que pude, acho que posso acelerar o código na minha liberdade em 35%, no máximo. E não vai ser fácil :).

Com relação aos itens 2 e 3, eu já estou curioso. Existe alguma maneira de descobrir quais métodos são utilizados?

2. A "linguagem C++", Bjorn Straustrup, busca uma otimização agressiva, o objetivo é reduzir as operações de cópia.

3. V. Golovko, nas notas de palestra, tente pesquisar suas obras ou google "adaptative step learning", não posso dar um link em particular agora.

5. Extensão não em detrimento da velocidade, os modelos governam :).

 
sergeev писал (а) >>

-----------------------------------

Eu li os posts. É uma pena que ainda esteja lá. :) Todos apenas escrevem COMO IMPORTANTE para criar entradas!! Arquitetura não é nada - entradas são tudo, procure por entradas, etc.

E não há nenhuma especificidade. Talvez os gurus compartilhem? А?

Mais especificamente, posso aconselhá-lo sobre como procurar insumos adequados.


Pegue o perceptron mais simples (veja Como encontrar uma estratégia comercial lucrativa ) e conecte a sua entrada certos induzidos e suas combinações. O que dá o maior fator de lucro sobre este mesmo perceptron, ou seja, o melhor ajuste nos testes com lote constante (sem MM), é muito provável que passe os testes futuros em uma arquitetura mais complexa. Por que, é fácil explicar. Afinal de contas, o perceptron é uma classificação linear. O que significa que obteremos a separabilidade linear das entradas por padrões. Por arquitetura acrescentaremos a classificação por parâmetros não lineares e obteremos um resultado melhor.


Se você fizer o contrário, você não recebe nada. Uma arquitetura sofisticada consome imensos recursos e procura os sinais dos padrões de uma só vez por uma separabilidade não linear, ignorando a separabilidade linear. E a não-linearidade sem linearidade nada mais é do que mera adaptação. O que recebemos é uma perda de tempo.


Mais um lanche. Se a grade é treinável, ela nunca deve ser treinada até o final. Deve ser sempre pouco treinado. Por exemplo, para treiná-la completamente, são necessárias 1000 épocas, divididas por 3 e você recebe cerca de 300 épocas. Isto é o bastante. Por quê? Se a rede for completamente superlotada, ela só será adequada para ambientes estacionários. E os instrumentos financeiros são ambientes não estacionáriamente intercambiáveis. Ou seja, só pode mudar parcialmente de um estado estacionário em algum tempo, enquanto permanece no mesmo estado na maior parte do tempo. Ou também pode voltar ao estado anterior. Portanto, um reaperfeiçoamento completo da malha é um ajuste nu a algum ambiente temporário passível de troca.


E finalmente, para os nerds que pensam que as capacidades de interpolação NS são necessárias para o comércio, posso lhes dar um contra-argumento específico. Basta pegar qualquer indicador ou oscilador redesenhado e você terá uma interpolação incrível na história sem nenhuma rede neural e sem arquiteturas complicadas. É claro que os comerciantes evitam redesenhar os índices porque o que é adequado para interpolação ou aproximação não é adequado para extrapolação em condições de não-estacionaridade.



 
Reshetov писал (а) >> Mais um lanche. Se a rede é treinável, ela nunca deve ser treinada até o fim. Deve ser sempre pouco treinado. Por exemplo, você precisa de 1000 épocas para treiná-lo completamente, dividir por 3 e receber cerca de 300 épocas. Isto é o suficiente. Por quê? Se a rede for completamente superlotada, ela só será adequada para ambientes estacionários. E os instrumentos financeiros são ambientes não estacionáriamente intercambiáveis. Ou seja, só pode mudar parcialmente de um estado estacionário em algum tempo, enquanto permanece no mesmo estado na maior parte do tempo. Ou também pode voltar ao estado anterior.
Eu reforçaria ainda mais este conselho: dividir por 10. Por alguma razão, vem à mente um ramo sobre ressonância estocástica. A aprendizagem da malha até o final pode conduzir a função alvo a um mínimo profundo, ou seja, a um estado estável. Estados estáveis não são nada típicos dos mercados financeiros. Eles são quase estáveis, ou seja, estão prontos para se transformar em um desastre (tendência) a qualquer momento sob a influência de até mesmo um leve "ruído". Mas isto é apenas pensamento filosófico...