Aprendizado da máquina de troca de opções


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-2018 e foi validado por cruzamento com dados 2018-2018, não há motivos para acreditar que o mesmo sucesso acontecerá se for treinado em dados 2003-2018 e depois comercializado de 2018 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;]


Construa melhores estratégias! Parte 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 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 uses the Shannon i nformation entropy , which already had an appearance on this blog in the Scalping article. At first it checks one of the features, let’s say x 1 . It places a hyperplane with the plane formula x 1 = t into the feature space. This hyperplane separates the samples with x 1 > t from the samples with x 1 < t . The dividing threshold t is selected so that the information gain – the difference of information entropy of the whole space, to the sum of information entropies of the two divided sub-spaces – is maximum. This is the case when the samples in the subspaces are more similar to each other than the samples in the whole space.


This process is then repeated with the next feature x 2 and two hyperplanes splitting the two subspaces. Each split is equivalent to a comparison of a feature with a threshold. By repeated splitting, we soon get a huge tree with thousands of threshold comparisons. Then the process is run backwards by pruning the tree and removing all decisions that do not lead to substantial information gain. Finally we end up with a relatively small tree as in the code above.


Decision trees have a wide range of applications. They can produce excellent predictions superior to those of neural networks or support vector machines. But they are not a one-fits-all solution, since their splitting planes are always parallel to the axes of the feature space. This somewhat limits their predictions. They can be used not only for classification, but also for regression, for instance by returning the percentage of samples contributing to a certain branch of the tree. Zorro’s tree is a regression tree. The best known classification tree algorithm is C5.0 , available in the C50 package for R.


For improving the prediction even further or overcoming the parallel-axis-limitation, an ensemble of trees can be used, called a random forest . The prediction is then generated by averaging or voting the predictions from the single trees. Random forests are available in R packages randomForest , ranger and Rborist .


Conclusão.


There are many different data mining and machine learning methods at your disposal. The critical question: what is better, a model-based or a machine learning strategy? There is no doubt that machine learning has a lot of advantages. You don’t need to care about market microstructure, economy, trader psychology, or similar soft stuff. You can concentrate on pure mathematics. Machine learning is a much more elegant, more attractive way to generate trade systems. It has all advantages on its side but one. Despite all the enthusiastic threads on trader forums, it tends to mysteriously fail in live trading.


Every second week a new paper about trading with machine learning methods is published (a few can be found below). Please take all those publications with a grain of salt. According to some papers, phantastic win rates in the range of 70%, 80%, or even 85% have been achieved. Although win rate is not the only relevant criterion – you can lose even with a high win rate – 85% accuracy in predicting trades is normally equivalent to a profit factor above 5. With such a system the involved scientists should be billionaires meanwhile. Unfortunately I never managed to reproduce those win rates with the described method, and didn’t even come close. So maybe a lot of selection bias went into the results. Or maybe I’m just too stupid.


Compared with model based strategies, I’ve seen not many successful machine learning systems so far. And from what one hears about the algorithmic methods by successful hedge funds, machine learning seems still rarely to be used. But maybe this will change in the future with the availability of more processing power and the upcoming of new algorithms for deep learning.


Classification using deep neural networks: Dixon. et. al.2018 Predicting price direction using ANN & SVM: Kara. et. al.2018 Empirical comparison of learning algorithms: Caruana. et. al.2006 Mining stock market tendency using GA & SVM: Yu. Wang. Lai.2005.


The next part of this series will deal with the practical development of a machine learning strategy.


30 thoughts on “Build Better Strategies! Part 4: Machine Learning”


Bela postagem. There is a lot of potential in these approach towards the market.


Btw are you using the code editor which comes with zorro? how is it possible to get such a colour configuration?


The colorful script is produced by WordPress. You can’t change the colors in the Zorro editor, but you can replace it with other editors that support individual colors, for instance Notepad++.


Is it then possible that notepad detects the zorro variables in the scripts? I mean that BarPeriod is remarked as it is with the zorro editor?


Theoretically yes, but for this you had to configure the syntax highlighting of Notepad++, and enter all variables in the list. As far as I know Notepad++ can also not be configured to display the function description in a window, as the Zorro editor does. There’s no perfect tool…


Concur with the final paragraph. I have tried many machine learning techniques after reading various ‘peer reviewed’ papers. But reproducing their results remains elusive. When I live test with ML I can’t seem to outperform random entry.


ML fails in live? Maybe the training of the ML has to be done with price data that include as well historical spread, roll, tick and so on?


I think reason #1 for live failure is data mining bias, caused by biased selection of inputs and parameters to the algo.


Thanks to the author for the great series of articles.


However, it should be noted that we don’t need to narrow our view with predicting only the next price move. It may happen that the next move goes against our trade in 70% of cases but it still worth making a trade. This happens when the price finally does go to the right direction but before that it may make some steps against us. If we delay the trade by one price step we will not enter the mentioned 30% of trades but for that we will increase the result of the remained 70% by one price step. So the criteria is which value is higher: N*average_result or 0.7*N*(avergae_result + price_step).


Bela postagem. If you just want to play around with some machine learning, I implemented a very simple ML tool in python and added a GUI. It’s implemented to predict time series.


Thanks JCL I found very interesting your article. I would like to ask you, from your expertise in trading, where can we download reliable historical forex data? I consider it very important due to the fact that Forex market is decentralized.


Desde já, obrigado!


There is no really reliable Forex data, since every Forex broker creates their own data. They all differ slightly dependent on which liquidity providers they use. FXCM has relatively good M1 and tick data with few gaps. You can download it with Zorro.


Thanks for writing such a great article series JCL… a thoroughly enjoyable read!


I have to say though that I don’t view model-based and machine learning strategies as being mutually exclusive; I have had some OOS success by using a combination of the elements you describe.


To be more exact, I begin the system generation process by developing a ‘traditional’ mathematical model, but then use a set of online machine learning algorithms to predict the next terms of the various different time series (not the price itself) that are used within the model. The actual trading rules are then derived from the interactions between these time series. So in essence I am not just blindly throwing recent market data into an ML model in an effort to predict price action direction, but instead develop a framework based upon sound investment principles in order to point the models in the right direction. I then data mine the parameters and measure the level of data-mining bias as you’ve described also.


It’s worth mentioning however that I’ve never had much success with Forex.


Anyway, best of luck with your trading and keep up the great articles!


Thanks for posting this great mini series JCL.


I recently studied a few latest papers about ML trading, deep learning especially. Yet I found that most of them valuated the results without risk-adjusted index, i. e., they usually used ROC curve, PNL to support their experiment instead of Sharpe Ratio, for example.


Also, they seldom mentioned about the trading frequency in their experiment results, making it hard to valuate the potential profitability of those methods. Por que é que? Do you have any good suggestions to deal with those issues?


ML papers normally aim for high accuracy. Equity curve variance is of no interest. This is sort of justified because the ML prediction quality determines accuracy, not variance.


Of course, if you want to really trade such a system, variance and drawdown are important factors. A system with lower accuracy and worse prediction can in fact be preferable when it’s less dependent on market condictions.


“In fact the most popular – and surprisingly profitable – data mining method works without any fancy neural networks or support vector machines.”


Would you please name those most popular & surprisingly profitable ones. So I could directly use them.


I was referring to the Indicator Soup strategies. For obvious reasons I can’t disclose details of such a strategy, and have never developed such systems myself. We’re merely coding them. But I can tell that coming up with a profitable Indicator Soup requires a lot of work and time.


Well, i am just starting a project which use simple EMAs to predict price, it just select the correct EMAs based on past performance and algorithm selection that make some rustic degree of intelligence.


Jonathan. orrego@gmail offers services as MT4 EA programmer.


Obrigado pelo bom writeup. It in reality used to be a leisure account it.


Look complicated to more delivered agreeable from you!


By the way, how could we be in contact?


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 svadukia@gmail if you are interested.


Sure, please contact my employer at info@opgroup. 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!!


Aprendizado de máquinas para negociação.


Offered at Georgia Tech as CS 7646.


Nanodegree Program.


Machine Learning Engineer.


Make Predictive Models.


Accelerate your career with the credential that fast-tracks you to job success.


About this Course.


This course introduces students to the real world challenges of implementing machine learning based trading strategies including the algorithmic steps from information gathering to market orders. The focus is on how to apply probabilistic machine learning approaches to trading decisions. We consider statistical approaches like linear regression, KNN and regression trees and how to apply them to actual stock trading situations.


Course Cost.


Aprox. 4 months.


Skill Level.


Included in Course.


Rich Learning Content.


Taught by Industry Pros.


Student Support Community.


Join the Path to Greatness.


This free course is your first step towards a new career with the Machine Learning Engineer Nanodegree Program.


Free Course.


Aprendizado de máquinas para negociação.


Enhance your skill set and boost your hirability through innovative, independent learning.


Nanodegree Program.


Machine Learning Engineer.


Accelerate your career with the credential that fast-tracks you to job success.


Course Leads.


Tucker Balch.


Arpan Chakraborty.


O que você aprenderá.


This course is composed of three mini-courses :


Mini-course 1: Manipulating Financial Data in Python Mini-course 2: Computational Investing Mini-course 3: Machine Learning Algorithms for Trading.


Each mini-course consists of about 7-10 short lessons. Assignments and projects are interleaved.


Fall 2018 OMS students : There will be two tests - one midterm after mini-course 2, and one final exam.


Prerequisites and Requirements.


Students should have strong coding skills and some familiarity with equity markets. No finance or machine learning experience is assumed.


Note that this course serves students focusing on computer science, as well as students in other majors such as industrial systems engineering, management, or math who have different experiences. All types of students are welcome!


The ML topics might be "review" for CS students, while finance parts will be review for finance students. However, even if you have experience in these topics, you will find that we consider them in a different way than you might have seen before, in particular with an eye towards implementation for trading.


Programming will primarily be in Python. We will make heavy use of numerical computing libraries like NumPy and Pandas.


Why Take This Course.


By the end of this course, you should be able to:


Understand data structures used for algorithmic trading. Know how to construct software to access live equity data, assess it, and make trading decisions. Understand 3 popular machine learning algorithms and how to apply them to trading problems. Understand how to assess a machine learning algorithm's performance for time series data (stock price data). Know how and why data mining (machine learning) techniques fail. Construct a stock trading software system that uses current daily data.


Some limitations/constraints:


We use daily data. This is not an HFT course, but many of the concepts here are relevant. We don't interact (trade) directly with the market, but we will generate equity allocations that you could trade if you wanted to.


What do I get?


Instructor videos Learn by doing exercises Taught by industry professionals.


Cursos relacionados.


Linear Algebra Refresher Course.


Compilers: Theory and Practice.


High Performance Computer Architecture.


Advanced Operating Systems.


Big Data Analytics in Healthcare.


Network Security.


Cursos populares.


Artificial Intelligence - Probabalistic Models.


VR Scenes and Objects.


Search Engine Marketing with AdWords (SEM)


Featured Programs.


Only At Udacity.


Programas.


O negócio.


"Nanodegree" is a registered trademark of Udacity. &cópia de; 2018–2017 Udacity, Inc.


Udacity is not an accredited university and we don't confer degrees.


Nanalyze.


In previous articles, we’ve defined some of the terms being thrown around lately like “machine learning” and “artificial intelligence“. These disruptive technologies will soon change the world as we know it. While some pundits predicted that we were years away from a computer that could beat a human expert at “Go”, this achievement was recently announced. If a “deep learning” program can now beat a game that has more possible moves than atoms in the known universe, then what’s stopping us from unleashing it upon the stock market and making millions?


The idea of using computers to trade stocks is hardly new. Algorithmic trading (also known as algo trading or black box trading which is a subset of algo trading) has been around for well over a decade and rapidly gaining in popularity. Here’s a look at algorithmic trading as a percentage of market volume:


Source: Morton Glantz, Robert Kissell. Multi-Asset Risk Modeling: Techniques for a Global Economy in an Electronic and Algorithmic Trading Era.


If that trend continues, then this means that today upwards of 90% of trading is being conducted by computer programs. One thing to notice about algorithmic trading is that it has been moving in the direction of shorter and shorter holding times. High frequency trading (HFT) is a subset of algorithmic trading in which stocks are bought and then sold in fractions of a second. This strategy is a form of arbitrage in which the HFT algorithm spots a price discrepancy and then quickly capitalizes on it. As you would expect, HFT trading profits are becoming smaller and smaller but the volume of trades are still dominating the overall market:


Now that we know about algorithmic trading and HFT, just how does machine learning or deep learning come into play? To answer this question, the important variable to take into account is duration. While HFT and algo trading perform trades of a short duration, it becomes much more difficult to “capture alpha” when you start increasing the time frame. The reality is that some of the world’s biggest hedge funds are already all over this space and have been capturing alpha across many durations for a long time now using machine learning.


Early last year, Bridgewater Associates which has $150 billion in assets under management (AUM) started a new artificial intelligence unit led by David Ferrucci who led the development of IBM’s Watson. After working at IBM for 17 years, he was poached by Bridgewater in 2018.


Another firm called Renaissance Technologies has $65 billion in AUM and is said to have “the best physics and mathematics department in the world”. The Medallion Fund at Renaissance, run mostly for employees of the company, has one of the best records in investing history having returned +35% annualized over 20 years. The two co-CEOs of Renaissance were both hired from IBM Research in 1993 where they were working on language-recognition programs.


With $32 billion under management, Two Sigma Investments is known for using AI and machine learning as a key part of their strategy. One co-founder did his PHD in artificial intelligence at MIT and the other was an International Mathematical Olympiad Silver Medalist. Being a finance professional is not a requirement to work at this firm.


While hedge funds such as these 3 are pioneers of using machine learning for stock trading strategies, there are some startups playing in this space as well. Binatix is a deep learning trading firm that came out of stealth mode in 2017 and claims to be nicely profitable having used their strategy for well over three years. Aidyia is a Hong Kong based hedge fund launched in 2018 that trades in U. S. equities and makes all stock trades using artificial intelligence with no human intervention required. Sentient, another deep learning company we discussed before, has developed an artificial intelligence trader that was successful enough that they are consider spinning it out as a prop trading company or asset management firm.


If there’s a startup that shows promise in this space, you can bet that the 3 well established hedge funds we discussed know about it. If you had a machine learning algorithm that generated alpha, would you tell the world about it? Most likely not. But then how would you raise the capital needed to make some serious money off of your strategy? Firms like Bridgewater can be as nimble as any startup and at the same time have $150 billion in capital to play with. It’s hard to compete if you’re a startup that’s trying to get funded. If you’re looking for investors, you have to disclose what you’re doing. Word travels fast. It’s not hard to see hedge funds like Bridgewater poaching talent from AI startups that are trying to play in this space and quickly finding out what they’re up to.


For retail investors to take advantage of machine learning for stock trading, you have a couple directions to take. For ultra high net worth retail investors, you can invest your money in one of the hedge funds using AI like Bridgewater or Renaissance. For those of us who don’t have such large amounts of capital, we can wait for deep learning companies like Sentient to go public or be acquired and then invest in those vehicles. We’ll be keeping a close eye on this space because frankly, it’s just fascinating.


If you pay more than $4.95 a trade , you're paying too much. Ally Invest is one of the lowest-fee brokers around so you spend less money on transaction fees and more on stocks. With more than 30 trades a quarter it drops even lower to $3.95 a trade . Open an account and begin trading today.


Published: April 14, 2018.


5 ETFs and Funds Using AI for Stock Selection.


Is Stitch Fix an Artificial Intelligence IPO?


A Warning About “Artificial Intelligence Stocks”


You said: Algorithmic trading (also known as algo trading or black box trading)


Just wanted to point out that not all algo trading is black box.


Thank you for the clarification David! We noted that in the article.


there is an ETF that allows investors to access these technologies today! NYSE listed ticker symbol ‘BUZ’. Learn more at buzzindexes.


Thank you for the comment Jamie! That was a great interview you had on Squawk Box introducing the BUZ ETF.


Thank you for the heads up!


Subscribe to the Weekly Digest.


Subscribe to the Nanalyze Weekly Digest.


Subscribe to our Nanalyze Weekly Digest to receive a summary of all articles every week.


We’ll never use your email for anything other than sending you great articles about investing in disruptive technologies.


The Financial Hacker.


A new view on algorithmic trading.


Algorithmic Options Trading 3.


In this article we’ll look into a real options trading strategy, like the strategies that we code for clients. This one however is based on a system from a trading book. As mentioned before, options trading books often contain systems that really work – which can not be said about day trading or forex trading books. The system that we’ll examine here is indeed able to produce profits. Even extreme profits, since it apparently never loses . But it is also obvious that its author has never backtested it. Continue reading “Algorithmic Options Trading 3”


Hacking a HFT system.


Compared with machine learning or signal processing algorithms of conventional trading strategies, High Frequency Trading systems can be surprisingly simple. They need not attempt to predict future prices. They know the future prices already. Or rather, they know the prices that lie in the future for other, slower market participants. Recently we got some contracts for simulating HFT systems in order to determine their potential profit and maximum latency. This article is about testing HFT systems the hacker’s way. Continue reading “Hacking a HFT system”


Algorithmic Options Trading, Part 2.


In this second part of the Algorithmic Options trading series we’ll look more closely into option returns. Especially into combining different option types for getting user-tailored profit and risk curves. Option traders know combinations with funny names like “Iron Condor” or “Butterfly”, but you’re not limited to them. With some tricks you can create artificial financial instruments of any desired property – for instance “Binary Options” with more than 100% payout factor. Continue reading “Algorithmic Options Trading, Part 2”


Bye Yahoo, and thanks for all the fish.


Just a quick post in the light of a very recent event. Users of financial functions of R, MatLab, Python, or Zorro got a bad surprise in the last days. Scripts and programs based on historical price data suddenly didn’t work anymore. And our favorite free historical price data provider, Yahoo, now responds on any access to their API in this way:


Algorithmic Options Trading, Part 1.


Despite the many interesting features of options, private traders rarely take advantage of them (of course I’m talking here of serious options, not binary options). Maybe options are unpopular due to their reputation of being complex . Or due to their lack of support by most trading software tools. Or due to the price tags of the few tools that support them and of the historical data that you need for algorithmic trading. Whatever – we recently did several programming contracts for options trading systems, and I was surprised that even simple systems seemed to produce relatively consistent profit . Especially selling options appears more lucrative than trading ‘conventional’ instruments. This article is the first one of a mini-series about earning money with algorithmic options trading. Continue reading “Algorithmic Options Trading, Part 1”


Better Strategies 5: A Short-Term Machine Learning System.


It’s time for the 5th and final part of the Build Better Strategies series. In part 3 we’ve discussed the development process of a model-based system, and consequently we’ll conclude the series with developing a data-mining system. The principles of data mining and machine learning have been the topic of part 4. For our short-term trading example we’ll use a deep learning algorithm , a stacked autoencoder, but it will work in the same way with many other machine learning algorithms. With today’s software tools, only about 20 lines of code are needed for a machine learning strategy. I’ll try to explain all steps in detail. Continue reading “Better Strategies 5: A Short-Term Machine Learning System”


Get Rich Slowly.


Most trading systems are of the get-rich-quick type. They exploit temporary market inefficiencies and aim for annual returns in the 100% area. They require regular supervision and adaption to market conditions, and still have a limited lifetime. Their expiration is often accompanied by large losses. But what if you’ve nevertheless collected some handsome gains, and now want to park them in a more safe haven? Put the money under the pillow? Take it into the bank? Give it to a hedge funds? Obviously, all that goes against an algo trader’s honor code. Here’s an alternative. Continue reading “Get Rich Slowly”


Binary Options: Scam or Opportunity?


We’re recently getting more and more contracts for coding binary option strategies. Which gives us a slightly bad conscience , since those options are widely understood as a scheme to separate naive traders from their money. And their brokers make indeed no good impression at first look. Some are regulated in Cyprus under a fake address, others are not regulated at all. They spread fabricated stories about huge profits with robots or EAs. They are said to manipulate their price curves for preventing you from winning. And if you still do, some refuse to pay out , and eventually disappear without a trace (but with your money). That’s the stories you hear about binary options brokers. Are binary options nothing but scam? Or do they offer a hidden opportunity that even their brokers are often not aware of? Continue reading “Binary Options: Scam or Opportunity?”


Build Better Strategies! Part 4: Machine Learning.


Deep Blue was the first computer that won a chess world championship. That was 1996, and it took 20 years until another program, AlphaGo , could defeat the best human Go player. Deep Blue was a model based system with hardwired chess rules. AlphaGo is a data-mining system, a deep neural network trained with thousands of Go games. Not improved hardware, but a breakthrough in software was essential for the step from beating top Chess players to beating top Go players.


In this 4th part of the mini-series we’ll look into the data mining approach for developing trading strategies. This method does not care about market mechanisms. It just scans price curves or other data sources for predictive patterns. Machine learning or “Artificial Intelligence” is not always involved in data-mining strategies. In fact the most popular – and surprisingly profitable – data mining method works without any fancy neural networks or support vector machines. Continue reading “Build Better Strategies! Part 4: Machine Learning”


Build Better Strategies! Part 3: The Development Process.


This is the third part of the Build Better Strategies series. In the previous part we’ve discussed the 10 most-exploited market inefficiencies and gave some examples of their trading strategies. In this part we’ll analyze the general process of developing a model-based trading system. As almost anything, you can do trading strategies in (at least) two different ways: There’s the ideal way , and there’s the real way . We begin with the ideal development process , broken down to 10 steps. Continue reading “Build Better Strategies! Part 3: The Development Process”


Dear Brokers…


Whatever software we’re using for automated trading: We all need some broker connection for the algorithm to receive price quotes and place trades. Seemingly a simple task. And almost any broker supports it through a protocol such as FIX, through an automated platform such as MT4™, or through a specific broker API. But if you think you can quickly hook up your trading software to a broker API, you’re up for a bad surprise. Dear brokers – please read this post and try to make hacker’s and coder’s lifes a little easier! Continue reading “Dear Brokers…”


Build Better Strategies! Part 2: Model-Based Systems.


Trading systems come in two flavors: model-based and data-mining . This article deals with model based strategies. Even when the basic algorithms are not complex, properly developing them has its difficulties and pitfalls (otherwise anyone would be doing it). A significant market inefficiency gives a system only a relatively small edge . Any little mistake can turn a winning strategy into a losing one. And you will not necessarily notice this in the backtest. Continue reading “Build Better Strategies! Part 2: Model-Based Systems”


Better Tests with Oversampling.


The more data you use for testing or training your strategy, the less bias will affect the test result and the more accurate will be the training. The problem: price data is always in short supply. Even shorter when you must put aside some part for out-of-sample tests. Extending the test or training period far into the past is not always a solution. The markets of the 1990s or 1980s were very different from today, so their price data can cause misleading results.


In this article I’ll describe a simple method to produce more trades for testing, training, and optimizing from the same amount of price data. The method is tested with a price action system based on data mining price patterns. Continue reading “Better Tests with Oversampling”


Build Better Strategies!


Enough blog posts, papers, and books deal with how to properly optimize and test trading systems. But there is little information about how to get to such a system in the first place. The described strategies often seem to have appeared out of thin air. Does a trading system require some sort of epiphany? Or is there a systematic approach to developing it?


This post is the first of a small series in which I’ll attempt a methodical way to build trading strategies. The first part deals with the two main methods of strategy development, with market hypotheses and with a Swiss Franc case study. Continue reading “Build Better Strategies!”


The Cold Blood Index.


You’ve developed a new trading system. All tests produced impressive results. So you started it live. And are down by $2000 after 2 months. Or you have a strategy that worked for 2 years, but revently went into a seemingly endless drawdown. Situations are all too familiar to any algo trader. E agora? Carry on in cold blood, or pull the brakes in panic?


Several reasons can cause a strategy to lose money right from the start. It can be already expired since the market inefficiency disappeared. Or the system is worthless and the test falsified by some bias that survived all reality checks. Or it’s a normal drawdown that you just have to sit out. In this article I propose an algorithm for deciding very early whether or not to abandon a system in such a situation. Continue reading “The Cold Blood Index”


I Hired a Contract Coder.


You’re a trader with serious ambitions to use algorithmic methods. You already have an idea to be converted to an algorithm. The problem: You do not know to read or write code . So you hire a contract coder. A guy who’s paid for delivering a script that you can drop in your MT4, Ninja, TradeStation, or Zorro platform. Congratulations, now you’re an algorithmic trader. Just start the script and wait for the money to roll in. – Does this really work? Answer: it depends. Continue reading “I Hired a Contract Coder”


Is “Scalping” Irrational?


Clients often ask for strategies that trade on very short time frames . Some are possibly inspired by “I just made $2000 in 5 minutes” stories on trader forums. Others have heard of High Frequency Trading : the higher the frequency, the better must be the trading! The Zorro developers had been pestered for years until they finally implemented tick histories and millisecond time frames. Totally useless features? Or has short term algo trading indeed some quantifiable advantages? An experiment for looking into that matter produced a surprising result . Continue reading “Is “Scalping” Irrational?”


Hacker’s Tools.


For performing our financial hacking experiments (and for earning the financial fruits of our labor) we need some software machinery for research, testing, training, and live trading financial algorithms. No existing software platform today is really up to all those tasks. So you have no choice but to put together your system from different software packages. Fortunately, two are normally sufficient. I’ll use Zorro and R for most articles on this blog, but will also occasionally look into other tools. Continue reading “Hacker’s Tools”


Boosting Strategies with MMI.


We will now repeat our experiment with the 900 trend trading strategies, but this time with trades filtered by the Market Meanness Index . In our first experiment we found many profitable strategies, some even with high profit factors, but none of them passed White’s Reality Check . So they all would probably fail in real trading in spite of their great results in the backtest. This time we hope that the MMI improves most systems by filtering out trades in non-trending market situations. Continue reading “Boosting Strategies with MMI”


The Market Meanness Index.


This indicator can improve – sometimes even double – the profit expectancy of trend following systems. The Market Meanness Index tells whether the market is currently moving in or out of a “trending” regime. It can this way prevent losses by false signals of trend indicators. It is a purely statistical algorithm and not based on volatility, trends, or cycles of the price curve. Continue reading “The Market Meanness Index”


Seventeen Trade Methods That I Don’t Really Understand.


When I started with technical trading, I felt like entering the medieval alchemist scene. A multitude of bizarre trade methods and hundreds of technical indicators and lucky candle patterns promised glimpses into the future, if only of financial assets. I wondered – if a single one of them would really work, why would you need all the rest? And how can you foretell tomorrow’s price by drawing circles, angles, bats or butterflies on a chart? Continue reading “Seventeen Trade Methods That I Don’t Really Understand”


White’s Reality Check.


This is the third part of the Trend Experiment article series. We now want to evaluate if the positive results from the 900 tested trend following strategies are for real, or just caused by Data Mining Bias . But what is Data Mining Bias, after all? And what is this ominous White’s Reality Check ? Continue reading “White’s Reality Check”


The Trend Experiment.


This is the second part of the trend experiment article series, involving 900 systems and 10 different “smoothing” or “low-lag” indicators for finding out if trend really exists and can be exploited by a simple algorithmic system . When you do such an experiment, you have normally some expectations about the outcome, such as: Continue reading “The Trend Experiment”


Indicadores de Tendências.


The most common trade method is dubbed ‘ going with the trend ‘. While it’s not completely clear how one can go with the trend without knowing it beforehand, most traders believe that ‘trend’ exists and can be exploited. ‘Trend’ is supposed to manifest itself in price curves as a sort of momentum or inertia that continues a price movement once it started. This inertia effect does not appear in random walk curves. Continue reading “Trend Indicators”


Money and How to Get It.


Contrary to popular belief, money is no material good. It is created out of nothing by banks lending it. Therefore, for each newly created lot of money there’s the same amount of debt . You’re destroying the money by repaying your credits. Since this requires a higher sum due to interest and compound interest, and since money is also permanently withdrawn from circulation by hoarding, the entire money supply must constantly grow. It must never shrink. If it still does, as in the 1930 economic crisis, loan defaults, bank crashes and bankruptcies are the result. The monetary system is therefore a classic Ponzi scheme . Continue reading “Money and How to Get It”

Comments

Popular posts from this blog

Sistema forex de 100 lucros

Violação forex fifo

Escola de negociação de opções