Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 412
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
As minhas soluções foram inicialmente baseadas no OpenNN (C++).
Agora eu aprendi muitas coisas e mudei para Keras (Python).
Lido principalmente com a aprendizagem profunda da predição de problemas de classificação.
Portanto, estamos a lidar com a mesma área de MO. O Keras é um bom pacote, especialmente porque é portado para o R.
Só que eu não entendo a questão de quê?
Boa sorte.
Portanto, estamos a lidar com a mesma área de MO. O Keras é um bom pacote, especialmente porque é portado para o R.
Só que eu não entendo a questão de quê?
Boa sorte.
Agora isto é interessante... significa que terão de ser feitos testes adicionais, talvez este rn não seja tão significativo como se pensava antes.
A única vantagem é a seleção de pesos no otimizador, ao mesmo tempo que outros parâmetros do sistema.
Atualmente estou tentando descobrir o quão bem ele calcula dentro de um intervalo de dados conhecidos. Tabela de multiplicação, por exemplo.
Atualização.
Experiências adicionais depois de mudar o Expert Advisor mostraram os seguintes resultados em comparação com o MLP 3-5-1 comum.
Foram utilizadas diferentes fórmulas para os testes:
//douplo func(double d1,double d2,double d3 ){retorno d1*d2;} //o erro é 0-2%, porque a multiplicação é inerente às fórmulas. 2% é obtido porque o otimizador genético nem sempre se detém numa solução ideal. Mas também há uma solução absolutamente exacta com erro = 0.
A conclusão é que o MLP regular tem 2-3 vezes menos erros do que o RNP da Reshetov. Talvez parte deste erro se deva ao fato de que o otimizador genético terminal MT5 não se detém em uma solução ideal.//douplo func(double d1,double d2,double d3 ){retorno d1*d2*d3;}// erro 0-2% multiplicação está nas fórmulas, no MLP 1%
//douplo func(double d1,double d2,double d3 ){retorno MathSin(d1);}// 2-6% de erro, no MLP 0,1%
//douplo func(double d1,double d2,double d3 ){retorno MathSin(d1)*MathSin(d2)*MathSin(d3);}// erro 2%, no MLP 1%
//douplo func(double d1,double d2,double d3 ){retorno MathSin(d1)*MathSin(d2)*MathSqrt(d3);}// erro 3-4%, no MLP 1%
//douplo func(double d1,double d2,double d3 ){retorno MathSin(d1)*MathPow(d2,.33)*MathSqrt(d3);}/ erro 8-4%, no MLP 1,5%
//douplo func(double d1,double d2,double d3 ){retorno MathPow(d1,2)*MathPow(d2,.33)*MathSqrt(d3);}/ erro 8-4%, no MLP 1,5%
Estou a tentar descobrir o quão bem conta dentro de uma série de dados conhecidos. Uma tabela de multiplicação, por exemplo.
Atualização.
Experiências adicionais após a mudança do EA mostraram os seguintes resultados, em comparação com o MLP 3-5-1 normal.
Foram utilizadas diferentes fórmulas para os testes:
//douplo func(double d1,double d2,double d3 ){retorno d1*d2;} //o erro é 0-2%, porque a multiplicação é inerente às fórmulas. 2% é obtido porque o otimizador genético nem sempre se detém numa solução ideal. Mas também existe uma solução absolutamente exacta com erro = 0.
Em resumo, podemos concluir que o MLP regular tem 2-3 vezes menos erros que o RNNN da Reshetov. Talvez parte desse erro se deva ao fato de que o otimizador genético terminal MT5 não se detém em uma solução ideal.//douplo func(double d1,double d2,double d3 ){retorno d1*d2*d3;}// erro 0-2% de multiplicação é inerente às fórmulas, no MLP 1%
//duplo func(double d1,double d2,double d3 ){retorno MathSin(d1);}// erro 2-6%, em MLP 0,1%
//douplo func(double d1,double d2,double d3 ){retorno MathSin(d1)*MathSin(d2)*MathSin(d3);}// erro 2%, em MLP 1%
//douplo func(double d1,double d2,double d3 ){retorno MathSin(d1)*MathSin(d2)*MathSqrt(d3);}// erro de 3-4%, em MLP 1%
//douplo func(double d1,double d2,double d3 ){retorno MathSin(d1)*MathPow(d2,.33)*MathSqrt(d3);}// erro 8-4%, em MLP 1.5%
//douplo func(double d1,double d2,double d3 ){MathPow(d1,2)*MathPow(d2,.33)*MathSqrt(d3);}// erro 8-4%, em MLP 1,5%
Sim, resultados interessantes, talvez uma enumeração completa fosse mais precisa.
Sim, resultados interessantes, talvez um exagero total fosse mais preciso
Seria, mas depois de algumas semanas ou meses... 8 coeficientes selecionáveis com 1% passo 1008= 10000000000000000 iterações, e o próprio terminal muda para a genética, com isso muitos.
Você pode me dizer, classificando MLP de algibeira que eu entendo requer pelo menos 2 saídas, como trabalhar com isso? nenhuma ajuda ou descrição em qualquer lugar... tinny )
Posso perguntar, classificando o MLP de algibeira que entendo, requer pelo menos 2 saídas, como trabalhar com ele? Não tenho ajuda, não tenho descrição...)
Sim 2, a partir da ajuda http://alglib.sources.ru/dataanalysis/neuralnetworks.php
Um caso especial são as redes neurais com camada de saída linear e a normalização de saídas SOFTMAX. São utilizados para os problemas de classificação, nos quais as saídas da rede devem ser não negativas e sua soma deve ser estritamente igual a uma, o que permite utilizá-los como probabilidades de atribuir o vetor de entrada a uma das classes (no caso limite, as saídas da rede treinada convergem para essas probabilidades). O número de saídas de tal rede não deve ser sempre inferior a duas (limitação imposta pela lógica elementar).
Sim, a partir da referência http://alglib.sources.ru/dataanalysis/neuralnetworks.php
Um caso especial são as redes neurais com camada de saída linear e a normalização das saídas SOFTMAX. São utilizados para os problemas de classificação, nos quais as saídas da rede devem ser não negativas e sua soma deve ser estritamente igual a uma, o que permite utilizá-los como probabilidades de atribuir o vetor de entrada a uma das classes (no caso limite, as saídas da rede treinada convergem para essas probabilidades). O número de saídas de tal rede é sempre pelo menos duas (limitação ditada pela lógica elementar).
Ah, bem, isto é, alimentamos a probabilidade de um ou outro resultado, por exemplo, probabilidade de comprar 0,9, depois probabilidade de vender 0,1, um array servirá como um buffer para as probabilidades de compra, outro para vender, nós os preenchemos com estes valores e depois do treinamento eles serão usados para despejar separadamente as probabilidades de compra e venda, eu vejo, certo?
Bem, em outras palavras, alimentamos a probabilidade de um ou outro resultado, por exemplo, a probabilidade de comprar é 0,9, e para vender - 0,1. Um array servirá como um buffer para as probabilidades de compra, e o outro para vender probabilidades e após o treinamento nelas descartará as probabilidades separadamente, presumo correto?
E pelo que li - eu tenho a mesma opinião.
Embora eu não saiba qual é a sua vantagem... ter 1 saída, também temos probabilidades - cerca de 0 (ou -1) Comprar, e cerca de 1 Vender. (ou vice versa, dependendo de como você treina).
Pode ser útil se houver 3 ou mais saídas? Afinal de contas, 1 saída seria difícil de usar.... para 3 ou 4 tarefas (embora você também possa usar 0, 0,5 e 1 como classes Comprar, Esperar, Vender)
E pelo que li - eu tenho a mesma opinião.
Embora eu não saiba qual é a sua vantagem... ter 1 saída, também temos probabilidades - cerca de 0 (ou -1) Comprar, e cerca de 1 Vender. (Ou vice versa, dependendo de como você treina).
Pode ser útil se houver 3 ou mais saídas? Então 1 saída seria difícil de usar.... para 3 ou 4 tarefas (embora você também possa usar 0, 0,5 e 1 como classes Comprar, Esperar, Vender)
Sim, provavelmente fizeram-no de forma a que fosse possível ter mais de 2 classes... então provavelmente será mais agrupado e poderá usar outros métodos como k-means :)