Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 100
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Você está absolutamente certo no início. Finalmente apareceram algumas pessoas sensatas no ramo. Mas o padrão em si tem um papel preditivo, e não é o padrão em si que importa, mas a reação do mercado a ele. E se esta reacção for idêntica à do treino, a rede tirará a conclusão certa. Então é assim....
O que fazer? Tentar puxar o classificador besoviano ingênuo, ou estudar os gPredictors?
xO que é o classificador Besov???? Não percebo, agora o Reshetov fez uma coisa terrivelmente fixe, com, sem, massa. E tu continuas a mexer nos teus R's. A fazer um monte de manipulação de dados desnecessária. E qual é o exemplo da íris???? Interessante ver como o Predictor vai descobrir....
Só soube do R aqui. E eu acidentalmente perdi uma carta na palavra classificadora Bayesiana (talvez de Freud). E o programa de Reshetov é legal, eu não discuto. Eu não sei sobre a Iris.
xO que é o classificador Besov???? Não entendo, agora o Reshetov fez uma coisa muito fixe, com, fora, massa. E tu continuas a mexer nos teus R's. A fazer um monte de manipulação de dados desnecessária. E qual é o exemplo da íris???? Interessante ver como o Predictor vai descobrir....
Posso ver o resultado das negociações de ontem?
O carro do IShaitan Reshetov :-)
Porque é que os indicadores nunca funcionaram e nunca funcionarão, na minha opinião...
Muito disso você mesmo sabe e já fez, mas eu vou escrever mais completamente para excluir algumas suposições que falamos da mesma maneira, mas fazemos de maneira diferente.
Você precisa ter uma função de aptidão física cuidadosamente aperfeiçoada para estimar os parâmetros do modelo. Se a função avalia parâmetros específicos do modelo e seleciona preditores com uma pontuação alta - então deve haver bons resultados no teste com novos dados.
(Terei em mente para qualquer estimativa que quanto mais alto for, melhor é)
Por exemplo, você tem dados para treinamento, 5 anos. E os parâmetros para gbm são n.árvores, interação.profundidade, retração, n.minobsinnode, distribuição, bolsa.fração.
A função fitness deve repetir pelo menos 50 vezes em um ciclo:
1) dividir os dados em 2 partes, 50%/50%. Deve haver amostragem aleatória com amostra e amostragem sequencial (a peça para treino está algures no meio, e para validação o que a rodeia no início e no fim dos dados em bruto). Incluindo as versões extremas, onde o treinamento na primeira metade da tabela e a validação na última, e vice-versa. Acho importante ter tanto amostras sequenciais como amostras aleatórias para treinamento. Na figura você pode ver mais claramente alguns exemplos de partição aleatória e seqüencial, as linhas verdes são para treinamento, as amarelas são para validação.
2) treinar o modelo na amostra de treinamento (os parâmetros do modelo e os preditores usados são os mesmos durante todo o ciclo, aqueles que você está tentando estimar), então preveja estes mesmos dados com este modelo, e avalie a previsão - precisão, r^2, ou algo mais. Eu, por exemplo, arredondo o resultado da regressão para as classes, e uso a função Kappa de Cohen para estimativa, é de carpete, eu gosto mais do que a precisão da classificação ou precisão da regressão. Mas só funciona para duas classes. Para três classes eu acho difícil sugerir qualquer coisa, é importante que a estimativa leve em conta a precisão de cada classe separadamente, e dê alguma estimativa geral com base nisso.
3) Aplicar um modelo treinado para prever os dados de uma amostra de validação, estimar a previsão com a mesma função.
4) Ambas as estimativas (treinamento e validação) devem estar próximas uma da outra, e o mais alto possível. Eu uso este código para a pontuação final - (min(pontuação1,pontuação2) - (max(pontuação1,pontuação2)-min(pontuação1,pontuação2)) - do valor mínimo é subtraído o delta deles.
No final de cada iteração vamos obter alguma pontuação, e devido à divisão aleatória dos dados pode variar de -1 a 1 (ou em outro intervalo, dependendo da função utilizada). Calculamos o seu valor médio e devolvemo-lo como resultado da função fitness. Adicionalmente, subtraio do valor de fitness um pequeno número (0,0001) para cada preditor utilizado, para penalizar o modelo por um conjunto demasiado grande de dados necessários.
Aplico isto em conjunto com a genética, que capta os preditores e os parâmetros do modelo, maximizando o valor da aptidão física.
O resultado final é um conjunto de preditores e parâmetros de modelo que, em média, têm bons resultados de previsão sobre os dados de treinamento disponíveis. O modelo pode encontrar alguns padrões nos dados, aprender com eles e ainda encontrar com sucesso esses mesmos padrões nos novos dados de validação, qualquer que seja a amostra de dados utilizada para treinamento.
Como o modelo é treinado usando apenas 50% dos dados disponíveis cada vez e os parâmetros e preditores são escolhidos com base nisso, é uma condição importante para o modelo.
O modelo para o comitê deve ser treinado nas mesmas condições - seja por amostragem ou pela seleção sucessiva de 50% dos dados para treinamento. Para cada novo modelo também é necessária uma nova amostra (ou conjunto sequencial).
Quanto tempo esse comitê dará boas previsões é desconhecido, mas considerando que os dados de treinamento foram para 5 anos, o comitê obviamente viverá menos que os próximos 5 anos.
E mais um ponto importante - se depois de todo o tempo gasto para a criação do comitê será uma negociação com prejuízo - então o pacote usado para previsões não é adequado para forex. Talvez tenha demasiados graus de liberdade, ou simplesmente não seja adequado. É melhor levar outro pacote. Ou você pode tentar reduzir a porcentagem de dados de treinamento de 50% para ainda menos.
Tudo isto a partir dos conselhos deste fórum, e da experiência.
Muito disso você mesmo sabe e já fez, mas eu vou escrever mais completamente para excluir algumas suposições que falamos da mesma maneira, mas fazemos de maneira diferente.
Deve-se ter uma função de aptidão física cuidadosamente aperfeiçoada para estimar os parâmetros do modelo. Se a função avalia parâmetros específicos do modelo e seleciona preditores com uma pontuação alta - então deve haver bons resultados no teste sobre os novos dados.
(Terei em mente para qualquer estimativa que quanto mais alto for, melhor é)
Por exemplo, você tem dados para treinamento, 5 anos. E os parâmetros para gbm são n.árvores, interação.profundidade, retração, n.minobsinnode, distribuição, bolsa.fração.
A função fitness deve repetir pelo menos 50 vezes em um ciclo:
1) dividir os dados em 2 partes, 50%/50%. Deve haver amostragem aleatória com amostra e amostragem sequencial (a peça para treino está algures no meio, e para validação o que a rodeia no início e no fim dos dados em bruto). Incluindo as versões extremas, onde o treinamento na primeira metade da tabela e a validação na última, e vice-versa. Acho importante ter tanto amostras sequenciais como amostras aleatórias para treinamento. Na figura você pode ver mais claramente alguns exemplos de partição aleatória e seqüencial, as linhas verdes são para treinamento, as amarelas são para validação.
2) treinar o modelo na amostra de treinamento (os parâmetros do modelo e os preditores usados são os mesmos durante todo o ciclo, aqueles que você está tentando estimar), então preveja estes mesmos dados com este modelo, e avalie a previsão - precisão, r^2, ou algo mais. Eu, por exemplo, arredondo o resultado da regressão para as classes, e uso a função Kappa de Cohen para estimativa, é de carpete, eu gosto mais do que a precisão da classificação ou precisão da regressão. Mas só funciona para duas classes. Para três classes eu acho difícil sugerir qualquer coisa, é importante que a estimativa leve em conta a precisão de cada classe separadamente, e dê alguma estimativa geral com base nisso.
3) Aplicar um modelo treinado para prever os dados de uma amostra de validação, estimar a previsão com a mesma função.
4) Ambas as estimativas (treinamento e validação) devem estar próximas uma da outra, e o mais alto possível. Eu uso este código para a pontuação final - (min(pontuação1,pontuação2) - (max(pontuação1,pontuação2)-min(pontuação1,pontuação2)) - do valor mínimo é subtraído o delta deles.
No final de cada iteração vamos obter alguma pontuação, e devido à divisão aleatória dos dados pode variar de -1 a 1 (ou em outro intervalo, dependendo da função utilizada). Calculamos o seu valor médio, e devolvemo-lo como resultado da função fitness. Adicionalmente, subtraio do valor de fitness um pequeno número (0,0001) para cada preditor utilizado, para penalizar o modelo por um conjunto demasiado grande de dados necessários.
Aplico isto em conjunto com a genética, que capta os preditores e os parâmetros do modelo, maximizando o valor da aptidão física.
O resultado final é um conjunto de preditores e parâmetros de modelo que, em média, têm bons resultados de previsão sobre os dados de treinamento disponíveis. O modelo pode encontrar alguns padrões nos dados, aprender com eles e ainda encontrar com sucesso esses mesmos padrões nos novos dados de validação, qualquer que seja a amostra de dados utilizada para treinamento.
Como o modelo é treinado usando apenas 50% dos dados disponíveis cada vez e os parâmetros e preditores são escolhidos com base nisso, é uma condição importante para o modelo.
O modelo para o comitê deve ser treinado nas mesmas condições - seja por amostragem ou pela seleção sucessiva de 50% dos dados para treinamento. Para cada novo modelo também é necessária uma nova amostra (ou conjunto sequencial).
Quanto tempo esse comitê dará boas previsões é desconhecido, mas considerando que os dados de treinamento foram para 5 anos, o comitê obviamente viverá menos que os próximos 5 anos.
E mais um ponto importante - se depois de todo o tempo gasto para a criação do comitê será uma negociação com prejuízo - então o pacote usado para previsões não é adequado para forex. Talvez tenha demasiados graus de liberdade, ou simplesmente não seja adequado. É melhor levar outro pacote. Ou você pode tentar diminuir a porcentagem de dados para treinamento de 50% para ainda menos.
Tudo isto a partir dos conselhos deste fórum, e da experiência.
Um excelente resumo.
Parabéns!