Discussão do artigo "Utilizando o modelo de Machine Learning CatBoost como Filtro para Estratégias de Seguimento de Tendência"
Confira o novo artigo: Utilizando o modelo de aprendizado de máquina CatBoost como um filtro para estratégias de acompanhamento de tendências.
Autor: Zhuo Kai Chen
Com base em minha própria experiência, posso apenas acrescentar que o treinamento de modelos em dados com mais de três meses não traz nada para a equação. O modelo deve ser capaz de capturar os padrões atuais e se concentrar neles. Você precisa ficar próximo do mercado.
Com base em minha própria experiência, posso apenas acrescentar que o treinamento de modelos em dados com mais de três meses não traz nada para a equação. O modelo deve ser capaz de capturar os padrões atuais e se concentrar neles. Você precisa ficar próximo do mercado.
Seu argumento é absolutamente válido. Em minha experiência, também acho que o uso de dados recentes facilita o treinamento de um modelo que produz melhores resultados. Entretanto, o principal problema é que essa abordagem limita o tamanho do conjunto de treinamento, a menos que você use um período de tempo muito curto. De acordo com trabalhos acadêmicos, as estratégias de acompanhamento de tendências têm melhor desempenho em períodos de tempo mais longos em comparação com os mais curtos. Portanto, você pode treinar um modelo com maior previsibilidade, mas com menos amostras de treinamento, o que é propenso a um ajuste excessivo, e a estratégia original tem menos vantagem para começar. Há uma compensação entre esses fatores, sem mencionar que os spreads também desempenham um papel.
Minha solução para isso é atribuir pesos maiores aos dados recentes no conjunto de treinamento e, ao mesmo tempo, preservar os dados mais antigos. Dessa forma, podemos nos adaptar aos novos padrões após uma mudança de regime e, ao mesmo tempo, nos beneficiar dos padrões antigos que se mantiveram consistentes ao longo dos anos. Entretanto, como mencionei anteriormente, sempre há compensações envolvidas nessas decisões.
Seu argumento é absolutamente válido. Em minha experiência, também acho que o uso de dados recentes facilita o treinamento de um modelo que produz melhores resultados. Entretanto, o principal problema é que essa abordagem limita o tamanho do conjunto de treinamento, a menos que você use um período de tempo muito curto. De acordo com trabalhos acadêmicos, as estratégias de acompanhamento de tendências têm melhor desempenho em períodos de tempo mais longos em comparação com os mais curtos. Portanto, você pode treinar um modelo com maior previsibilidade, mas com menos amostras de treinamento, o que é propenso a um ajuste excessivo, e a estratégia original tem menos vantagem para começar. Há uma compensação entre esses fatores, sem mencionar que os spreads também desempenham um papel.
Minha solução para isso é atribuir pesos maiores aos dados recentes no conjunto de treinamento e, ao mesmo tempo, preservar os dados mais antigos. Dessa forma, podemos nos adaptar aos novos padrões após uma mudança de regime e, ao mesmo tempo, nos beneficiar dos padrões antigos que se mantiveram consistentes ao longo dos anos. Entretanto, como mencionei anteriormente, sempre há compensações envolvidas nessas decisões.
O retreinamento do modelo a cada três meses usando os últimos três meses de dados provavelmente seria suficiente. Tentarei implementar essa ideia de otimização do modelo contínuo mais tarde. Obrigado pela sugestão.
Estou tentando seguir suas instruções e, infelizmente, devido à falta de detalhes, não consigo continuar até o resultado final porque faltam referências de arquivos e não há links para download
Vou dedicar algum tempo para ensinar o que você deixou de fazer, pois esse parece ser um bom processo.
Está faltando:
1. Um link direto para o FileCSV.mqh, que requer a leitura do outro artigo para obtê-lo.
2. declaração de todas as alças de recursos
3. Explicação adequada do processo de criação ou download dos arquivos
CatOnnx.mqh
"\\Files\\CatBoost_Momentum_test.onnx"
4. Links diretos e instruções relevantes sobre como instalar o catboot usando pip ou similar, certificando-se de que você tenha as dependências instaladas que são necessárias para o python. (não para mim, mas outros precisarão saber).
5. Instrução para ler as instruções e o fluxo de trabalho do CB2.ipynb.
Em geral, tudo isso faz com que o aluno chegue à metade do artigo e fique horas procurando o processo correto para concluir o tutorial e replicar seus resultados.
De modo geral, dou a este artigo uma nota 4 de 10 em termos de informações, com pontos adicionais para sua estratégia clássica de acompanhamento de tendências, que é bem elaborada.
Por favor, edite o artigo para que seja mais instrutivo e passo a passo, para que todos nós possamos aprender e seguir.
PS
Recomendações sobre como isso poderia ser adaptado a outras estratégias seriam ótimas!
Por favor, edite o artigo para que seja mais instrutivo e passo a passo, para que todos possamos aprender e seguir.
PS
Recomendações sobre como isso poderia ser adaptado a outras estratégias seriam ótimas!
Obrigado pelo feedback. Infelizmente, acabei descrevendo apenas brevemente os artigos relevantes porque achei que ocuparia muito espaço, e não incluí links para download devido a questões de direitos autorais. Os detalhes completos ainda seriam melhor obtidos na fonte original. No entanto, acho que deixei passar algumas instruções cuidadosas para meu código python e links diretos para instruções python, embora tenha adicionado comentários para cada linha. Se você tiver obstáculos específicos em seu próprio processo de implementação, pode discutir aqui ou me adicionar ao bate-papo.
- www.mql5.com
O CatOnnx.mqh chamado no arquivo ML-Momentum.mq5 é o mesmo que o CatBoost.mqh que citei neste artigo. Desculpe-me por causar confusões nos nomes dos arquivos.
Quando eu voltar e tentar novamente concluir o guia deste artigo, farei algumas anotações para usar posteriormente no fórum.
Se mais alguém estiver interessado em criação de gatos...
Olá. Estou brincando com o CatBoost e cheguei a um ponto em que uma estratégia treinada em (todos os) dados de 2024 produzirá retornos superiores a 300% quando for testada (no MetaTrader) em 2024, mas terá um desempenho ruim em outros anos. Alguém tem experiência com isso? Intuitivamente, parece um ajuste excessivo, mas mesmo que eu treine com iterações muito menores (como 1k), obtenho o mesmo resultado.
Estou treinando com cerca de 40 a 50 recursos, em dados de minuto, portanto, algo como 250.000 linhas por ano. O tamanho do arquivo .cbm tende a ser 1000 vezes maior que o número de iterações (por exemplo, 1000 iterações = 1 MB, 10.000 iterações = 10 MB e assim por diante). O backtesting no Metatrader me limita a cerca de 100.000 MB antes que o backtester pare de funcionar. Posso fazer backtest com o C++ em um tamanho arbitrariamente alto, mas meus retornos no Metatrader e no C++ são extremamente diferentes.
Estou treinando com cerca de 40 a 50 recursos, em dados de minuto, portanto, algo como 250.000 linhas por ano. O tamanho do arquivo .cbm tende a ser 1000 vezes maior que o número de iterações (por exemplo, 1000 iterações = 1 MB, 10.000 iterações = 10 MB e assim por diante). O backtesting no Metatrader me limita a cerca de 100.000 MB antes que o backtester pare de funcionar. Posso fazer backtest com o C++ em um tamanho arbitrariamente alto, mas meus retornos no Metatrader e no C++ são extremamente diferentes.
Olá. Em primeiro lugar, o backtester do Metatrader leva em conta os spreads e a comissão, o que pode explicar por que os resultados são diferentes dos seus em C++. Em segundo lugar, na minha opinião, o aprendizado de máquina é essencialmente um processo de ajuste excessivo. Há muitas maneiras de reduzir o excesso de ajuste, como conjunto, abandono e engenharia de recursos. Mas, no final das contas, dentro da amostra é sempre muito melhor do que fora da amostra. O uso do aprendizado de máquina na previsão de séries temporais financeiras é um problema antigo. Se você está tentando prever o retorno (presumo que esteja dizendo 250 mil linhas), é de se esperar que haja ruído, pois você e outros jogadores têm o mesmo objetivo de previsão. Por outro lado, o que apresentei neste artigo é um método de rotulagem de metal em que há menos ruído, pois seu objetivo de previsão está restrito à sua própria estratégia, mas haveria menos amostras para aprender, tornando a restrição de complexidade ainda mais rigorosa. Eu diria para diminuir sua expectativa com o método ML e explorar maneiras de reduzir o ajuste excessivo.
Obrigado por responder tão rapidamente em um tópico que tem mais de 6 meses. Há muito o que pensar aqui. Estou me acostumando com o enorme espaço de parâmetros e tentando encontrar maneiras de reduzir o ajuste excessivo.
Mais uma vez, obrigado!
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo Utilizando o modelo de Machine Learning CatBoost como Filtro para Estratégias de Seguimento de Tendência foi publicado:
A regra geral na indústria para desenvolver estratégia de CTA (Commodity Trading Advisor) é que é melhor ter uma explicação clara e intuitiva por trás de cada ideia de estratégia. É basicamente assim que as pessoas pensam em ideias de estratégia em primeiro lugar, sem mencionar que também evita overfitting. Essa sugestão é válida mesmo ao trabalhar com modelos de machine learning. Tentaremos explicar a intuição por trás desta ideia.
Por que isso pode funcionar:
O modelo CatBoost cria árvores de decisão que recebem as entradas de recursos e produzem a probabilidade de cada resultado. Neste caso, estamos apenas treinando em resultados binários (1 é ganho, 0 é perda). O modelo ajustará regras nas árvores de decisão para que minimize a função de perda no conjunto de dados de treinamento. Se o modelo exibir certo nível de previsibilidade no resultado do teste fora da amostra, podemos considerar usá-lo para filtrar trades que têm pouca probabilidade de ganhar, o que, por sua vez, pode aumentar a lucratividade geral.
Uma expectativa realista para traders de varejo como você e eu é que os modelos que treinamos não serão como oráculos, mas sim apenas um pouco melhores que um passeio aleatório. Existem muitas maneiras de melhorar a precisão do modelo, que discutirei mais adiante, mas ainda assim é um ótimo esforço para uma pequena melhora.
Autor: Zhuo Kai Chen