Aprendizagem de máquinas de forex
Jon V.
BigData. Iniciantes. Negociação.
BigData. Iniciantes. Negociação.
Machine Beats Human: Usando Aprendizado de Máquinas em Forex.
A aprendizagem e o comércio de máquinas são um assunto muito interessante. Também é um assunto onde você pode gastar toneladas de tempo escrevendo código e lendo documentos e, em seguida, uma criança pode vencê-lo enquanto joga Mario Kart.
Nas postagens nexts, vamos falar sobre:
Otimize entradas e saídas. Isto e só isso pode fazer uma tonelada de diferença em seu rolo de banco. Calcule o tamanho da posição (no caso de você não gostar do critério de Kelly) Encontre a possível correlação entre diferentes pares (negociação em pares). Adoro a correlação EURUSD vs GBPJPY! Calcule suporte e amp; linhas de resistência.
Mas o que é a Aprendizagem de Máquinas?
Os algoritmos de aprendizagem de máquina são algoritmos em que uma máquina pode identificar padrões em seus dados. Yeap, é assim tão simples. Por exemplo, encontre todos os animais nesta foto e desenhe uma caixa ao redor deles. Além disso, nomeie esse animal. Louco, eu sei. Para negociar como você pode imaginar, é bastante semelhante:
Para que uma máquina "aprenda", você precisa ensinar o que é certo ou errado (aprendizado supervisionado) ou dar-lhe um grande conjunto de dados e deixá-lo ficar selvagem (sem supervisão). Para identificar objetos, isso é direto, e o que é negociar?
Eu olhei em volta para ver se há algum programa de aprendizado de máquina que pode identificar as linhas S / R, mas sem sucesso. Então eu decidi escrever o primeiro programa de aprendizagem de máquinas em python que identifica linhas de suporte e resistência em Python. Outro primeiro! Hooray!
Mas como um algoritmo pode identificar essas áreas? Hoooooow? Senhoras e colegas (e robôs), permitam-me que lhe apresente o MeanShift, um algoritmo sem supervisão que é usado principalmente para o reconhecimento de imagens e que é bastante trivial para configurar e executar (mas também muito lento).
A idéia é que este algoritmo me permita dividir meus dados (txs forex) em áreas e então eu posso usar as "bordas" como suporte e linhas de resistência. Ideia legal, mas isso funciona?
Analisamos cerca de 12 milhões de pontos de dados do EURUSD em 2014 e alguns meses de 2015. As linhas de resistência são colocadas automaticamente por um algoritmo de aprendizado de máquina.
O que é realmente legal (e assustador) é que o algoritmo praticamente o engana. NAILS é difícil. Isso fica realmente assustador quando vamos usar o algoritmo para identificar microestruturas e começar a curar.
O sistema é capaz de processar qualquer tipo de dados temporários (ações, forex, ouro, seja o que for) e renderá um gráfico interativo html (como o gráfico acima) com seus dados e a máquina gerada S / L. O código está aqui, então fique louco.
Agora vamos passar pelo código. Depois de ter seu conjunto de dados, você precisa lê-los e limpá-los. Prepare-se para alguns pandas de magia.
Nós deixamos cair os valores vazios (fins de semana) e depois reescrevemos os dados para candelas de 24 horas (ohcl). Isso torna muito mais fácil traçar. Os dados agrupados são os dados que inseriremos no algoritmo ml.
Em seguida, preparamos os dados que vamos usar no algo.
Na próxima publicação, vamos discutir como melhorar esse trabalho, discutir alguns resultados muito interessantes (o algoritmo pode realmente prever sobre o futuro?) E começar a usá-lo em nossa própria negociação. Se você quiser verificar o próximo artigo e ler mais sobre comércio e investimento usando algoritmos, inscreva-se no boletim informativo.
Próxima próxima: Machine Learning Gone Wild - Usando o código!
Se você tiver mais comentários, clique-me no jonromero ou inscreva-se no boletim informativo.
Legal outro. Este é um tutorial de engenharia sobre como construir uma plataforma algotrading para experimentação e FUN. Qualquer sugestão aqui não é um conselho financeiro. Se você perder qualquer (ou todos) o seu dinheiro porque seguiu quaisquer conselhos de negociação ou implantou este sistema na produção, não pode culpar este blog aleatório (e / ou eu). Aproveite a seu próprio risco.
Aprendizagem de máquinas de comércio forex
previsões. Isso melhorou muito o fator de lucro (lucro bruto dividido pela perda bruta) de nossa estratégia. Usamos uma alavancagem para aumentar ou diminuir o risco eo retorno esperado.
Desvantagens de uma estratégia de negociação automática.
podemos monitorar o mercado e aguardar esse momento em que nossa estratégia não funciona mais usando as estatísticas que a estratégia deve seguir, como a redução máxima consecutiva e monitorando o volume. Em segundo lugar, podemos fazer o que chamamos de aprendizagem on-line onde nossa estratégia está sendo otimizada continuamente em novos dados. Esta segunda opção é uma boa prática, mas não se protege contra as mudanças repentinas que são típicas no forex a cada poucos anos. A melhor solução é implementar esses dois métodos, otimizando regularmente nossas estratégias, conscientes de que será necessária uma mudança de estratégia mais profunda.
A outra crítica é que nunca entendemos realmente o que faz um modelo de caixa preta. Esse não é o caso para nós, pois nosso modelo é bastante simples, no entanto, devemos tomar o segredo para o nosso túmulo ou, pelo menos, até que a estratégia não seja mais rentável.
Forex Mecânico.
Negociação no mercado FX usando estratégias mecânicas de negociação.
Aprendizado de máquinas no comércio de Forex: por que muitos acadêmicos estão fazendo tudo errado.
Construir estratégias de aprendizado de máquinas que pode obter resultados decentes em condições de mercado ao vivo sempre foi um desafio importante na negociação algorítmica. Apesar da grande quantidade de interesse e das incríveis recompensas em potencial, ainda não há publicações acadêmicas que possam mostrar uma boa aprendizagem de máquinas modelos que podem resolver com sucesso o problema de negociação no mercado real (no melhor de meus conhecimentos, publique um comentário se você tiver um e eu ficarei mais do que feliz em lê-lo). Embora muitos artigos publicados parecem mostrar resultados promissores, muitas vezes é o caso que esses documentos se enquadram em uma variedade de diferentes problemas de tendência estatística que tornam o sucesso do mercado real de suas estratégias de aprendizagem de máquinas altamente improváveis. Na publicação de hoje, vou falar sobre os problemas que vejo na pesquisa acadêmica relacionada com o aprendizado de máquinas no Forex e como acredito que essa pesquisa poderia ser melhorada para produzir informações muito mais úteis para as comunidades acadêmicas e comerciais.
A maioria das armadilhas no projeto de estratégia de aprendizado de máquinas ao fazer o comércio de Forex é inevitavelmente herdada do mundo de problemas de aprendizagem deterministas. Ao construir um algoritmo de aprendizagem de máquina para algo como o reconhecimento de face ou o reconhecimento de letras, existe um problema bem definido que não muda, o que geralmente é abordado através da construção de um modelo de aprendizado de máquina em um subconjunto dos dados (um conjunto de treinamento) e depois teste se O modelo foi capaz de resolver corretamente o problema usando o lembrete dos dados (um conjunto de testes). É por isso que você tem alguns conjuntos de dados famosos e bem estabelecidos que podem ser usados para estabelecer a qualidade das técnicas de aprendizado de máquinas recentemente desenvolvidas. O ponto chave aqui, no entanto, é que os problemas abordados inicialmente pela aprendizagem por máquinas foram na sua maioria deterministas e independentes do tempo.
Ao se mudar para a negociação, aplicar esta mesma filosofia produz muitos problemas relacionados com o caráter parcialmente não-determinista do mercado e sua dependência temporal. O simples ato de tentar selecionar conjuntos de treinamento e teste introduz uma quantidade significativa de viés (um viés de seleção de dados) que cria um problema. Se a seleção for repetida para melhorar os resultados no conjunto de testes & # 8211; o que você deve assumir acontece em pelo menos alguns casos & # 8211; então o problema também adiciona uma grande quantidade de viés de mineração de dados. Toda a questão de fazer um único exercício de treinamento / validação também gera um problema relacionado à forma como esse algoritmo deve ser aplicado quando a negociação ao vivo. Por definição, a negociação ao vivo será diferente uma vez que a seleção de conjuntos de treinamento / teste precisa ser reaplicada a dados diferentes (como agora o conjunto de testes é dados verdadeiramente desconhecidos). O viés inerente à seleção inicial do período inicial na amostra / fora da amostra e a falta de regras testadas para negociação em dados desconhecidos tornam essas técnicas comuns falhar na negociação ao vivo. Se um algoritmo for treinado com dados 2000-2012 e foi validado por cruzamento com os dados de 2012-2015, não há motivos para acreditar que o mesmo sucesso acontecerá se for treinado em dados de 2003-2015 e depois comercializado de 2015 a 2017, os conjuntos de dados são de natureza muito diferente.
O sucesso do algoritmo de medição também é um problema muito relevante aqui. Inevitavelmente, os algoritmos de aprendizado da máquina utilizados para negociação devem ser medidos pelo mérito por sua capacidade de gerar retornos positivos, mas algumas medidas medem o mérito de novas técnicas algorítmicas, tentando comparar suas habilidades para obter as previsões corretas. As previsões corretas não são, necessariamente, iguais às negociações lucrativas, como você pode facilmente ver ao criar classificadores binários. Se você tentar prever a próxima direção da vela, você ainda pode fazer uma perda se você estiver na maior parte direita em pequenas velas e errado em velas maiores. Na verdade, a maioria desses tipos de classificadores e # 8211; a maioria daqueles que não trabalham & # 8211; acabar por prever a direcionalidade com uma precisão acima de 50%, ainda não acima do nível necessário para superar as comissões que permitiriam negociação de opções binárias rentáveis.
Para construir estratégias que estão na maior parte livres dos problemas acima, sempre defendai uma metodologia em que o algoritmo de aprendizado da máquina é treinado antes da tomada de qualquer decisão de treinamento. Ao usar uma janela em movimento para treinar e nunca tomar mais de uma decisão sem reconquistar todo o algoritmo, podemos livrar-se do viés de seleção que é inerente à escolha de um único conjunto na amostra / fora da amostra. Desta forma, todo o teste é uma série de exercícios de treinamento / validação que acabam garantindo que o algoritmo de aprendizagem da máquina funcione mesmo em conjuntos de dados de treinamento tremendamente diferentes. Eu também defendo a medição do desempenho real de backtesting para medir o mérito de um algoritmo de aprendizado de máquina e, além disso, eu chegaria a dizer que nenhum algoritmo pode valer o seu sal sem ser comprovado em condições reais de fora da amostra . O desenvolvimento de algoritmos dessa maneira é muito mais difícil e não encontrei um único documento acadêmico que acompanhe esse tipo de abordagem (se perdi, sinto-me livre para postar um link para que eu possa incluir um comentário!).
Isso não significa que esta metodologia seja completamente livre de problemas, no entanto, ainda está sujeita aos problemas clássicos relevantes para todos os exercícios de construção de estratégia, incluindo viés de ajuste de curva e viés de mineração de dados. É por isso que também é importante usar uma grande quantidade de dados (eu uso mais de 25 anos para testar sistemas, sempre treinando depois de cada aprendizado aprendendo a decisão derivada) e realizar exames adequados de avaliação de viés de mineração de dados para determinar a confiança com que nós pode dizer que os resultados não provêm de chance aleatória. Meu amigo AlgoTraderJo & # 8211; que também é membro da minha comunidade comercial # 8211; Atualmente, está crescendo um tópico no ForexFactory seguindo esse mesmo tipo de filosofia para desenvolvimento de aprendizagem em máquina, enquanto trabalhamos em alguns novos algoritmos de aprendizado de máquinas para minha comunidade comercial. Você pode se referir ao seu tópico ou postagens no meu blog para vários exemplos de algoritmos de aprendizado de máquinas desenvolvidos dessa maneira.
Se você quiser saber mais sobre os nossos desenvolvimentos na aprendizagem de máquinas e como você também pode desenvolver suas próprias estratégias de aprendizagem de máquinas usando o framework F4, considere se juntar ao Asirikuy, um site cheio de vídeos educacionais, sistemas de negociação, desenvolvimento e um som, honesto e uma abordagem transparente para negociação automatizada.
5 Respostas para a "Aprendizagem de Máquinas em Forex Trading": por que muitos acadêmicos estão fazendo tudo errado e # 8221;
Excelente artigo, os problemas que você destaca são certamente válidos para a robustez do sistema!
Uma pergunta que tenho, é normal dizer uma EA para fazer muito bem em um certo par e fazer terrível em todos os outros?
Ou, se uma EA robusta faça bem em pelo menos vários pares, sem qualquer alteração nas configurações!
Obrigado, por seus grandes pensamentos.
Essa questão é interessante; o). Eu acredito que a questão é melhor formulada como # 8220; pode um sistema que sobrevive em apenas um par gerar retornos quando negociados ao vivo? & # 8221; A resposta é sim (tanto da teoria quanto da minha própria experiência). Ter retorna em apenas um par não significa que o sistema seja & # 8220; mau & # 8221; Isso simplesmente significa que ele explora uma ineficiência histórica que só está presente em um instrumento. Desde que você cuide de fontes de polarização (como viés de mineração de dados e viés de ajuste de curva), não há razão para isso não funcionar.
Agora, se você tem um sistema que funciona em vários símbolos, o viés de mineração de dados será exponencialmente menor para um sistema igual que só funciona em um símbolo e o viés de ajuste de curva também será menor devido ao uso de mais dados. Então eu diria que é melhor, mas definitivamente não é necessário.
Mas lembre-se, mire seus preconceitos estatísticos!
Estou tão feliz que você disse que não precisa lucrar com todos os pares! Também o ajuste de curva, como se conhece o limite de ajustes permitido antes de se ajustar?
Finalmente, fiz um teste muito simples usando o padrão de média móvel em MT4, para ver quais pares reagiriam mais amplamente às MAs. Eu testei 52 pares para ver quantos & # 8216; Moving Period & # 8217; entre (1-20) obteriam lucro, independentemente da redução. Eu me perguntei o que você faz dos resultados!
* Período de teste de 5 anos.
* Drawdown não medido.
* 52 pares testados.
* Configurações testadas (Períodos 1-20).
1 23 pares, não obteve lucro em nenhuma configuração de barra de 1-20.
2 6 pares, só conseguiram lucro em 1 configuração.
Apenas 3 pares, obteve lucro em 5 ou mais configurações diferentes.
Apenas 4 5 pares, obteve lucro em 10 ou mais configurações diferentes.
1 BTCUSD 19 Configurações de 20, obteve lucro.
Você precisa fazer uma distinção entre viés de ajuste de curva e viés de mineração de dados (ou, pelo menos, esses dois tipos diferentes de viés, no entanto, você pode querer chamá-los). Curvar-ajuste bias é um viés criado por encontrar uma ineficiência em um conjunto de dados, ele responde a pergunta: meu sistema está encontrando algo geral ou algo específico para os dados que estou usando ?. O viés de mineração de dados responde a pergunta: o meu sistema está encontrando uma verdadeira ineficiência histórica ou são os resultados apenas por causa do meu processo de mineração (ou seja, provenientes de chance aleatória)?
Ao aumentar os espaços de parâmetros e os graus de liberdade, você está aumentando o viés de mineração de dados (você é mais provável encontrar um sistema apenas por acaso, em vez de um sistema que negocia uma ineficiência histórica real). Você pode medir o viés de mineração de dados usando um teste como a verificação de realidade da White & # 8217; s. Fazer esse tipo de teste é fundamental para um projeto de estratégia confiável.
Leia mais sobre esta distinção entre os preconceitos aqui:
Leia também este artigo sobre o assunto:
Antes de abordar as complexidades do design do sistema de negociação e encontrar estratégias de negociação, recomendo fortemente obter uma sólida formação em estatísticas (os cursos de estatística de cours são um excelente início gratuito). As estatísticas lhe darão o poder de analisar seus próprios resultados e abordar metodicamente tais questões: o)
[& # 8230;] Aprendizagem de máquinas no comércio de Forex: por que muitos acadêmicos estão fazendo tudo errado [Forex mecânico] Construir estratégias de aprendizagem de máquinas que podem obter resultados decentes em condições de mercado ao vivo sempre foi um desafio importante na negociação algorítmica. Apesar da grande quantidade de interesse e das incríveis recompensas em potencial, ainda não há publicações acadêmicas que possam mostrar bons modelos de aprendizagem de máquinas que possam solucionar com sucesso o problema comercial no real m [& # 8230;]
Aprendizagem de máquinas de comércio forex
A aprendizagem de máquinas é um campo de inteligência artificial onde os programas de computador aprendem em vez de seguir cegamente um script. Com dados de treinamento suficientes, você pode ensinar esses algoritmos para dirigir um carro, pilotar um helicóptero ou criar o melhor mecanismo de busca do mundo. Aqui estão os resultados que obtive com a minha abordagem inicial na aplicação de aprendizagem de máquinas para negociação forex.
Uma variedade de algoritmos são implementados para tentar prever a evolução de um instrumento com dados de apenas 8 barras diárias para o passado. Para cada dia, quatro valores são gravados, as três primeiras informações de registro sobre o movimento do dia anterior e rsquo; s perto do dia & rsquo; s alto, baixo e fechado, em percen to enquanto o quarto grava o volume do dia. Isso faz 32 variáveis independentes no total.
Os dados são obtidos a partir de três instrumentos na base de dados dukascopy, EURUSD, AUDJPY e GBPCHF diariamente Pergunte as barras de 1 de janeiro de 2008 a 31 de dezembro de 2011, com os fins de semana misturados na segunda-feira seguinte. Para cada um dos algoritmos testados, os dois primeiros anos foram usados para treinar os modelos enquanto o ano de 2012 foi usado para testá-los.
A biblioteca java aberta para algoritmos de aprendizado de máquina usados vem da WEKA: Data Mining Software em Java [i]. Você pode baixar a biblioteca ou o programa amigável ao usuário em cs. waikato. ac. nz/ml/weka/.
Predicando a direção do mercado.
Esses testes avaliam em que medida, se houver, é possível prever o movimento global do amanhã (de perto para fechar) com base em dados de oito dias anteriores usando uma variedade de algoritmos de aprendizado de máquina.
Uma alta correlação significa que o modelo prevê bem o movimento global do dia seguinte. Nesse caso, as correlações são muito próximas de zero, de modo que os modelos não podem prever o movimento geral do mercado.
Predicando a gama do mercado.
Para o forex, o intervalo é definido aqui como a diferença entre o dia & rsquo; s alto e o dia é baixo como uma porcentagem do fechamento anterior (para que diferentes instrumentos sejam comparáveis).
Um dos métodos mais simples e melhores, os vizinhos mais próximos, é o melhor para esta tarefa. Este método, para cada caso, simplesmente analisa os n casos no conjunto de treinamento que se parecem mais e prevê uma média ponderada de seu alcance.
Previsão do movimento absoluto de um instrumento.
O movimento absoluto de um instrumento é o movimento geral por um dia, mas sempre positivo. Isso é um pouco semelhante ao intervalo.
É impossível prever a direção do mercado para o dia seguinte com base apenas em oito barras e volumes anteriores, pelo menos usando esses algoritmos. No entanto, a primeira falha desta abordagem é talvez que ela tente prever todos os dias. Talvez algum processo de eliminação possa remover uma grande quantidade de dados que é principalmente imprevisível. Por outro lado, existem outros algoritmos como redes neuronais recorrentes que são mais apropriados para a tarefa em questão.
É possível prever, até certo ponto, o intervalo do dia seguinte e, de forma bastante lógica, o movimento absoluto (do próximo ao próximo). Este tipo de informação pode não ser relevante para os comerciantes que seguem as tendências, mas pode ser relevante para os escaladores que precisam prever o alcance de um par de moedas.
Eu acredito que tais algoritmos ultrapassam indicadores de alcance como o ATR no sentido de serem preditivos e não indicativos.
[1] Mark Hall, Eibe Frank, Geoffrey Holmes, Bernhard Pfahringer, Peter Reutemann, Ian H. Witten (2009); O software WEKA Data Mining: uma atualização; Explorações SIGKDD, Volume 11, Edição 1.
Aprendizado de máquinas para negociação.
Oferecido no Georgia Tech como CS 7646.
Programa Nanodegree.
Aprenda Unreal VR.
Saiba os fundamentos da construção de aplicativos vr usando um mecanismo irreal.
Acelere sua carreira com a credencial que o acompanha rapidamente ao sucesso do trabalho.
Sobre este curso.
Este curso apresenta os alunos aos desafios do mundo real de implementar estratégias de negociação baseadas em aprendizado de máquinas, incluindo os passos algorítmicos da coleta de informações para pedidos de mercado. O foco é sobre como aplicar abordagens de aprendizado de máquina probabilística para decisões de negociação. Consideramos abordagens estatísticas como regressão linear, KNN e árvores de regressão e como aplicá-las a situações reais de negociação de ações.
Custo do curso.
Aprox. 4 meses.
Nível de habilidade.
Incluído no curso.
Rich Learning Content.
Ensinado por profissionais da indústria.
Comunidade de apoio ao aluno.
Junte-se ao caminho da grandeza.
Este curso gratuito é o seu primeiro passo para uma nova carreira com o programa Learn Unreal VR Nanodegree.
Curso gratuito.
Aprendizado de máquinas para negociação.
Melhore o seu conjunto de habilidades e aumente a sua hirabilidade através de uma aprendizagem inovadora e independente.
Programa Nanodegree.
Aprenda Unreal VR.
Acelere sua carreira com a credencial que o acompanha rapidamente ao sucesso do trabalho.
Leads do curso.
Tucker Balch.
Arpan Chakraborty.
O que você aprenderá.
Este curso é composto por três mini-cursos:
Mini-curso 1: manipulação de dados financeiros no Python Mini-curso 2: Investimento computacional Mini-curso 3: Algoritmos de Aprendizado de Máquinas para Negociação.
Cada mini-curso consiste em cerca de 7 a 10 lições curtas. As tarefas e os projetos são intercalados.
Estudantes da OMS em queda de 2015: haverá dois testes - um meio de meio após mini-curso 2 e um exame final.
Pré-requisitos e requisitos.
Os estudantes devem ter fortes habilidades de codificação e alguma familiaridade com os mercados de ações. Nenhuma experiência financeira ou de aprendizado de máquina é assumida.
Observe que este curso atende estudantes que se concentram em ciência da computação, bem como estudantes de outras especialidades, como engenharia de sistemas industriais, gerenciamento ou matemática que tenham experiências diferentes. Todos os tipos de alunos são bem-vindos!
Os tópicos ML podem ser "revisar" para estudantes de CS, enquanto peças de finanças serão revisadas para estudantes de finanças. No entanto, mesmo se você tiver experiência nesses tópicos, você achará que os consideramos de uma maneira diferente da que você já viu antes, em particular com o objetivo de implementar para negociação.
A programação será principalmente em Python. Utilizaremos inúmeras bibliotecas numéricas como NumPy e Pandas.
Por que tomar este curso.
No final deste curso, você deve ser capaz de:
Compreender as estruturas de dados utilizadas para negociação algorítmica. Saiba como construir software para acessar dados de capital vivo, avaliá-lo e tomar decisões comerciais. Compreenda 3 algoritmos de aprendizagem de máquina populares e como aplicá-los a problemas comerciais. Compreenda como avaliar o desempenho de um algoritmo de aprendizagem de máquina para dados de séries temporais (dados de preço de estoque). Saiba como e por que as técnicas de mineração de dados (aprendizagem em máquina) falham. Construa um sistema de software comercializado que usa dados diários atuais.
Algumas limitações / restrições:
Usamos dados diários. Este não é um curso HFT, mas muitos dos conceitos aqui são relevantes. Nós não interagimos (negociamos) diretamente com o mercado, mas vamos gerar alocações de capital que você poderia negociar se quisesse.
O que eu ganho?
Vídeos de instrutor Aprenda fazendo exercícios Ensinados por profissionais da indústria.
Cursos relacionados.
Informática de saúde na nuvem.
Computação de alto desempenho.
Segurança de sistemas ciberfísicos.
Big Data Analytics em Saúde.
Introdução aos Sistemas Operacionais.
AI baseada no conhecimento: sistemas cognitivos.
Cursos populares.
Design de produto.
Marketing de email.
Programas em destaque.
Somente na Udacidade.
Programas.
O negócio.
"Nanodegree" é uma marca registrada da Udacity. &cópia de; 2011 & ndash; 2018 Udacity, Inc.
Udacity não é uma universidade credenciada e não conferimos graus.
Melhores estratégias 4: Aprendizado de máquinas.
Deep Blue foi o primeiro computador que ganhou um campeonato mundial de xadrez. Isso foi em 1996 e levou 20 anos até que outro programa, o AlphaGo, pudesse derrotar o melhor jogador Go humano. Deep Blue era um sistema baseado em modelo com regras de xadrez hardwired. O AlphaGo é um sistema de mineração de dados, uma rede neural profunda treinada com milhares de jogos Go. Hardware não melhorado, mas um avanço no software foi essencial para o passo de vencer os melhores jogadores de xadrez para vencer os melhores jogadores Go.
Nesta 4ª parte da mini-série, analisaremos a abordagem de mineração de dados para o desenvolvimento de estratégias comerciais. Este método não se preocupa com os mecanismos de mercado. Ele apenas verifica curvas de preços ou outras fontes de dados para padrões preditivos. Aprendizagem de máquina ou "Inteligência Artificial" e # 8221; nem sempre está envolvido em estratégias de mineração de dados. Na verdade, o mais popular & # 8211; e surpreendentemente lucrativo & # 8211; O método de mineração de dados funciona sem redes neurais sofisticadas ou máquinas de vetor de suporte.
Princípios de aprendizado da máquina.
Um algoritmo de aprendizagem é alimentado com amostras de dados, normalmente derivadas de algum modo de preços históricos. Cada amostra consiste em n variáveis x 1 .. x n, comumente designadas preditores, recursos, sinais ou simplesmente entrada. Esses preditores podem ser os retornos de preços das últimas barras n, ou uma coleção de indicadores clássicos, ou qualquer outra função imaginável da curva de preços (I & # 8217; até mesmo visto os pixels de uma imagem de gráfico de preços usada como preditor para uma neural rede!). Cada amostra também inclui normalmente uma variável alvo y, como o retorno do próximo comércio depois de tirar a amostra, ou o próximo movimento de preços. Na literatura, você pode encontrar também o nome do rótulo ou objetivo. Em um processo de treinamento, o algoritmo aprende a prever o alvo y a partir dos preditores x 1 .. x n. A memória aprendida & # 8216; & # 8217; é armazenado em uma estrutura de dados chamada modelo que é específico para o algoritmo (não deve ser confundido com um modelo financeiro para estratégias baseadas em modelos!). Um modelo de aprendizagem de máquina pode ser uma função com regras de predição no código C, gerado pelo processo de treinamento. Ou pode ser um conjunto de pesos de conexão de uma rede neural.
Os preditores, características, ou o que quer que você os chama, devem conter informações suficientes para prever o alvo e com alguma precisão. Eles também cumprem com freqüência dois requisitos formais. Primeiro, todos os valores de preditores devem estar no mesmo intervalo, como -1 ... +1 (para a maioria dos algoritmos R) ou -100 ... +100 (para algoritmos Zorro ou TSSB). Então você precisa normalizá-los de alguma forma antes de enviá-los para a máquina. Em segundo lugar, as amostras devem ser equilibradas, ou seja, distribuídas igualmente em todos os valores da variável alvo. Então, deve haver quase tantos como ganhar amostras. Se você não observar estes dois requisitos, você se perguntará por que você está obtendo resultados ruins do algoritmo de aprendizado da máquina.
Os algoritmos de regressão prevêem um valor numérico, como a magnitude e o sinal do próximo movimento de preços. Os algoritmos de classificação prevêem uma classe de amostra qualitativa, por exemplo, se ela está precedendo uma vitória ou uma perda. Alguns algoritmos, como redes neurais, árvores de decisão ou máquinas de vetor de suporte, podem ser executados em ambos os modos.
Alguns algoritmos aprendem a dividir amostras em classes sem necessidade de qualquer alvo y. A aprendizagem sem supervisão desse tipo, em oposição à aprendizagem supervisionada usando um alvo. Somewhere inbetween é o aprendizado de reforço, onde o sistema se treina executando simulações com os recursos fornecidos e usando o resultado como alvo de treinamento. AlphaZero, o sucessor do AlphaGo, usou a aprendizagem de reforço ao jogar milhões de jogos Go contra si. Em finanças, há poucas aplicações para aprendizagem sem supervisão ou reforço. 99% das estratégias de aprendizagem de máquinas usam a aprendizagem supervisionada.
Independentemente dos sinais que usamos para preditores em finanças, eles provavelmente contêm muito ruído e pouca informação, e não serão estacionários além disso. Portanto, a previsão financeira é uma das tarefas mais difíceis na aprendizagem por máquinas. Algoritmos mais complexos não conseguem necessariamente melhores resultados. A seleção dos preditores é fundamental para o sucesso. Não é bom usar muitos preditores, uma vez que isso simplesmente causa superação e falha na operação da amostra. Portanto, as estratégias de mineração de dados geralmente aplicam um algoritmo de pré-eleição que determina um pequeno número de preditores de um grupo de muitos. A pré-seleção pode basear-se na correlação entre preditores, na significância, no conteúdo da informação ou simplesmente no sucesso da previsão com um conjunto de testes. Experimentos práticos com seleção de recursos podem ser encontrados em um artigo recente sobre o blog Robot Wealth.
Aqui é uma lista dos métodos de mineração de dados mais populares usados em finanças.
1. Sopa indicadora.
A maioria dos sistemas de negociação que nós estamos programando para clientes não são baseados em um modelo financeiro. O cliente só queria sinais comerciais de certos indicadores técnicos, filtrado com outros indicadores técnicos em combinação com indicadores mais técnicos. Quando perguntado como essa mistura de indicadores poderia ser uma estratégia rentável, ele normalmente respondeu: "Confie em mim". Eu negocie-o manualmente e funciona. & # 8221;
Certamente. Pelo menos às vezes. Embora a maioria desses sistemas não tenha passado um teste WFA (e alguns nem mesmo um backtest simples), um número surpreendentemente grande. E esses também foram geralmente lucrativos no comércio real. O cliente havia experimentado sistematicamente indicadores técnicos até encontrar uma combinação que funcionasse em negociação ao vivo com certos ativos. Esta maneira de análise técnica de teste e erro é uma abordagem clássica de mineração de dados, apenas executada por um ser humano e não por uma máquina. Eu realmente não posso recomendar este método # 8211; e muita sorte, para não falar de dinheiro, provavelmente está envolvido & # 8211; mas posso testemunhar que às vezes leva a sistemas lucrativos.
2. Padrões de velas.
Não deve ser confundido com os padrões japoneses de velas que tiveram a melhor data antes, há muito tempo. O equivalente moderno é a negociação de ações de preço. Você ainda está olhando o aberto, alto, baixo e fechado de velas. Você ainda espera encontrar um padrão que preveja uma direção de preço. Mas você agora está curando curvas de preços contemporâneas para coleta desses padrões. Existem pacotes de software para esse fim. Eles procuram padrões que são lucrativos por algum critério definido pelo usuário, e usá-los para criar uma função de detecção de padrões específica. Poderia parecer este (do analisador de padrão Zorro & # 8217; s):
Esta função C retorna 1 quando os sinais correspondem a um dos padrões, caso contrário, você pode ver do longo código que esta não é a maneira mais rápida de detectar padrões. Um método melhor, usado pelo Zorro quando a função de detecção não precisa ser exportada, é classificar os sinais por sua magnitude e verificar a ordem de classificação. Um exemplo desse sistema pode ser encontrado aqui.
O mercado de ações de preços pode realmente funcionar? Assim como a sopa de indicadores, ela não é baseada em nenhum modelo financeiro racional. Pode-se, na melhor das hipóteses, imaginar que as seqüências de movimentos de preços levem os participantes do mercado a reagirem de uma certa maneira, estabelecendo assim um padrão preditivo temporário. No entanto, o número de padrões é bastante limitado quando você olha apenas as seqüências de algumas velas adjacentes. O próximo passo é comparar velas que não são adjacentes, mas arbitrariamente selecionadas dentro de um período de tempo mais longo. Desta forma, você está obtendo um número quase ilimitado de padrões & # 8211; mas à custa de deixar finalmente o reino do racional. É difícil imaginar como um movimento de preços pode ser previsto por alguns padrões de velas de semanas atrás.
Ainda assim, há muito esforço para isso. Um colega de blogueiro, Daniel Fernandez, administra um site de inscrição (Asirikuy) especializado em padrões de vela de dados minerados. Ele refinou o padrão de negociação até os menores detalhes, e se alguém conseguisse algum lucro desta forma, seria ele. Mas para seus assinantes & # 8217; desapontamento, trocando seus padrões ao vivo (QuriQuant) produziu resultados muito diferentes do que seus maravilhosos backtests. Se os sistemas de ação de preço rentáveis realmente existem, aparentemente ninguém já os encontrou.
3. Regressão linear.
A base simples de muitos algoritmos complexos de aprendizagem de máquina: Prever a variável alvo y por uma combinação linear dos preditores x 1 .. x n.
Os coeficientes a n são o modelo. Eles são calculados para minimizar a soma de diferenças quadradas entre os valores verdadeiros de y das amostras de treino e seus i preditos a partir da fórmula acima:
Para amostras distribuídas normais, a minimização é possível com alguma aritmética da matriz, portanto, nenhuma iteração é necessária. No caso n = 1 & # 8211; com apenas uma variável preditor x & # 8211; a fórmula de regressão é reduzida para.
que é uma regressão linear simples, em oposição à regressão linear multivariada onde n & gt; 1. A regressão linear simples está disponível na maioria das plataformas de negociação, f. i. com o indicador LinReg no TA-Lib. Com y = preço e x = tempo, muitas vezes usado como alternativa para uma média móvel. A regressão linear multivariada está disponível na plataforma R através da função lm (...) que vem com a instalação padrão. Uma variante é a regressão polinomial. Como regressão simples, ele usa apenas uma variável preditor x, mas também seus graus quadrados e superiores, de modo que x n == x n:
Com n = 2 ou n = 3, a regressão polinomial é freqüentemente usada para prever o próximo preço médio a partir dos preços suavizados das últimas barras. A função polyfit de MatLab, R, Zorro e muitas outras plataformas podem ser usadas para regressão polinomial.
4. Perceptron.
Muitas vezes referido como uma rede neural com apenas um neurônio. Na verdade, um perceptron é uma função de regressão como acima, mas com um resultado binário, assim chamado de regressão logística. Não é regressão, é um algoritmo de classificação. A função de recomendação do Zorro (PERCEPTRON, & # 8230;) gera código C que retorna 100 ou -100, dependendo se o resultado previsto está acima de um limite ou não:
Você pode ver que a matriz sig é equivalente às características x n na fórmula de regressão, e os fatores numéricos são os coeficientes a n.
5. Redes nacionais.
A regressão linear ou logística só pode resolver problemas lineares. Muitos não se enquadram nessa categoria & # 8211; um exemplo famoso é prever a saída de uma função XOR simples. E provavelmente também previsão de preços ou retornos comerciais. Uma rede neural artificial (ANN) pode enfrentar problemas não-lineares. É um monte de perceptrons que estão conectados em uma série de camadas. Qualquer perceptron é um neurônio da rede. Sua saída vai para as entradas de todos os neurônios da próxima camada, como esta:
Como o perceptron, uma rede neural também aprende determinando os coeficientes que minimizam o erro entre a previsão da amostra e o alvo da amostra. Mas isso exige agora um processo de aproximação, normalmente com backpropagating o erro da saída para as entradas, otimizando os pesos a caminho. Este processo impõe duas restrições. Primeiro, as saídas do neurônio devem agora ser continuamente funções diferenciáveis em vez do limiar de perceptron simples. Em segundo lugar, a rede não deve ser muito profunda e # 8211; não deve ter muitas camadas escondidas & # 8217; de neurônios entre entradas e saída. Esta segunda restrição limita a complexidade dos problemas que uma rede neural padrão pode resolver.
Ao usar uma rede neural para previsão de negociações, você tem muitos parâmetros com os quais você pode brincar e, se você não for cuidadoso, produza muitos tipos de seleção:
Número de camadas ocultas Número de neurônios por camada oculta Número de ciclos de backpropagation, épocas nomeadas Taxa de aprendizado, a largura do passo de uma Momência de época, um fator de inércia para a função de ativação da adaptação de pesos.
A função de ativação emula o limite de perceptron. Para o backpropagation você precisa de uma função continuamente diferenciável que gere um & # 8216; soft & # 8217; passo com um certo valor x. Normalmente, é utilizada uma função sigmoide, tanh ou softmax. Às vezes, também é uma função linear que apenas retorna a soma ponderada de todas as entradas. Nesse caso, a rede pode ser usada para regressão, para prever um valor numérico em vez de um resultado binário.
As redes neurais estão disponíveis na instalação R padrão (nnet, uma única rede de camada oculta) e em muitos pacotes, por exemplo RSNNS e FCNN4R.
6. Aprendizagem profunda.
Métodos de aprendizado profundo usam redes neurais com muitas camadas ocultas e milhares de neurônios, que não podem ser treinados de forma efetiva por backpropagation convencional. Vários métodos tornaram-se populares nos últimos anos para treinar tais redes enormes. Eles costumam pré-treinar as camadas do neurônio escondido para alcançar um processo de aprendizagem mais eficaz. Uma Máquina Boltzmann Restrita (RBM) é um algoritmo de classificação não supervisionado com uma estrutura de rede especial que não possui conexões entre os neurônios ocultos. Um auto-codificador esparso (SAE) usa uma estrutura de rede convencional, mas pré-treina as camadas ocultas de forma inteligente, reproduzindo os sinais de entrada nas saídas da camada com o menor número possível de conexões ativas. Esses métodos permitem redes muito complexas para lidar com tarefas de aprendizagem muito complexas. Como bater o melhor jogador humano do mundo.
As redes de aprendizagem profunda estão disponíveis nos pacotes Deepnet e Darch R. Deepnet fornece um autoencoder, Darch uma máquina Boltzmann restrito. Eu ainda não experimentei com o Darch, mas aqui é um exemplo de script R usando o autoencoder Deepnet com 3 camadas ocultas para sinais comerciais através da função neural () do Zorro & # 8217;
7. Suporte máquinas vetoriais.
Como uma rede neural, uma máquina de vetor de suporte (SVM) é outra extensão da regressão linear. Quando olhamos novamente para a fórmula de regressão,
podemos interpretar os recursos x n como coordenadas de um espaço de recursos n-dimensional. Definir a variável de destino y para um valor fixo determina um plano nesse espaço, chamado de hiperplane, pois possui mais de duas dimensões (na verdade, n-1). O hiperplane separa as amostras com y & gt; o das amostras com y & lt; 0. Os coeficientes a n podem ser calculados de forma a que as distâncias do plano para as amostras mais próximas # 8211; que são chamados de & # 8216; vetores de suporte & # 8217; do plano, daí o nome do algoritmo & # 8211; é o máximo. Desta forma, temos um classificador binário com a separação ideal de amostras vencedoras e perdidas.
O problema: normalmente, essas amostras não são linearmente separáveis e # 8211; Eles estão espalhados irregularmente no espaço de recursos. Nenhum avião plano pode ser espremido entre vencedores e perdedores. Se pudesse, tínhamos métodos mais simples para calcular esse avião, f. i. análise discriminante linear. Mas, no caso comum, precisamos do truque SVM: adicionando mais dimensões ao espaço de recursos. Para isso, o algoritmo SVM produz mais recursos com uma função kernel que combina dois preditores existentes para um novo recurso. Isso é análogo ao passo acima, desde a regressão simples até a regressão polinomial, onde também são adicionados mais recursos, levando o único preditor ao n-ésimo poder. Quanto mais dimensões você adiciona, mais fácil é separar as amostras com um hiperplano plano. Este plano é então transformado de volta para o espaço n-dimensional original, ficando enrugado e amassado no caminho. Através da seleção inteligente da função kernel, o processo pode ser executado sem realmente calcular a transformação.
À semelhança das redes neurais, os SVMs podem ser utilizados não apenas para classificação, mas também para regressão. Eles também oferecem alguns parâmetros para otimizar e possivelmente superar o processo de previsão:
Função Kernel. Você normalmente usa um kernel RBF (função de base radial, um kernel simétrico), mas você também tem a escolha de outros kernels, como sigmoid, polynomial e linear. Gamma, a largura do kernel RBF Custo parâmetro C, & # 8216; penalidade & # 8217; para classificações erradas nas amostras de treino.
Um SVM usado frequentemente é a biblioteca libsvm. Ele também está disponível em R no pacote e1071. Na próxima e última parte desta série, planejo descrever uma estratégia comercial usando este SVM.
8. K-vizinho mais próximo.
Comparado com as coisas pesadas de ANN e SVM, esse é um bom algoritmo simples com uma propriedade única: não precisa de treinamento. Então as amostras são o modelo. Você poderia usar esse algoritmo para um sistema comercial que aprenda permanentemente simplesmente adicionando mais e mais amostras. O algoritmo vizinho mais próximo calcula as distâncias no espaço de recursos dos valores de recurso atuais para as amostras mais próximas do k. Uma distância no espaço n-dimensional entre dois conjuntos de recursos (x 1 .. x n) e (y 1 .. y n) é calculada exatamente como em 2 dimensões:
O algoritmo simplesmente prediz o alvo da média das k variáveis alvo das amostras mais próximas, ponderadas por suas distâncias inversas. Pode ser usado para classificação, bem como para regressão. Os truques de software emprestados a partir de gráficos de computador, como uma árvore binária adaptativa (ABT), podem fazer com que o vizinho mais próximo busque muito rápido. Na minha vida passada como programador de jogos de computador, usamos esses métodos em jogos para tarefas como inteligência inimiga de auto-aprendizagem. Você pode chamar a função knn em R para a previsão do vizinho mais próximo e # 8211; ou escreva uma função simples em C para esse propósito.
Este é um algoritmo de aproximação para classificação não supervisionada. Tem alguma semelhança, não apenas com o nome, com o vizinho mais próximo. Para classificar as amostras, o algoritmo primeiro coloca k pontos aleatórios no espaço de recursos. Em seguida, atribui a qualquer um desses pontos todas as amostras com as menores distâncias a ele. O ponto é então movido para a média dessas amostras mais próximas. Isso gerará uma nova atribuição de amostras, uma vez que algumas amostras estão agora mais próximas de outro ponto. O processo é repetido até a atribuição não mudar mais movendo os pontos, isto é, cada ponto está exatamente na média das amostras mais próximas. Agora temos k classes de amostras, cada uma na vizinhança de um dos pontos k.
Este algoritmo simples pode produzir resultados surpreendentemente bons. Em R, a função kmeans faz o truque. Um exemplo do algoritmo k-means para classificar padrões de velas pode ser encontrado aqui: classificação de castiçal não supervisionada para diversão e lucro.
10. Naive Bayes.
Este algoritmo usa Bayes & # 8217; Teorema para classificar amostras de características não numéricas (isto é, eventos), como os padrões de vela acima mencionados. Suponha que um evento X (por exemplo, que o Open da barra anterior esteja abaixo do Open da barra atual) aparece em 80% de todas as amostras vencedoras. Qual é então a probabilidade de uma amostra estar ganhando quando contém evento X? Não é 0.8 como você pensa. A probabilidade pode ser calculada com Bayes & # 8217; Teorema:
P (Y | X) é a probabilidade de que o evento Y (f. i. winning) ocorra em todas as amostras contendo evento X (no nosso exemplo, Abrir (1) & lt; Abrir (0)). De acordo com a fórmula, é igual à probabilidade de X ocorrer em todas as amostras vencedoras (aqui, 0,8), multiplicado pela probabilidade de Y em todas as amostras (cerca de 0,5 quando você seguiu meu conselho acima de amostras equilibradas) e dividido por a probabilidade de X em todas as amostras.
Se somos ingênuos e assumimos que todos os eventos X são independentes um do outro, podemos calcular a probabilidade geral de que uma amostra ganhe simplesmente multiplicando as probabilidades P (X | winning) para cada evento X. Desta forma, acabamos com esta fórmula:
com um fator de escala s. Para que a fórmula funcione, os recursos devem ser selecionados de forma que sejam o mais independentes possível, o que impõe um obstáculo ao uso de Naive Bayes na negociação. Por exemplo, os dois eventos fecham (1) & lt; Fechar (0) e Abrir (1) & lt; Open (0) provavelmente não são independentes um do outro. Os preditores numéricos podem ser convertidos em eventos dividindo o número em intervalos separados.
O algoritmo Naive Bayes está disponível no omnipresente pacote e1071 R.
11. Árvores de decisão e regressão.
Essas árvores predizem um resultado ou um valor numérico com base em uma série de decisões sim / não, em uma estrutura como os ramos de uma árvore. Qualquer decisão é a presença de um evento ou não (no caso de características não numerais) ou uma comparação de um valor de recurso com um limite fixo. Uma função de árvore típica, gerada pelo construtor de árvores do Zorro & # 8217; parece assim:
Como uma tal árvore é produzida a partir de um conjunto de amostras? Existem vários métodos; Zorro usa a entropia Shannon i nformation, que já teve uma aparição neste blog no artigo Scalping. No começo, verifica um dos recursos, digamos x 1. Coloca um hiperplano com a fórmula plana x 1 = t no espaço da característica. Este hiperplato separa as amostras com x 1 & gt; t das amostras com x 1 & lt; t. O limite de divisão t é selecionado de modo que o ganho de informação & # 8211; a diferença de entropia de informação de todo o espaço, a soma das entropias de informação dos dois sub-espaços divididos e # 8211; é o máximo. Este é o caso quando as amostras nos subespaços são mais parecidas entre si que as amostras em todo o espaço.
Este processo é então repetido com o próximo recurso x 2 e dois hiperplanos dividindo os dois subespaços. Cada divisão é equivalente a uma comparação de um recurso com um limite. Por fraccionamento repetido, logo obteremos uma enorme árvore com milhares de comparações de limiar. Em seguida, o processo é executado para trás pela poda da árvore e remoção de todas as decisões que não levam a um aumento substancial de informações. Finalmente, acabamos com uma árvore relativamente pequena como no código acima.
As árvores de decisão possuem uma ampla gama de aplicações. Eles podem produzir excelentes previsões superiores às das redes neurais ou às máquinas de vetor de suporte. Mas eles não são uma solução única, já que seus planos de divisão são sempre paralelos aos eixos do espaço de recursos. Isso limita um pouco suas previsões. Eles podem ser usados não só para classificação, mas também para regressão, por exemplo, retornando a porcentagem de amostras que contribuem para um determinado ramo da árvore. A árvore do Zorro é uma árvore de regressão. O algoritmo de árvore de classificação mais conhecido é C5.0, disponível no pacote C50 para R.
Para melhorar a previsão ainda mais ou superar a limitação do eixo paralelo, um conjunto de árvores pode ser usado, chamado floresta aleatória. A previsão é então gerada pela média ou votação das previsões das árvores individuais. As florestas aleatórias estão disponíveis em pacotes R randomForest, ranger e Rborist.
Conclusão.
Existem vários métodos diferentes de mineração de dados e aprendizagem de máquinas à sua disposição. A questão crítica: o que é melhor, uma estratégia de aprendizagem baseada em modelos ou a máquina? Não há dúvida de que o aprendizado automático da máquina tem muitas vantagens. Você não precisa se preocupar com a microestrutura do mercado, a economia, a psicologia do comerciante ou coisas suaves semelhantes. Você pode se concentrar na matemática pura. O aprendizado de máquina é uma maneira muito mais elegante e atraente de gerar sistemas de comércio. Ele tem todas as vantagens do seu lado, mas um. Apesar de todos os tópicos entusiasmados nos fóruns de comerciantes, ele tende a falhar misteriosamente na negociação ao vivo.
A cada segunda semana, um novo artigo sobre comércio com métodos de aprendizagem de máquinas é publicado (alguns podem ser encontrados abaixo). Pegue todas essas publicações com um grão de sal. De acordo com alguns papéis, as taxas de ganhos fantásticos na faixa de 70%, 80% ou mesmo 85% foram alcançadas. Embora a taxa de ganhos não seja o único critério relevante & # 8211; você pode perder mesmo com uma alta taxa de vitória e # 8211; 85% de precisão na previsão de trades é normalmente equivalente a um fator de lucro acima de 5. Com esse sistema, os cientistas envolvidos devem ser bilionários enquanto isso. Infelizmente, eu nunca consegui reproduzir as taxas de vitórias com o método descrito, e nem chegou perto. Então, talvez um monte de viés de seleção tenha entrado nos resultados. Ou talvez eu seja muito estúpido.
Em comparação com as estratégias baseadas em modelos, eu não vi muitos sistemas de aprendizado de máquina bem sucedidos até agora. E do que se ouve sobre os métodos algorítmicos por hedge funds bem-sucedidos, a aprendizagem por máquinas parece ainda raramente ser usada. Mas talvez isso mude no futuro com a disponibilidade de mais poder de processamento e a próxima de novos algoritmos para aprendizagem profunda.
Classificação usando redes neurais profundas: Dixon. et. al.2016 Previsão de direção de preço usando ANN & amp; SVM: Kara. et. al.2011 Comparação empírica dos algoritmos de aprendizagem: Caruana. et. al.2006 Tendência do mercado de ações da mineração com GA & amp; SVM: Yu. Wang. Lai.2005.
A próxima parte desta série tratará do desenvolvimento prático de uma estratégia de aprendizado de máquinas.
30 pensamentos sobre & ldquo; Better Strategies 4: Machine Learning & rdquo;
Bela postagem. Existe uma grande quantidade de potencial nessa abordagem em relação ao mercado.
Btw você está usando o editor de código que vem com zorro? como é possível obter essa configuração de cor?
O script colorido é produzido pelo WordPress. Você não pode mudar as cores no editor do Zorro, mas você pode substituí-lo por outros editores que suportem cores individuais, por exemplo Notepad ++.
É então possível que o bloco de notas detecte as variáveis zorro nos scripts? Quero dizer que o BarPeriod é comentado como está com o editor zorro?
Teoricamente sim, mas para isso você precisou configurar o destaque de sintaxe do Notepad ++ e digitar todas as variáveis na lista. Tanto quanto eu sei, o Notepad ++ também não pode ser configurado para exibir a descrição da função em uma janela, como faz o editor Zorro. Não existe uma ferramenta perfeita e # 8230;
Conforme o último parágrafo. Eu tentei muitas técnicas de aprendizado de máquina depois de ler vários & # 8216; peer reviewed & # 8217; papéis. Mas reproduzir seus resultados permanece indescritível. Quando eu vivo teste com ML, eu não posso parecer melhorar a entrada aleatória.
ML falha ao vivo? Talvez o treinamento do ML tenha que ser feito com dados de preços que incluam também o spread histórico, roll, tick e assim por diante?
Eu acho que o motivo # 1 para falha ao vivo é o viés de mineração de dados, causado por seleção tendenciosa de entradas e parâmetros para o algo.
Obrigado ao autor pela grande série de artigos.
No entanto, deve-se notar que não precisamos restringir nossa visão ao prever apenas o próximo movimento de preços. Pode acontecer que o próximo movimento vá contra o nosso comércio em 70% dos casos, mas ainda vale a pena fazer um comércio. Isso acontece quando o preço finalmente vai para a direção certa, mas antes disso pode fazer alguns passos contra nós. Se atrasarmos o comércio por um passo de preço, não entraremos nos 30% mencionados das negociações, mas para isso aumentamos o resultado do passo de preço de 70% por um preço. Portanto, o critério é qual o valor mais alto: N * average_result ou 0.7 * N * (avergae_result + price_step).
Bela postagem. Se você quiser apenas brincar com alguma aprendizagem de máquinas, implementei uma ferramenta ML muito simples em python e adicionei uma GUI. É implementado para prever séries temporais.
Obrigado JCL Achei muito interessante o seu artigo. Gostaria de perguntar-lhe, a partir da sua experiência em negociação, onde podemos transferir dados históricos confiáveis de forex? Eu considero isso muito importante devido ao fato de o mercado Forex estar descentralizado.
Desde já, obrigado!
Não há dados de Forex realmente confiáveis, uma vez que todo corretor de Forex cria seus próprios dados. Todos eles diferem ligeiramente dependentes de quais provedores de liquidez eles usam. FXCM tem relativamente bom M1 e marca dados com poucas lacunas. Você pode baixá-lo com o Zorro.
Obrigado por escrever uma série tão grande de artigos JCL & # 8230; uma leitura completamente agradável!
Tenho que dizer, porém, que não considero as estratégias de aprendizado de máquinas baseadas em modelo e mutuamente exclusivas; Eu tive algum sucesso de OOS usando uma combinação dos elementos que você descreve.
Para ser mais exato, eu começo o processo de geração do sistema, desenvolvendo um & # 8216; tradicional & # 8217; modelo matemático, mas, em seguida, use um conjunto de algoritmos de aprendizagem de máquinas on-line para prever os próximos termos das várias séries temporais diferentes (e não o próprio preço) que são usadas dentro do modelo. As regras de negociação reais são então derivadas das interações entre essas séries temporais. Então, na essência, não estou apenas atirando cegamente os dados de mercado recentes em um modelo de ML em um esforço para prever a direção de ação de preço, mas sim desenvolver uma estrutura baseada em princípios de investimento sólidos para apontar os modelos na direção certa. Então, os dados minam os parâmetros e medem o nível de viés de mineração de dados como você também descreveu.
Vale a pena mencionar, no entanto, que eu nunca tive muito sucesso com o Forex.
De qualquer forma, a melhor sorte com sua negociação e mantenha os ótimos artigos!
Obrigado por publicar esta ótima série mini JCL.
Recentemente, estudei alguns últimos artigos sobre ML trading, profundamente aprendendo especialmente. No entanto, descobri que a maioria deles avaliou os resultados sem índice ajustado ao risco, ou seja, eles costumavam usar a curva ROC, PNL para suportar sua experiência, em vez de Sharpe Ratio, por exemplo.
Além disso, raramente mencionaram a frequência comercial nos resultados da experiência, tornando difícil avaliar a rentabilidade potencial desses métodos. Por que é que? Você tem boas sugestões para lidar com essas questões?
Os papéis ML normalmente visam uma alta precisão. A variação da curva de capital não é de interesse. Isso é justificado porque a qualidade de predição ML determina a precisão, e não a variação.
Claro, se você quer realmente negociar esse sistema, a variação e a retirada são fatores importantes. Um sistema com menor precisão e pior previsão pode de fato ser preferível quando é menos dependente das condições de mercado.
& # 8220; De fato, o método de mineração de dados mais popular e surpreendentemente lucrativo funciona sem redes neurais sofisticadas ou máquinas de vetor de suporte. & # 8221;
Você gostaria de nomear aqueles mais populares? surpreendentemente lucrativos. Então eu poderia usá-los diretamente.
Eu estava me referindo às estratégias de sopa de indicadores. Por razões óbvias, não posso divulgar detalhes de tal estratégia e nunca desenvolvi esses sistemas. Nós simplesmente codificamos. Mas eu posso dizer que chegar com uma sopa Indicadora rentável requer muito trabalho e tempo.
Bem, estou apenas começando um projeto que usa EMAs simples para prever o preço, ele apenas seleciona os EMAs corretos com base no desempenho passado e na seleção de algoritmos que fazem algum grau rústico de inteligência.
Jonathan. orregogmail oferece serviços como programador MT4 EA.
Obrigado pelo bom writeup. Na realidade, costumava ser uma conta de lazer.
Olhe complicado para mais entregues agradável de você!
Falando nisso, como podemos entrar em contato?
There are following issues with ML and with trading systems in general which are based on historical data analysis:
1) Historical data doesn’t encode information about future price movements.
Future price movement is independent and not related to the price history. There is absolutely no reliable pattern which can be used to systematically extract profits from the market. Applying ML methods in this domain is simply pointless and doomed to failure and is not going to work if you search for a profitable system. Of course you can curve fit any past period and come up with a profitable system for it.
The only thing which determines price movement is demand and supply and these are often the result of external factors which cannot be predicted. For example: a war breaks out somewhere or other major disaster strikes or someone just needs to buy a large amount of a foreign currency for some business/investment purpose. These sort of events will cause significant shifts in the demand supply structure of the FX market . As a consequence, prices begin to move but nobody really cares about price history just about the execution of the incoming orders. An automated trading system can only be profitable if it monitors a significant portion of the market and takes the supply and demand into account for making a trading decision. But this is not the case with any of the systems being discussed here.
2) Race to the bottom.
Even if (1) wouldn’t be true and there would be valuable information encoded in historical price data, you would still face following problem: there are thousands of gold diggers out there, all of them using similar methods and even the same tools to search for profitable systems and analyze the same historical price data. As a result, many of them will discover the same or very similar “profitable” trading systems and when they begin actually trading those systems, they will become less and less profitable due to the nature of the market.
The only sure winners in this scenario will be the technology and tool vendors.
I will be still keeping an eye on your posts as I like your approach and the scientific vigor you apply. Your blog is the best of its kind – keep the good work!
One hint: there are profitable automated systems, but they are not based on historical price data but on proprietary knowledge about the market structure and operations of the major institutions which control these markets. Let’s say there are many inefficiencies in the current system but you absolutely have no chance to find the information about those by analyzing historical price data. Instead you have to know when and how the institutions will execute market moving orders and front run them.
Thanks for the extensive comment. I often hear these arguments and they sound indeed intuitive, only problem is that they are easily proven wrong. The scientific way is experiment, not intuition. Simple tests show that past and future prices are often correlated – otherwise every second experiment on this blog had a very different outcome. Many successful funds, for instance Jim Simon’s Renaissance fund, are mainly based on algorithmic prediction.
One more thing: in my comment I have been implicitly referring to the buy side (hedge funds, traders etc) not to the sell side (market makers, banks). The second one has always the edge because they sell at the ask and buy at the bid, pocketing the spread as an additional profit to any strategy they might be running. Regarding Jim Simon’s Renaissance: I am not so sure if they have not transitioned over the time to the sell side in order to stay profitable. There is absolutely no information available about the nature of their business besides the vague statement that they are using solely quantitative algorithmic trading models…
Thanks for the informative post!
Regarding the use of some of these algorithms, a common complaint which is cited is that financial data is non-stationary…Do you find this to be a problem? Couldn’t one just use returns data instead which is (I think) stationary?
Yes, this is a problem for sure. If financial data were stationary, we’d all be rich. I’m afraid we have to live with what it is. Returns are not any more stationary than other financial data.
Hello sir, I developed some set of rules for my trading which identifies supply demand zones than volume and all other criteria. Can you help me to make it into automated system ?? If i am gonna do that myself then it can take too much time. Please contact me at svadukiagmail if you are interested.
Sure, please contact my employer at infoopgroup. de. They’ll help.
I have noticed you don’t monetize your page, don’t waste your traffic,
you can earn extra bucks every month because you’ve got high quality content.
If you want to know how to make extra $$$, search for: Mrdalekjd methods for $$$
Technical analysis has always been rejected and looked down upon by quants, academics, or anyone who has been trained by traditional finance theories. I have worked for proprietary trading desk of a first tier bank for a good part of my career, and surrounded by those ivy-league elites with background in finance, math, or financial engineering. I must admit none of those guys knew how to trade directions. They were good at market making, product structures, index arb, but almost none can making money trading directions. Por quê? Because none of these guys believed in technical analysis. Then again, if you are already making your millions why bother taking the risk of trading direction with your own money. For me luckily my years of training in technical analysis allowed me to really retire after laying off from the great recession. I look only at EMA, slow stochastics, and MACD; and I have made money every year since started in 2009. Technical analysis works, you just have to know how to use it!!
A aprendizagem de máquinas é um campo de inteligência artificial onde os programas de computador aprendem em vez de seguir cegamente um script. Com dados de treinamento suficientes, você pode ensinar esses algoritmos para dirigir um carro, pilotar um helicóptero ou criar o melhor mecanismo de busca do mundo. Aqui estão os resultados que obtive com a minha abordagem inicial na aplicação de aprendizagem de máquinas para negociação forex.
Uma variedade de algoritmos são implementados para tentar prever a evolução de um instrumento com dados de apenas 8 barras diárias para o passado. Para cada dia, quatro valores são gravados, as três primeiras informações de registro sobre o movimento do dia anterior e rsquo; s perto do dia & rsquo; s alto, baixo e fechado, em percen to enquanto o quarto grava o volume do dia. Isso faz 32 variáveis independentes no total.
Os dados são obtidos a partir de três instrumentos na base de dados dukascopy, EURUSD, AUDJPY e GBPCHF diariamente Pergunte as barras de 1 de janeiro de 2008 a 31 de dezembro de 2011, com os fins de semana misturados na segunda-feira seguinte. Para cada um dos algoritmos testados, os dois primeiros anos foram usados para treinar os modelos enquanto o ano de 2012 foi usado para testá-los.
A biblioteca java aberta para algoritmos de aprendizado de máquina usados vem da WEKA: Data Mining Software em Java [i]. Você pode baixar a biblioteca ou o programa amigável ao usuário em cs. waikato. ac. nz/ml/weka/.
Predicando a direção do mercado.
Esses testes avaliam em que medida, se houver, é possível prever o movimento global do amanhã (de perto para fechar) com base em dados de oito dias anteriores usando uma variedade de algoritmos de aprendizado de máquina.
Uma alta correlação significa que o modelo prevê bem o movimento global do dia seguinte. Nesse caso, as correlações são muito próximas de zero, de modo que os modelos não podem prever o movimento geral do mercado.
Predicando a gama do mercado.
Para o forex, o intervalo é definido aqui como a diferença entre o dia & rsquo; s alto e o dia é baixo como uma porcentagem do fechamento anterior (para que diferentes instrumentos sejam comparáveis).
Um dos métodos mais simples e melhores, os vizinhos mais próximos, é o melhor para esta tarefa. Este método, para cada caso, simplesmente analisa os n casos no conjunto de treinamento que se parecem mais e prevê uma média ponderada de seu alcance.
Previsão do movimento absoluto de um instrumento.
O movimento absoluto de um instrumento é o movimento geral por um dia, mas sempre positivo. Isso é um pouco semelhante ao intervalo.
É impossível prever a direção do mercado para o dia seguinte com base apenas em oito barras e volumes anteriores, pelo menos usando esses algoritmos. No entanto, a primeira falha desta abordagem é talvez que ela tente prever todos os dias. Talvez algum processo de eliminação possa remover uma grande quantidade de dados que é principalmente imprevisível. Por outro lado, existem outros algoritmos como redes neuronais recorrentes que são mais apropriados para a tarefa em questão.
É possível prever, até certo ponto, o intervalo do dia seguinte e, de forma bastante lógica, o movimento absoluto (do próximo ao próximo). Este tipo de informação pode não ser relevante para os comerciantes que seguem as tendências, mas pode ser relevante para os escaladores que precisam prever o alcance de um par de moedas.
Eu acredito que tais algoritmos ultrapassam indicadores de alcance como o ATR no sentido de serem preditivos e não indicativos.
[1] Mark Hall, Eibe Frank, Geoffrey Holmes, Bernhard Pfahringer, Peter Reutemann, Ian H. Witten (2009); O software WEKA Data Mining: uma atualização; Explorações SIGKDD, Volume 11, Edição 1.
Aprendizado de máquinas para negociação.
Oferecido no Georgia Tech como CS 7646.
Programa Nanodegree.
Aprenda Unreal VR.
Saiba os fundamentos da construção de aplicativos vr usando um mecanismo irreal.
Acelere sua carreira com a credencial que o acompanha rapidamente ao sucesso do trabalho.
Sobre este curso.
Este curso apresenta os alunos aos desafios do mundo real de implementar estratégias de negociação baseadas em aprendizado de máquinas, incluindo os passos algorítmicos da coleta de informações para pedidos de mercado. O foco é sobre como aplicar abordagens de aprendizado de máquina probabilística para decisões de negociação. Consideramos abordagens estatísticas como regressão linear, KNN e árvores de regressão e como aplicá-las a situações reais de negociação de ações.
Custo do curso.
Aprox. 4 meses.
Nível de habilidade.
Incluído no curso.
Rich Learning Content.
Ensinado por profissionais da indústria.
Comunidade de apoio ao aluno.
Junte-se ao caminho da grandeza.
Este curso gratuito é o seu primeiro passo para uma nova carreira com o programa Learn Unreal VR Nanodegree.
Curso gratuito.
Aprendizado de máquinas para negociação.
Melhore o seu conjunto de habilidades e aumente a sua hirabilidade através de uma aprendizagem inovadora e independente.
Programa Nanodegree.
Aprenda Unreal VR.
Acelere sua carreira com a credencial que o acompanha rapidamente ao sucesso do trabalho.
Leads do curso.
Tucker Balch.
Arpan Chakraborty.
O que você aprenderá.
Este curso é composto por três mini-cursos:
Mini-curso 1: manipulação de dados financeiros no Python Mini-curso 2: Investimento computacional Mini-curso 3: Algoritmos de Aprendizado de Máquinas para Negociação.
Cada mini-curso consiste em cerca de 7 a 10 lições curtas. As tarefas e os projetos são intercalados.
Estudantes da OMS em queda de 2015: haverá dois testes - um meio de meio após mini-curso 2 e um exame final.
Pré-requisitos e requisitos.
Os estudantes devem ter fortes habilidades de codificação e alguma familiaridade com os mercados de ações. Nenhuma experiência financeira ou de aprendizado de máquina é assumida.
Observe que este curso atende estudantes que se concentram em ciência da computação, bem como estudantes de outras especialidades, como engenharia de sistemas industriais, gerenciamento ou matemática que tenham experiências diferentes. Todos os tipos de alunos são bem-vindos!
Os tópicos ML podem ser "revisar" para estudantes de CS, enquanto peças de finanças serão revisadas para estudantes de finanças. No entanto, mesmo se você tiver experiência nesses tópicos, você achará que os consideramos de uma maneira diferente da que você já viu antes, em particular com o objetivo de implementar para negociação.
A programação será principalmente em Python. Utilizaremos inúmeras bibliotecas numéricas como NumPy e Pandas.
Por que tomar este curso.
No final deste curso, você deve ser capaz de:
Compreender as estruturas de dados utilizadas para negociação algorítmica. Saiba como construir software para acessar dados de capital vivo, avaliá-lo e tomar decisões comerciais. Compreenda 3 algoritmos de aprendizagem de máquina populares e como aplicá-los a problemas comerciais. Compreenda como avaliar o desempenho de um algoritmo de aprendizagem de máquina para dados de séries temporais (dados de preço de estoque). Saiba como e por que as técnicas de mineração de dados (aprendizagem em máquina) falham. Construa um sistema de software comercializado que usa dados diários atuais.
Algumas limitações / restrições:
Usamos dados diários. Este não é um curso HFT, mas muitos dos conceitos aqui são relevantes. Nós não interagimos (negociamos) diretamente com o mercado, mas vamos gerar alocações de capital que você poderia negociar se quisesse.
O que eu ganho?
Vídeos de instrutor Aprenda fazendo exercícios Ensinados por profissionais da indústria.
Cursos relacionados.
Informática de saúde na nuvem.
Computação de alto desempenho.
Segurança de sistemas ciberfísicos.
Big Data Analytics em Saúde.
Introdução aos Sistemas Operacionais.
AI baseada no conhecimento: sistemas cognitivos.
Cursos populares.
Design de produto.
Marketing de email.
Programas em destaque.
Somente na Udacidade.
Programas.
O negócio.
"Nanodegree" é uma marca registrada da Udacity. &cópia de; 2011 & ndash; 2018 Udacity, Inc.
Udacity não é uma universidade credenciada e não conferimos graus.
Melhores estratégias 4: Aprendizado de máquinas.
Deep Blue foi o primeiro computador que ganhou um campeonato mundial de xadrez. Isso foi em 1996 e levou 20 anos até que outro programa, o AlphaGo, pudesse derrotar o melhor jogador Go humano. Deep Blue era um sistema baseado em modelo com regras de xadrez hardwired. O AlphaGo é um sistema de mineração de dados, uma rede neural profunda treinada com milhares de jogos Go. Hardware não melhorado, mas um avanço no software foi essencial para o passo de vencer os melhores jogadores de xadrez para vencer os melhores jogadores Go.
Nesta 4ª parte da mini-série, analisaremos a abordagem de mineração de dados para o desenvolvimento de estratégias comerciais. Este método não se preocupa com os mecanismos de mercado. Ele apenas verifica curvas de preços ou outras fontes de dados para padrões preditivos. Aprendizagem de máquina ou "Inteligência Artificial" e # 8221; nem sempre está envolvido em estratégias de mineração de dados. Na verdade, o mais popular & # 8211; e surpreendentemente lucrativo & # 8211; O método de mineração de dados funciona sem redes neurais sofisticadas ou máquinas de vetor de suporte.
Princípios de aprendizado da máquina.
Um algoritmo de aprendizagem é alimentado com amostras de dados, normalmente derivadas de algum modo de preços históricos. Cada amostra consiste em n variáveis x 1 .. x n, comumente designadas preditores, recursos, sinais ou simplesmente entrada. Esses preditores podem ser os retornos de preços das últimas barras n, ou uma coleção de indicadores clássicos, ou qualquer outra função imaginável da curva de preços (I & # 8217; até mesmo visto os pixels de uma imagem de gráfico de preços usada como preditor para uma neural rede!). Cada amostra também inclui normalmente uma variável alvo y, como o retorno do próximo comércio depois de tirar a amostra, ou o próximo movimento de preços. Na literatura, você pode encontrar também o nome do rótulo ou objetivo. Em um processo de treinamento, o algoritmo aprende a prever o alvo y a partir dos preditores x 1 .. x n. A memória aprendida & # 8216; & # 8217; é armazenado em uma estrutura de dados chamada modelo que é específico para o algoritmo (não deve ser confundido com um modelo financeiro para estratégias baseadas em modelos!). Um modelo de aprendizagem de máquina pode ser uma função com regras de predição no código C, gerado pelo processo de treinamento. Ou pode ser um conjunto de pesos de conexão de uma rede neural.
Os preditores, características, ou o que quer que você os chama, devem conter informações suficientes para prever o alvo e com alguma precisão. Eles também cumprem com freqüência dois requisitos formais. Primeiro, todos os valores de preditores devem estar no mesmo intervalo, como -1 ... +1 (para a maioria dos algoritmos R) ou -100 ... +100 (para algoritmos Zorro ou TSSB). Então você precisa normalizá-los de alguma forma antes de enviá-los para a máquina. Em segundo lugar, as amostras devem ser equilibradas, ou seja, distribuídas igualmente em todos os valores da variável alvo. Então, deve haver quase tantos como ganhar amostras. Se você não observar estes dois requisitos, você se perguntará por que você está obtendo resultados ruins do algoritmo de aprendizado da máquina.
Os algoritmos de regressão prevêem um valor numérico, como a magnitude e o sinal do próximo movimento de preços. Os algoritmos de classificação prevêem uma classe de amostra qualitativa, por exemplo, se ela está precedendo uma vitória ou uma perda. Alguns algoritmos, como redes neurais, árvores de decisão ou máquinas de vetor de suporte, podem ser executados em ambos os modos.
Alguns algoritmos aprendem a dividir amostras em classes sem necessidade de qualquer alvo y. A aprendizagem sem supervisão desse tipo, em oposição à aprendizagem supervisionada usando um alvo. Somewhere inbetween é o aprendizado de reforço, onde o sistema se treina executando simulações com os recursos fornecidos e usando o resultado como alvo de treinamento. AlphaZero, o sucessor do AlphaGo, usou a aprendizagem de reforço ao jogar milhões de jogos Go contra si. Em finanças, há poucas aplicações para aprendizagem sem supervisão ou reforço. 99% das estratégias de aprendizagem de máquinas usam a aprendizagem supervisionada.
Independentemente dos sinais que usamos para preditores em finanças, eles provavelmente contêm muito ruído e pouca informação, e não serão estacionários além disso. Portanto, a previsão financeira é uma das tarefas mais difíceis na aprendizagem por máquinas. Algoritmos mais complexos não conseguem necessariamente melhores resultados. A seleção dos preditores é fundamental para o sucesso. Não é bom usar muitos preditores, uma vez que isso simplesmente causa superação e falha na operação da amostra. Portanto, as estratégias de mineração de dados geralmente aplicam um algoritmo de pré-eleição que determina um pequeno número de preditores de um grupo de muitos. A pré-seleção pode basear-se na correlação entre preditores, na significância, no conteúdo da informação ou simplesmente no sucesso da previsão com um conjunto de testes. Experimentos práticos com seleção de recursos podem ser encontrados em um artigo recente sobre o blog Robot Wealth.
Aqui é uma lista dos métodos de mineração de dados mais populares usados em finanças.
1. Sopa indicadora.
A maioria dos sistemas de negociação que nós estamos programando para clientes não são baseados em um modelo financeiro. O cliente só queria sinais comerciais de certos indicadores técnicos, filtrado com outros indicadores técnicos em combinação com indicadores mais técnicos. Quando perguntado como essa mistura de indicadores poderia ser uma estratégia rentável, ele normalmente respondeu: "Confie em mim". Eu negocie-o manualmente e funciona. & # 8221;
Certamente. Pelo menos às vezes. Embora a maioria desses sistemas não tenha passado um teste WFA (e alguns nem mesmo um backtest simples), um número surpreendentemente grande. E esses também foram geralmente lucrativos no comércio real. O cliente havia experimentado sistematicamente indicadores técnicos até encontrar uma combinação que funcionasse em negociação ao vivo com certos ativos. Esta maneira de análise técnica de teste e erro é uma abordagem clássica de mineração de dados, apenas executada por um ser humano e não por uma máquina. Eu realmente não posso recomendar este método # 8211; e muita sorte, para não falar de dinheiro, provavelmente está envolvido & # 8211; mas posso testemunhar que às vezes leva a sistemas lucrativos.
2. Padrões de velas.
Não deve ser confundido com os padrões japoneses de velas que tiveram a melhor data antes, há muito tempo. O equivalente moderno é a negociação de ações de preço. Você ainda está olhando o aberto, alto, baixo e fechado de velas. Você ainda espera encontrar um padrão que preveja uma direção de preço. Mas você agora está curando curvas de preços contemporâneas para coleta desses padrões. Existem pacotes de software para esse fim. Eles procuram padrões que são lucrativos por algum critério definido pelo usuário, e usá-los para criar uma função de detecção de padrões específica. Poderia parecer este (do analisador de padrão Zorro & # 8217; s):
Esta função C retorna 1 quando os sinais correspondem a um dos padrões, caso contrário, você pode ver do longo código que esta não é a maneira mais rápida de detectar padrões. Um método melhor, usado pelo Zorro quando a função de detecção não precisa ser exportada, é classificar os sinais por sua magnitude e verificar a ordem de classificação. Um exemplo desse sistema pode ser encontrado aqui.
O mercado de ações de preços pode realmente funcionar? Assim como a sopa de indicadores, ela não é baseada em nenhum modelo financeiro racional. Pode-se, na melhor das hipóteses, imaginar que as seqüências de movimentos de preços levem os participantes do mercado a reagirem de uma certa maneira, estabelecendo assim um padrão preditivo temporário. No entanto, o número de padrões é bastante limitado quando você olha apenas as seqüências de algumas velas adjacentes. O próximo passo é comparar velas que não são adjacentes, mas arbitrariamente selecionadas dentro de um período de tempo mais longo. Desta forma, você está obtendo um número quase ilimitado de padrões & # 8211; mas à custa de deixar finalmente o reino do racional. É difícil imaginar como um movimento de preços pode ser previsto por alguns padrões de velas de semanas atrás.
Ainda assim, há muito esforço para isso. Um colega de blogueiro, Daniel Fernandez, administra um site de inscrição (Asirikuy) especializado em padrões de vela de dados minerados. Ele refinou o padrão de negociação até os menores detalhes, e se alguém conseguisse algum lucro desta forma, seria ele. Mas para seus assinantes & # 8217; desapontamento, trocando seus padrões ao vivo (QuriQuant) produziu resultados muito diferentes do que seus maravilhosos backtests. Se os sistemas de ação de preço rentáveis realmente existem, aparentemente ninguém já os encontrou.
3. Regressão linear.
A base simples de muitos algoritmos complexos de aprendizagem de máquina: Prever a variável alvo y por uma combinação linear dos preditores x 1 .. x n.
Os coeficientes a n são o modelo. Eles são calculados para minimizar a soma de diferenças quadradas entre os valores verdadeiros de y das amostras de treino e seus i preditos a partir da fórmula acima:
Para amostras distribuídas normais, a minimização é possível com alguma aritmética da matriz, portanto, nenhuma iteração é necessária. No caso n = 1 & # 8211; com apenas uma variável preditor x & # 8211; a fórmula de regressão é reduzida para.
que é uma regressão linear simples, em oposição à regressão linear multivariada onde n & gt; 1. A regressão linear simples está disponível na maioria das plataformas de negociação, f. i. com o indicador LinReg no TA-Lib. Com y = preço e x = tempo, muitas vezes usado como alternativa para uma média móvel. A regressão linear multivariada está disponível na plataforma R através da função lm (...) que vem com a instalação padrão. Uma variante é a regressão polinomial. Como regressão simples, ele usa apenas uma variável preditor x, mas também seus graus quadrados e superiores, de modo que x n == x n:
Com n = 2 ou n = 3, a regressão polinomial é freqüentemente usada para prever o próximo preço médio a partir dos preços suavizados das últimas barras. A função polyfit de MatLab, R, Zorro e muitas outras plataformas podem ser usadas para regressão polinomial.
4. Perceptron.
Muitas vezes referido como uma rede neural com apenas um neurônio. Na verdade, um perceptron é uma função de regressão como acima, mas com um resultado binário, assim chamado de regressão logística. Não é regressão, é um algoritmo de classificação. A função de recomendação do Zorro (PERCEPTRON, & # 8230;) gera código C que retorna 100 ou -100, dependendo se o resultado previsto está acima de um limite ou não:
Você pode ver que a matriz sig é equivalente às características x n na fórmula de regressão, e os fatores numéricos são os coeficientes a n.
5. Redes nacionais.
A regressão linear ou logística só pode resolver problemas lineares. Muitos não se enquadram nessa categoria & # 8211; um exemplo famoso é prever a saída de uma função XOR simples. E provavelmente também previsão de preços ou retornos comerciais. Uma rede neural artificial (ANN) pode enfrentar problemas não-lineares. É um monte de perceptrons que estão conectados em uma série de camadas. Qualquer perceptron é um neurônio da rede. Sua saída vai para as entradas de todos os neurônios da próxima camada, como esta:
Como o perceptron, uma rede neural também aprende determinando os coeficientes que minimizam o erro entre a previsão da amostra e o alvo da amostra. Mas isso exige agora um processo de aproximação, normalmente com backpropagating o erro da saída para as entradas, otimizando os pesos a caminho. Este processo impõe duas restrições. Primeiro, as saídas do neurônio devem agora ser continuamente funções diferenciáveis em vez do limiar de perceptron simples. Em segundo lugar, a rede não deve ser muito profunda e # 8211; não deve ter muitas camadas escondidas & # 8217; de neurônios entre entradas e saída. Esta segunda restrição limita a complexidade dos problemas que uma rede neural padrão pode resolver.
Ao usar uma rede neural para previsão de negociações, você tem muitos parâmetros com os quais você pode brincar e, se você não for cuidadoso, produza muitos tipos de seleção:
Número de camadas ocultas Número de neurônios por camada oculta Número de ciclos de backpropagation, épocas nomeadas Taxa de aprendizado, a largura do passo de uma Momência de época, um fator de inércia para a função de ativação da adaptação de pesos.
A função de ativação emula o limite de perceptron. Para o backpropagation você precisa de uma função continuamente diferenciável que gere um & # 8216; soft & # 8217; passo com um certo valor x. Normalmente, é utilizada uma função sigmoide, tanh ou softmax. Às vezes, também é uma função linear que apenas retorna a soma ponderada de todas as entradas. Nesse caso, a rede pode ser usada para regressão, para prever um valor numérico em vez de um resultado binário.
As redes neurais estão disponíveis na instalação R padrão (nnet, uma única rede de camada oculta) e em muitos pacotes, por exemplo RSNNS e FCNN4R.
6. Aprendizagem profunda.
Métodos de aprendizado profundo usam redes neurais com muitas camadas ocultas e milhares de neurônios, que não podem ser treinados de forma efetiva por backpropagation convencional. Vários métodos tornaram-se populares nos últimos anos para treinar tais redes enormes. Eles costumam pré-treinar as camadas do neurônio escondido para alcançar um processo de aprendizagem mais eficaz. Uma Máquina Boltzmann Restrita (RBM) é um algoritmo de classificação não supervisionado com uma estrutura de rede especial que não possui conexões entre os neurônios ocultos. Um auto-codificador esparso (SAE) usa uma estrutura de rede convencional, mas pré-treina as camadas ocultas de forma inteligente, reproduzindo os sinais de entrada nas saídas da camada com o menor número possível de conexões ativas. Esses métodos permitem redes muito complexas para lidar com tarefas de aprendizagem muito complexas. Como bater o melhor jogador humano do mundo.
As redes de aprendizagem profunda estão disponíveis nos pacotes Deepnet e Darch R. Deepnet fornece um autoencoder, Darch uma máquina Boltzmann restrito. Eu ainda não experimentei com o Darch, mas aqui é um exemplo de script R usando o autoencoder Deepnet com 3 camadas ocultas para sinais comerciais através da função neural () do Zorro & # 8217;
7. Suporte máquinas vetoriais.
Como uma rede neural, uma máquina de vetor de suporte (SVM) é outra extensão da regressão linear. Quando olhamos novamente para a fórmula de regressão,
podemos interpretar os recursos x n como coordenadas de um espaço de recursos n-dimensional. Definir a variável de destino y para um valor fixo determina um plano nesse espaço, chamado de hiperplane, pois possui mais de duas dimensões (na verdade, n-1). O hiperplane separa as amostras com y & gt; o das amostras com y & lt; 0. Os coeficientes a n podem ser calculados de forma a que as distâncias do plano para as amostras mais próximas # 8211; que são chamados de & # 8216; vetores de suporte & # 8217; do plano, daí o nome do algoritmo & # 8211; é o máximo. Desta forma, temos um classificador binário com a separação ideal de amostras vencedoras e perdidas.
O problema: normalmente, essas amostras não são linearmente separáveis e # 8211; Eles estão espalhados irregularmente no espaço de recursos. Nenhum avião plano pode ser espremido entre vencedores e perdedores. Se pudesse, tínhamos métodos mais simples para calcular esse avião, f. i. análise discriminante linear. Mas, no caso comum, precisamos do truque SVM: adicionando mais dimensões ao espaço de recursos. Para isso, o algoritmo SVM produz mais recursos com uma função kernel que combina dois preditores existentes para um novo recurso. Isso é análogo ao passo acima, desde a regressão simples até a regressão polinomial, onde também são adicionados mais recursos, levando o único preditor ao n-ésimo poder. Quanto mais dimensões você adiciona, mais fácil é separar as amostras com um hiperplano plano. Este plano é então transformado de volta para o espaço n-dimensional original, ficando enrugado e amassado no caminho. Através da seleção inteligente da função kernel, o processo pode ser executado sem realmente calcular a transformação.
À semelhança das redes neurais, os SVMs podem ser utilizados não apenas para classificação, mas também para regressão. Eles também oferecem alguns parâmetros para otimizar e possivelmente superar o processo de previsão:
Função Kernel. Você normalmente usa um kernel RBF (função de base radial, um kernel simétrico), mas você também tem a escolha de outros kernels, como sigmoid, polynomial e linear. Gamma, a largura do kernel RBF Custo parâmetro C, & # 8216; penalidade & # 8217; para classificações erradas nas amostras de treino.
Um SVM usado frequentemente é a biblioteca libsvm. Ele também está disponível em R no pacote e1071. Na próxima e última parte desta série, planejo descrever uma estratégia comercial usando este SVM.
8. K-vizinho mais próximo.
Comparado com as coisas pesadas de ANN e SVM, esse é um bom algoritmo simples com uma propriedade única: não precisa de treinamento. Então as amostras são o modelo. Você poderia usar esse algoritmo para um sistema comercial que aprenda permanentemente simplesmente adicionando mais e mais amostras. O algoritmo vizinho mais próximo calcula as distâncias no espaço de recursos dos valores de recurso atuais para as amostras mais próximas do k. Uma distância no espaço n-dimensional entre dois conjuntos de recursos (x 1 .. x n) e (y 1 .. y n) é calculada exatamente como em 2 dimensões:
O algoritmo simplesmente prediz o alvo da média das k variáveis alvo das amostras mais próximas, ponderadas por suas distâncias inversas. Pode ser usado para classificação, bem como para regressão. Os truques de software emprestados a partir de gráficos de computador, como uma árvore binária adaptativa (ABT), podem fazer com que o vizinho mais próximo busque muito rápido. Na minha vida passada como programador de jogos de computador, usamos esses métodos em jogos para tarefas como inteligência inimiga de auto-aprendizagem. Você pode chamar a função knn em R para a previsão do vizinho mais próximo e # 8211; ou escreva uma função simples em C para esse propósito.
Este é um algoritmo de aproximação para classificação não supervisionada. Tem alguma semelhança, não apenas com o nome, com o vizinho mais próximo. Para classificar as amostras, o algoritmo primeiro coloca k pontos aleatórios no espaço de recursos. Em seguida, atribui a qualquer um desses pontos todas as amostras com as menores distâncias a ele. O ponto é então movido para a média dessas amostras mais próximas. Isso gerará uma nova atribuição de amostras, uma vez que algumas amostras estão agora mais próximas de outro ponto. O processo é repetido até a atribuição não mudar mais movendo os pontos, isto é, cada ponto está exatamente na média das amostras mais próximas. Agora temos k classes de amostras, cada uma na vizinhança de um dos pontos k.
Este algoritmo simples pode produzir resultados surpreendentemente bons. Em R, a função kmeans faz o truque. Um exemplo do algoritmo k-means para classificar padrões de velas pode ser encontrado aqui: classificação de castiçal não supervisionada para diversão e lucro.
10. Naive Bayes.
Este algoritmo usa Bayes & # 8217; Teorema para classificar amostras de características não numéricas (isto é, eventos), como os padrões de vela acima mencionados. Suponha que um evento X (por exemplo, que o Open da barra anterior esteja abaixo do Open da barra atual) aparece em 80% de todas as amostras vencedoras. Qual é então a probabilidade de uma amostra estar ganhando quando contém evento X? Não é 0.8 como você pensa. A probabilidade pode ser calculada com Bayes & # 8217; Teorema:
P (Y | X) é a probabilidade de que o evento Y (f. i. winning) ocorra em todas as amostras contendo evento X (no nosso exemplo, Abrir (1) & lt; Abrir (0)). De acordo com a fórmula, é igual à probabilidade de X ocorrer em todas as amostras vencedoras (aqui, 0,8), multiplicado pela probabilidade de Y em todas as amostras (cerca de 0,5 quando você seguiu meu conselho acima de amostras equilibradas) e dividido por a probabilidade de X em todas as amostras.
Se somos ingênuos e assumimos que todos os eventos X são independentes um do outro, podemos calcular a probabilidade geral de que uma amostra ganhe simplesmente multiplicando as probabilidades P (X | winning) para cada evento X. Desta forma, acabamos com esta fórmula:
com um fator de escala s. Para que a fórmula funcione, os recursos devem ser selecionados de forma que sejam o mais independentes possível, o que impõe um obstáculo ao uso de Naive Bayes na negociação. Por exemplo, os dois eventos fecham (1) & lt; Fechar (0) e Abrir (1) & lt; Open (0) provavelmente não são independentes um do outro. Os preditores numéricos podem ser convertidos em eventos dividindo o número em intervalos separados.
O algoritmo Naive Bayes está disponível no omnipresente pacote e1071 R.
11. Árvores de decisão e regressão.
Essas árvores predizem um resultado ou um valor numérico com base em uma série de decisões sim / não, em uma estrutura como os ramos de uma árvore. Qualquer decisão é a presença de um evento ou não (no caso de características não numerais) ou uma comparação de um valor de recurso com um limite fixo. Uma função de árvore típica, gerada pelo construtor de árvores do Zorro & # 8217; parece assim:
Como uma tal árvore é produzida a partir de um conjunto de amostras? Existem vários métodos; Zorro usa a entropia Shannon i nformation, que já teve uma aparição neste blog no artigo Scalping. No começo, verifica um dos recursos, digamos x 1. Coloca um hiperplano com a fórmula plana x 1 = t no espaço da característica. Este hiperplato separa as amostras com x 1 & gt; t das amostras com x 1 & lt; t. O limite de divisão t é selecionado de modo que o ganho de informação & # 8211; a diferença de entropia de informação de todo o espaço, a soma das entropias de informação dos dois sub-espaços divididos e # 8211; é o máximo. Este é o caso quando as amostras nos subespaços são mais parecidas entre si que as amostras em todo o espaço.
Este processo é então repetido com o próximo recurso x 2 e dois hiperplanos dividindo os dois subespaços. Cada divisão é equivalente a uma comparação de um recurso com um limite. Por fraccionamento repetido, logo obteremos uma enorme árvore com milhares de comparações de limiar. Em seguida, o processo é executado para trás pela poda da árvore e remoção de todas as decisões que não levam a um aumento substancial de informações. Finalmente, acabamos com uma árvore relativamente pequena como no código acima.
As árvores de decisão possuem uma ampla gama de aplicações. Eles podem produzir excelentes previsões superiores às das redes neurais ou às máquinas de vetor de suporte. Mas eles não são uma solução única, já que seus planos de divisão são sempre paralelos aos eixos do espaço de recursos. Isso limita um pouco suas previsões. Eles podem ser usados não só para classificação, mas também para regressão, por exemplo, retornando a porcentagem de amostras que contribuem para um determinado ramo da árvore. A árvore do Zorro é uma árvore de regressão. O algoritmo de árvore de classificação mais conhecido é C5.0, disponível no pacote C50 para R.
Para melhorar a previsão ainda mais ou superar a limitação do eixo paralelo, um conjunto de árvores pode ser usado, chamado floresta aleatória. A previsão é então gerada pela média ou votação das previsões das árvores individuais. As florestas aleatórias estão disponíveis em pacotes R randomForest, ranger e Rborist.
Conclusão.
Existem vários métodos diferentes de mineração de dados e aprendizagem de máquinas à sua disposição. A questão crítica: o que é melhor, uma estratégia de aprendizagem baseada em modelos ou a máquina? Não há dúvida de que o aprendizado automático da máquina tem muitas vantagens. Você não precisa se preocupar com a microestrutura do mercado, a economia, a psicologia do comerciante ou coisas suaves semelhantes. Você pode se concentrar na matemática pura. O aprendizado de máquina é uma maneira muito mais elegante e atraente de gerar sistemas de comércio. Ele tem todas as vantagens do seu lado, mas um. Apesar de todos os tópicos entusiasmados nos fóruns de comerciantes, ele tende a falhar misteriosamente na negociação ao vivo.
A cada segunda semana, um novo artigo sobre comércio com métodos de aprendizagem de máquinas é publicado (alguns podem ser encontrados abaixo). Pegue todas essas publicações com um grão de sal. De acordo com alguns papéis, as taxas de ganhos fantásticos na faixa de 70%, 80% ou mesmo 85% foram alcançadas. Embora a taxa de ganhos não seja o único critério relevante & # 8211; você pode perder mesmo com uma alta taxa de vitória e # 8211; 85% de precisão na previsão de trades é normalmente equivalente a um fator de lucro acima de 5. Com esse sistema, os cientistas envolvidos devem ser bilionários enquanto isso. Infelizmente, eu nunca consegui reproduzir as taxas de vitórias com o método descrito, e nem chegou perto. Então, talvez um monte de viés de seleção tenha entrado nos resultados. Ou talvez eu seja muito estúpido.
Em comparação com as estratégias baseadas em modelos, eu não vi muitos sistemas de aprendizado de máquina bem sucedidos até agora. E do que se ouve sobre os métodos algorítmicos por hedge funds bem-sucedidos, a aprendizagem por máquinas parece ainda raramente ser usada. Mas talvez isso mude no futuro com a disponibilidade de mais poder de processamento e a próxima de novos algoritmos para aprendizagem profunda.
Classificação usando redes neurais profundas: Dixon. et. al.2016 Previsão de direção de preço usando ANN & amp; SVM: Kara. et. al.2011 Comparação empírica dos algoritmos de aprendizagem: Caruana. et. al.2006 Tendência do mercado de ações da mineração com GA & amp; SVM: Yu. Wang. Lai.2005.
A próxima parte desta série tratará do desenvolvimento prático de uma estratégia de aprendizado de máquinas.
30 pensamentos sobre & ldquo; Better Strategies 4: Machine Learning & rdquo;
Bela postagem. Existe uma grande quantidade de potencial nessa abordagem em relação ao mercado.
Btw você está usando o editor de código que vem com zorro? como é possível obter essa configuração de cor?
O script colorido é produzido pelo WordPress. Você não pode mudar as cores no editor do Zorro, mas você pode substituí-lo por outros editores que suportem cores individuais, por exemplo Notepad ++.
É então possível que o bloco de notas detecte as variáveis zorro nos scripts? Quero dizer que o BarPeriod é comentado como está com o editor zorro?
Teoricamente sim, mas para isso você precisou configurar o destaque de sintaxe do Notepad ++ e digitar todas as variáveis na lista. Tanto quanto eu sei, o Notepad ++ também não pode ser configurado para exibir a descrição da função em uma janela, como faz o editor Zorro. Não existe uma ferramenta perfeita e # 8230;
Conforme o último parágrafo. Eu tentei muitas técnicas de aprendizado de máquina depois de ler vários & # 8216; peer reviewed & # 8217; papéis. Mas reproduzir seus resultados permanece indescritível. Quando eu vivo teste com ML, eu não posso parecer melhorar a entrada aleatória.
ML falha ao vivo? Talvez o treinamento do ML tenha que ser feito com dados de preços que incluam também o spread histórico, roll, tick e assim por diante?
Eu acho que o motivo # 1 para falha ao vivo é o viés de mineração de dados, causado por seleção tendenciosa de entradas e parâmetros para o algo.
Obrigado ao autor pela grande série de artigos.
No entanto, deve-se notar que não precisamos restringir nossa visão ao prever apenas o próximo movimento de preços. Pode acontecer que o próximo movimento vá contra o nosso comércio em 70% dos casos, mas ainda vale a pena fazer um comércio. Isso acontece quando o preço finalmente vai para a direção certa, mas antes disso pode fazer alguns passos contra nós. Se atrasarmos o comércio por um passo de preço, não entraremos nos 30% mencionados das negociações, mas para isso aumentamos o resultado do passo de preço de 70% por um preço. Portanto, o critério é qual o valor mais alto: N * average_result ou 0.7 * N * (avergae_result + price_step).
Bela postagem. Se você quiser apenas brincar com alguma aprendizagem de máquinas, implementei uma ferramenta ML muito simples em python e adicionei uma GUI. É implementado para prever séries temporais.
Obrigado JCL Achei muito interessante o seu artigo. Gostaria de perguntar-lhe, a partir da sua experiência em negociação, onde podemos transferir dados históricos confiáveis de forex? Eu considero isso muito importante devido ao fato de o mercado Forex estar descentralizado.
Desde já, obrigado!
Não há dados de Forex realmente confiáveis, uma vez que todo corretor de Forex cria seus próprios dados. Todos eles diferem ligeiramente dependentes de quais provedores de liquidez eles usam. FXCM tem relativamente bom M1 e marca dados com poucas lacunas. Você pode baixá-lo com o Zorro.
Obrigado por escrever uma série tão grande de artigos JCL & # 8230; uma leitura completamente agradável!
Tenho que dizer, porém, que não considero as estratégias de aprendizado de máquinas baseadas em modelo e mutuamente exclusivas; Eu tive algum sucesso de OOS usando uma combinação dos elementos que você descreve.
Para ser mais exato, eu começo o processo de geração do sistema, desenvolvendo um & # 8216; tradicional & # 8217; modelo matemático, mas, em seguida, use um conjunto de algoritmos de aprendizagem de máquinas on-line para prever os próximos termos das várias séries temporais diferentes (e não o próprio preço) que são usadas dentro do modelo. As regras de negociação reais são então derivadas das interações entre essas séries temporais. Então, na essência, não estou apenas atirando cegamente os dados de mercado recentes em um modelo de ML em um esforço para prever a direção de ação de preço, mas sim desenvolver uma estrutura baseada em princípios de investimento sólidos para apontar os modelos na direção certa. Então, os dados minam os parâmetros e medem o nível de viés de mineração de dados como você também descreveu.
Vale a pena mencionar, no entanto, que eu nunca tive muito sucesso com o Forex.
De qualquer forma, a melhor sorte com sua negociação e mantenha os ótimos artigos!
Obrigado por publicar esta ótima série mini JCL.
Recentemente, estudei alguns últimos artigos sobre ML trading, profundamente aprendendo especialmente. No entanto, descobri que a maioria deles avaliou os resultados sem índice ajustado ao risco, ou seja, eles costumavam usar a curva ROC, PNL para suportar sua experiência, em vez de Sharpe Ratio, por exemplo.
Além disso, raramente mencionaram a frequência comercial nos resultados da experiência, tornando difícil avaliar a rentabilidade potencial desses métodos. Por que é que? Você tem boas sugestões para lidar com essas questões?
Os papéis ML normalmente visam uma alta precisão. A variação da curva de capital não é de interesse. Isso é justificado porque a qualidade de predição ML determina a precisão, e não a variação.
Claro, se você quer realmente negociar esse sistema, a variação e a retirada são fatores importantes. Um sistema com menor precisão e pior previsão pode de fato ser preferível quando é menos dependente das condições de mercado.
& # 8220; De fato, o método de mineração de dados mais popular e surpreendentemente lucrativo funciona sem redes neurais sofisticadas ou máquinas de vetor de suporte. & # 8221;
Você gostaria de nomear aqueles mais populares? surpreendentemente lucrativos. Então eu poderia usá-los diretamente.
Eu estava me referindo às estratégias de sopa de indicadores. Por razões óbvias, não posso divulgar detalhes de tal estratégia e nunca desenvolvi esses sistemas. Nós simplesmente codificamos. Mas eu posso dizer que chegar com uma sopa Indicadora rentável requer muito trabalho e tempo.
Bem, estou apenas começando um projeto que usa EMAs simples para prever o preço, ele apenas seleciona os EMAs corretos com base no desempenho passado e na seleção de algoritmos que fazem algum grau rústico de inteligência.
Jonathan. orregogmail oferece serviços como programador MT4 EA.
Obrigado pelo bom writeup. Na realidade, costumava ser uma conta de lazer.
Olhe complicado para mais entregues agradável de você!
Falando nisso, como podemos entrar em contato?
There are following issues with ML and with trading systems in general which are based on historical data analysis:
1) Historical data doesn’t encode information about future price movements.
Future price movement is independent and not related to the price history. There is absolutely no reliable pattern which can be used to systematically extract profits from the market. Applying ML methods in this domain is simply pointless and doomed to failure and is not going to work if you search for a profitable system. Of course you can curve fit any past period and come up with a profitable system for it.
The only thing which determines price movement is demand and supply and these are often the result of external factors which cannot be predicted. For example: a war breaks out somewhere or other major disaster strikes or someone just needs to buy a large amount of a foreign currency for some business/investment purpose. These sort of events will cause significant shifts in the demand supply structure of the FX market . As a consequence, prices begin to move but nobody really cares about price history just about the execution of the incoming orders. An automated trading system can only be profitable if it monitors a significant portion of the market and takes the supply and demand into account for making a trading decision. But this is not the case with any of the systems being discussed here.
2) Race to the bottom.
Even if (1) wouldn’t be true and there would be valuable information encoded in historical price data, you would still face following problem: there are thousands of gold diggers out there, all of them using similar methods and even the same tools to search for profitable systems and analyze the same historical price data. As a result, many of them will discover the same or very similar “profitable” trading systems and when they begin actually trading those systems, they will become less and less profitable due to the nature of the market.
The only sure winners in this scenario will be the technology and tool vendors.
I will be still keeping an eye on your posts as I like your approach and the scientific vigor you apply. Your blog is the best of its kind – keep the good work!
One hint: there are profitable automated systems, but they are not based on historical price data but on proprietary knowledge about the market structure and operations of the major institutions which control these markets. Let’s say there are many inefficiencies in the current system but you absolutely have no chance to find the information about those by analyzing historical price data. Instead you have to know when and how the institutions will execute market moving orders and front run them.
Thanks for the extensive comment. I often hear these arguments and they sound indeed intuitive, only problem is that they are easily proven wrong. The scientific way is experiment, not intuition. Simple tests show that past and future prices are often correlated – otherwise every second experiment on this blog had a very different outcome. Many successful funds, for instance Jim Simon’s Renaissance fund, are mainly based on algorithmic prediction.
One more thing: in my comment I have been implicitly referring to the buy side (hedge funds, traders etc) not to the sell side (market makers, banks). The second one has always the edge because they sell at the ask and buy at the bid, pocketing the spread as an additional profit to any strategy they might be running. Regarding Jim Simon’s Renaissance: I am not so sure if they have not transitioned over the time to the sell side in order to stay profitable. There is absolutely no information available about the nature of their business besides the vague statement that they are using solely quantitative algorithmic trading models…
Thanks for the informative post!
Regarding the use of some of these algorithms, a common complaint which is cited is that financial data is non-stationary…Do you find this to be a problem? Couldn’t one just use returns data instead which is (I think) stationary?
Yes, this is a problem for sure. If financial data were stationary, we’d all be rich. I’m afraid we have to live with what it is. Returns are not any more stationary than other financial data.
Hello sir, I developed some set of rules for my trading which identifies supply demand zones than volume and all other criteria. Can you help me to make it into automated system ?? If i am gonna do that myself then it can take too much time. Please contact me at svadukiagmail if you are interested.
Sure, please contact my employer at infoopgroup. de. They’ll help.
I have noticed you don’t monetize your page, don’t waste your traffic,
you can earn extra bucks every month because you’ve got high quality content.
If you want to know how to make extra $$$, search for: Mrdalekjd methods for $$$
Technical analysis has always been rejected and looked down upon by quants, academics, or anyone who has been trained by traditional finance theories. I have worked for proprietary trading desk of a first tier bank for a good part of my career, and surrounded by those ivy-league elites with background in finance, math, or financial engineering. I must admit none of those guys knew how to trade directions. They were good at market making, product structures, index arb, but almost none can making money trading directions. Por quê? Because none of these guys believed in technical analysis. Then again, if you are already making your millions why bother taking the risk of trading direction with your own money. For me luckily my years of training in technical analysis allowed me to really retire after laying off from the great recession. I look only at EMA, slow stochastics, and MACD; and I have made money every year since started in 2009. Technical analysis works, you just have to know how to use it!!
Comments
Post a Comment