Discussão do artigo "Redes Neurais de Terceira Geração: Redes Profundas" - página 6
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Outro teste rápido, desta vez com um conjunto de treinamento de 6.000 barras de setembro de 2014 a fevereiro de 2015. O teste fora da amostra começa em março:
Novamente, temos uma fase lucrativa de cerca de 5 semanas até que o modelo se deteriore.
Acredito que a divisão em dados de teste e treinamento é desnecessária: podemos usar todos os dados para treinamento. A precisão e a matriz de confusão são enganosas porque, na maioria dos casos, o sinal ZZ é idêntico ao sinal da barra anterior, sugerindo erroneamente uma alta precisão. Para o lucro, somente as alterações de sinal são importantes.
Agora treinei um novo modelo com previsão da próxima barra e parece que ele realmente funciona. A precisão ainda está na faixa de 74%. Esta é a curva de patrimônio agora:
:
Ela se comporta exatamente como eu esperava: o sistema é lucrativo imediatamente após o treinamento e depois se deteriora lentamente conforme o mercado muda.
Portanto, a próxima etapa é um teste WFO com retreinamento regular do modelo. Para isso, o treinamento deve ser integrado ao script da estratégia.
Essa é a função corrigida para calcular o Sig da próxima barra:
A função "Compute" que é executada a cada 30 minutos pelo script da estratégia:
O script de estratégia, o "EA":
Agora treinei um novo modelo com previsão da próxima barra e parece que ele realmente funciona. A precisão ainda está na faixa de 74%. Esta é a curva de patrimônio agora:
:
Ela se comporta exatamente como eu esperava: o sistema é lucrativo imediatamente após o treinamento e depois se deteriora lentamente conforme o mercado muda.
Portanto, a próxima etapa é um teste WFO com retreinamento regular do modelo. Para isso, o treinamento deve ser integrado ao script da estratégia.
Essa é a função corrigida para calcular o Sig da próxima barra:
A função "Compute" que é executada a cada 30 minutos pelo script da estratégia:
O script de estratégia, o "EA":
Hi
Você moveu a série ZZ uma barra no futuro.
Você moveu a série dz uma barra no futuro.
Portanto, você moveu a variável de destino nas duas barras para o futuro.
Isso é equivalente a
dz <- Hmisc::Lag(diff(ZZ), shift=-2)Essa opção também pode ser usada.
Novamente, temos uma fase lucrativa de cerca de 5 semanas até que o modelo se deteriore.
Isso é normal. O modelo pode e deve ser reaprendido periodicamente.
Acredito que a divisão em dados de teste e de treinamento é desnecessária: podemos usar todos os dados para treinamento.
Pode. É importante lembrar alguns pontos importantes:1. Os conjuntos de treinamento e teste não devem ser cruzados.
2. O conjunto de treinamento deve ser misto
3. Se a proporção de classes estiver desequilibrada , faça o ajuste.
Fico feliz que haja colegas usando o R.
Atenciosamente
Vladimir
Você está certo quanto ao deslocamento duplo: O que o sistema de fato prevê é uma diferença ZZ que se baseia no preço médio da próxima barra. O ZZ é calculado a partir dos preços médios, mas no momento do cálculo temos o preço de fechamento, que normalmente está na metade do caminho entre o último e o próximo preço médio. Portanto, o deslocamento adicional prevê cerca de 1,5 barra no futuro e, de fato, obtive resultados muito piores sem o deslocamento adicional.
Agora tenho um script do Zorro que treina novamente a cada quatro semanas e testa as quatro semanas seguintes ao treinamento. A deepnet é bastante rápida, o script precisa de apenas cerca de 10 minutos para uma execução que abrange cerca de 60 ciclos de treinamento/teste. Este é o resultado:
Ele não parece tão bom quanto as primeiras impressões. Há claramente um potencial de melhoria, portanto, as próximas etapas seriam fazer experimentos com diferentes configurações de rede, períodos de tempo e diferentes indicadores.
O que é o Zorro?
Precisamos pegar não apenas os indicadores , mas também seus parâmetros. O algoritmo genético o ajudará.
O que é o Zorro?
Baixei e instalei tudo e coloquei todos os arquivos nas pastas. Todos os pacotes estão instalados. As pastas estão definidas para meus destinos.
Quando coloco o expert no gráfico EURUSD m30, tudo está bem, mesmo no DebugView, mas assim que coloco o indicador no gráfico, recebo um erro:
ExecutedCode: in >>> as.Logical(res <-GetRes()) [1]
Erro em if (z) { :
O resultado da função GetRes em "i_SAE_fun.r" é sempre NA e, portanto, ele não pode converter isso em bool e para de funcionar.
Alguém pode me indicar a direção certa? O que estou perdendo?
Com os melhores cumprimentos,
APoLLo
Baixei e instalei tudo e coloquei todos os arquivos nas pastas. Todos os pacotes estão instalados. As pastas estão definidas para meus destinos.
Quando coloco o expert no gráfico EURUSD m30, tudo está bem, mesmo no DebugView, mas assim que coloco o indicador no gráfico, recebo um erro:
ExecutedCode: in >>> as.Logical(res <-GetRes()) [1]
Erro em if (z) { :
O resultado da função GetRes em "i_SAE_fun.r" é sempre NA e, portanto, ele não pode converter isso em bool e para de funcionar.
Alguém pode me indicar a direção certa? O que estou perdendo?
Atenciosamente,
APoLLo
Olá, APoLLo.
Qual versão do R você tem ?
Esse é um artigo bastante longo e , após a atualização dos pacotes do R , algumas funções param de funcionar. É melhor usar o Revolution R Open (RRO 8.01)
Para verificar, execute um script no Rstudio.
Se você tiver tempo, também posso verificar onde está o erro.
Atenciosamente/
Vladimir
Oi APoLLo.
Qual versão do R você tem ?
Esse é um artigo bastante longo e , após a atualização dos pacotes do R , algumas funções param de funcionar. É melhor usar o Revolution R Open (RRO 8.01)
Para verificar, execute um script no Rstudio.
Se você tiver tempo, também posso verificar onde está o erro.
Atenciosamente/
Vladimir
Estou usando a versão mais recente do R 3.2.0 64bit junto com a compilação mais recente do MT4. Todos os pacotes do R foram baixados ontem, portanto, também devem ser da versão mais recente.
Se eu iniciar o EA no EURUSD M30, posso até mesmo me conectar a ele com o RGUI e verificar se há "SAE" e "prepr" e obter muitos números de volta.
Para mim, parece que a função GetRes no R está verificando se uma conexão está aberta, recuperando o valor flag1 que não está disponível no servidor (EA).
Talvez essa seja a causa do fato de "Acc", "K" ou "Kmax" nunca terem sido calculados corretamente.
Tenho tempo, portanto, se tiver a chance de dar uma olhada, ficarei muito feliz.
Mais tarde, tentarei usar o Revolution R 8.01 para verificar se isso funciona melhor.
Obrigado por sua ajuda :)
MUITO OBRIGADO ao autor pelo artigo. Comecei a me familiarizar com a aplicação de redes neurais no mercado com seu artigo. Eu não estava familiarizado com redes neurais antes e nunca havia usado a linguagem R. Mas agora eu a instalei e estou aprendendo. Parece complicado, mas é interessante!
E sim, por favor, diga-me, não consigo entender como o arquivo SAE.model funciona como uma biblioteca para um Expert Advisor ou como o quê? Ou seja, podemos salvar a estrutura da rede neural do R e depois usá-la como uma biblioteca regular em um Expert Advisor, ou o quê? É tudo muito confuso e complicado (para mim).