Discussão do artigo "Desenvolvimento de robô em Python e MQL5 (Parte 1): Pré-processamento de dados"
В задаче прогнозирования EURUSD мы добавили бинарный столбец "labels", указывающий, превысило ли следующее изменение цены спред и комиссию.
A propósito, de mais de 700.000 dados, o preço mudou mais do que o spread em apenas 70.000 casos.
O EURUSD tem um spread de ~0 em 90% das vezes. Você está trabalhando com dados H1. Como você chegou a esse resultado?
Фича инжиниринг — преобразование исходных данных в набор признаков для обучения моделей машинного обучения. Цель — найти наиболее информативные признаки. Есть ручной подход (человек выбирает признаки) и автоматический (с помощью алгоритмов).
Usaremos uma abordagem automática. Aplicaremos o novo método de criação de recursos para extrair automaticamente os melhores recursos de nossos dados. Em seguida, selecionaremos os mais informativos do conjunto resultante.
O melhor recurso para a previsão de preços acabou sendo o próprio preço de abertura. Os sinais baseados em médias móveis, incrementos de preço, desvio padrão, alterações de preço diárias e mensais foram incluídos no topo. Os sinais gerados automaticamente se mostraram pouco informativos.Há uma dúvida sobre a qualidade dos algoritmos para geração de recursos, ou melhor, sobre sua completa ausência.
Uma pessoa gerou todos os atributos dos dados do OHLCT - cinco colunas no total. Você está forçando o algoritmo de geração de recursos para um número muito maior de recursos iniciais. É difícil imaginar que o algoritmo de geração de chip não consiga reproduzir o chip MA mais simples.
O agrupamento de recursos combina recursos semelhantes em grupos para reduzir o número de recursos. Isso ajuda a eliminar dados redundantes, a reduzir a correlação e a simplificar o modelo sem excesso de ajuste. O melhor recurso para a previsão de preços acabou sendo o próprio preço de abertura.
O agrupamento descartou os preços HLC porque eles caíram no mesmo agrupamento que o preço O?
Se o preço acabou sendo o melhor sinal para sua previsão (e os outros sinais são seus derivados), isso significa que devemos esquecer os outros sinais e que é razoável adicionar mais dados de entrada passando para um período de tempo menor e tomando os preços de outros símbolos como sinais?
Os preços devem, obviamente, ser removidos da amostra de treinamento, pois o MO não terá um desempenho adequado nos novos dados, especialmente se estiverem fora do intervalo de treinamento.
A alta informatividade dos preços decorre da exclusividade de seus valores, ou seja, é mais fácil para o algoritmo lembrar ou combinar preços com rótulos.
Na prática do MO, não apenas os recursos não informativos são removidos, mas também os recursos suspeitos de excesso de informação, que são os preços brutos.
Em um cenário ideal, deve haver vários atributos que sejam +- igualmente informativos. Ou seja, não há líderes ou outsiders claros. Isso significa que nenhum dos atributos suja o treinamento e não puxa o cobertor sobre si mesmo.Os preços devem, obviamente, ser removidos da amostra de treinamento, pois o MO não terá um desempenho adequado nos novos dados, especialmente se estiverem fora do intervalo de treinamento.
Se optarmos por retornos, o algoritmo de geração de recursos será obrigado a gerar uma soma cumulativa, que será os mesmos preços. Ao mesmo tempo, não se saberá que esses são os preços.
Se formos para os retornos, o algoritmo de geração de recursos é obrigado a gerar uma soma cumulativa, que será os mesmos preços. Não se saberá que esses são os preços.
Não entendi
Todos os sinais devem ser pseudoestacionários, como incrementos. Os preços brutos devem ser removidos do treinamento.- 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 Desenvolvimento de robô em Python e MQL5 (Parte 1): Pré-processamento de dados foi publicado:
Esse será um guia detalhado sobre como desenvolver um robô de trading baseado em aprendizado de máquina. Realizaremos a coleta e preparação de dados e características. Para a execução do projeto, utilizaremos a linguagem de programação Python e bibliotecas, bem como a plataforma MetaTrader 5.
O mercado está ficando cada vez mais complexo. Hoje em dia, é praticamente uma batalha de algoritmos. Mais de 95% das negociações são realizadas por robôs.
Portanto, o próximo passo é usar aprendizado de máquina. Não se trata apenas de IA avançada, nem de algoritmos simples. Um modelo de aprendizado de máquina pode lucrar em situações complexas. Aplicar aprendizado de máquina para desenvolver sistemas de trading é uma ideia interessante. Com redes neurais, o robô de trading pode analisar muitos dados, identificar padrões e prever movimentos de preços.
Vamos agora estudar o ciclo de desenvolvimento de um robô de negociação: coletar dados, processá-los, expandir a amostra, engenharia de características, selecionar e treinar o modelo, criar um sistema de trading em Python e monitorar as operações de trading.
Usar Python oferece vantagens, como acelerar o aprendizado de máquina e selecionar e criar características de maneira eficiente. No entanto, exportar modelos para ONNX exige replicar exatamente a mesma lógica de criação de características usada em Python, o que é complicado. Por isso, optamos pelo trading online via Python.
Autor: Yevgeniy Koshtenko