Skip to main content

Aprendizado De Máquinas Em Estratégias De Negociação De Pares


Aprendizagem de máquinas e negociação automatizada O grande curto (eu gosto) Pesquisando estratégias de negociação com backtests rentáveis ​​- UPDATE Eu tive algumas conversas muito interessantes desde que eu ofereci o meu quadro de negociação intradía não público em troca de informações sobre estratégias lucrativas, e é por isso que eu Quer prolongar indefinidamente essa chamada inicialmente limitada no tempo. Note que não estou procurando ideias de estratégia. Eu tenho muitos desses eu mesmo. O desafio não consiste em chegar a uma idéia, mas em escolher o caminho certo e testá-lo até o final, quando você sabe que funciona ou não. O fator crítico aqui é o tempo. Então, o que eu essencialmente negocio é o tempo que investei no desenvolvimento de uma estrutura de negociação intradiária sólida e sólida contra o tempo que você investiu no desenvolvimento de uma estratégia de negociação rentável. Pode ser uma estratégia de estoque, ETF, futuro ou opção. Todas as discussões e informações trocadas serão mantidas confidenciais. Eu, claro, estou aberto para discutir apenas idéias, mas não espere que eu as teste para você e não me quebre se as implemento sem pedir sua aprovação. Convocação de propostas Procura de estratégias de negociação com backtests rentáveis ​​Até 15 de junho. Estou aceitando propostas de estratégias de negociação promissoras sobre ações, moedas e índices de estoque de commodities. A estratégia deve ser rentável em backtesting e tem uma proporção de sharpe anualizada de pelo menos 1,0. Em 1. de julho, as duas estratégias mais promissoras serão selecionadas e seus autores podem escolher uma das seguintes opções: 1) Obtenha uma cópia completa e gratuita do quadro de negociação aprimorado e não-público baseado em R que desenvolvi e usei Desde 2012 e que os autores podem usar para negociar suas estratégias com Interactive Brokers. (A versão pública simplificada pode ser baixada aqui) 2) Entre em um acordo de cooperação no qual eu comprometo-se a implementar sua estratégia em R e trocar papel por um período máximo de três meses. Todos os negócios individuais serão compartilhados com os autores quando ocorram. Além disso, o código R que é específico da estratégia (e não o código da estrutura comercial) será entregue aos autores da estratégia. O que enviar: uma descrição escrita da estratégia, além de uma lista de trades mais os timeseries de retorno do backtest ou código Roctavepython executável que calcula diretamente os timeseries de retorno do backtest, juntamente com o conjunto de dados completo dos preços usados ​​no backtest. Envie para o meu e-mail disponível na seção Contato Atualização do quadro de negociação intraday puro da R Finalmente achei o tempo para fazer isso. Muito atrasado. A estrutura agora é executada com as versões mais recentes (unix) do IB TWSGW (versão 9493 e superior). Isso, por si só, exigiu uma reescrita parcial de várias funções do pacote IBrokers R, excelente, mas agora desactualizado, de Jeff Ryan. Além disso, a configuração padrão para negociação EURUSD foi atualizada de modo que agora é um pedaço de bolo para executar a estratégia dummy exemplo. Basta clonar o repo git para sua máquina local. GithubcensixINTRADAY-PartAB e siga o README. Algo sobre Hardware Eu ainda sou fã de possuir meu próprio metal. Claro, fazer as coisas com imagens de máquinas configuráveis ​​na nuvem é popular, porque você não precisa passar pelo aborrecimento de gerenciar seu próprio hardware, mas não é esse aborrecimento realmente apenas um problema para grandes organizações, onde muitos milhares de usuários devem ficar felizes em Custo mínimo. Assim, a nuvem não é apenas uma solução para um problema de pessoas que têm que gerenciar a escala, mas ao mesmo tempo tentam vender - naquela solução para o joe individual lá fora, que, enfrentá-lo, realmente não precisa disso. Enfim, como eu disse, sou fã de possuir meu próprio metal. O hardware barata fora da prateleira pode obter um longo caminho se você tomar o tempo para configurá-lo corretamente. Uma área de trabalho RAM de 16-64Gb com uma ou duas GPUs fará tudo o que você precisar. Parece que as estratégias de backtesting usam muito mais recursos de computação do que a negociação real ao vivo, e é por isso que atualmente você pode configurar e executar uma estratégia intradía de qualquer laptop decente com confiança, enquanto que para o backtesting e a pesquisa, você realmente gostaria que o monstro GPU CPU RAM Acima ou um pequeno e pequeno cluster de supercomputas, como descrevi recentemente aqui. Pure R Intraday trading framwork Download completo disponível Eu fiz INTRADAY-PartA. tar. gz e INTRADAY-PartB. tgz disponíveis para download. Censixdownloads. html Encontrando relacionamentos entre ativos que podem ser usados ​​para arbitragem estatística Em vez de se concentrar em prever a direção do preço e a volatilidade dos preços com os modelos não-lineares derivados dos métodos de aprendizagem automática, uma alternativa seria tentar descobrir relações de preços exploráveis ​​entre ativos da mesma classe E reagir (comércio) quando o erro de preços acontece, em outras palavras, fazer arbitragem estatística. Em certo sentido, isso é de alguma forma mais fácil do que tentar prever os preços, uma vez que o único que se faz é encontrar uma relação relativamente estável, linear ou não linear entre um grupo de pelo menos dois recursos e assumir que, a partir do momento de Sua detecção, essa relação continuará por algum tempo no futuro. Negociar sob este pressuposto é então muito um processo reativo que é desencadeado por movimentos de preços que divergem significativamente do relacionamento modelado. Tradicional Par O comércio e a negociação de ativos em um modelo VECM (Vector Error Correction Model) são bons exemplos para statarb usando modelos lineares. Então, por que não usar uma rede neural simples de uma camada ou mesmo um RBM para descobrir uma relação de preço não-linear entre dois ativos não cointegrados e se esse processo de descoberta for bem-sucedido, troque-o de maneira semelhante a um par clássico. As coisas se tornam ainda mais interessantes quando grupos com mais do que apenas dois ativos são considerados. Este seria então o equivalente não-linear de um VECM. Variável de Seleção de Recursos vs. Profundidade Digamos que temos um alvo de previsão de timeseries univariáveis ​​que pode ser de regressão ou classificação de tipo, e nós precisamos decidir quais recursos de entrada selecionar. Mais concretamente, temos um grande universo de timeseries que podemos usar como insumos e gostaríamos de saber quantos devemos escolher (largura) e também o tempo atrás que queremos procurar por cada um (profundidade). Há um espaço bidimensional de escolhas, delimitado pelos seguintes quatro casos extremos, sob o pressuposto de que temos um total de séries N e podemos, no máximo, olhar para trás K timesteps: (1) escolher apenas uma série e lookback Um timestep, (2) escolher apenas uma série e lookback K timesteps, (3) escolher N série e lookback um timestep, (4) escolher N series e lookback K timesteps. A escolha ótima provavelmente não será daquelas, uma vez que (1) e (2) podem não conter informações suficientes e (3), e especialmente (4) não serão viáveis ​​devido ao processamento de sinais de conexão ou ao excesso de ruído aleatório. A maneira sugerida de abordar isso é começar pequeno em (1), ver o desempenho que você obtém e, em seguida, aumentar o tamanho do espaço de entrada, tanto em profundidade quanto em profundidade, até que você tenha atingido um desempenho de previsão satisfatório ou até que você esgotou Seus recursos de computação e precisam abandonar toda a abordagem: (ou comprar uma nova (farm of) desktop (s) :) Usando Autoencoders Empilhados e Máquinas Boltzmann Restritas em R 12 de fevereiro de 2014 Autoencoderes Empilhados (SAs) e Máquinas Boltzmann Restritas ( RBMs) são modelos muito poderosos para a aprendizagem sem supervisão. Infelizmente, no momento da escrita, parece que não existem implementações R diretas disponíveis, o que é surpreendente, já que ambos os tipos de modelos existem há um tempo e R possui implementações para muitos outros tipos de modelos de aprendizagem de máquinas. Como solução alternativa, as SAs poderiam ser implementadas usando um dos vários pacotes de rede neural de R bastante rápido (nnet, AMORE) e RBMs, bem, alguém deveria escrever uma boa implementação R para eles. Mas dado que o treinamento de ambos os tipos de modelo requer muitos recursos computacionais, também queremos uma implementação que possa usar GPUs. Então, no momento, a solução mais simples que parece ter é usar o Theano. Ele pode usar GPUs e fornece implementações de autoencoders e RBMs empilhados (desativados). Além disso, o código PythonTheano para várias outras variantes de máquinas Boltzmann mais exóticas também está flutuando ao redor da rede. Podemos usar rPython para chamar essas funções Python de R, mas o desafio é o dado. Obter grandes conjuntos de dados de um lado a outro entre R e Python sem usar a serialização ascii que o rPython implementa (muito lento) precisa ser resolvido. Uma implementação pelo menos igualmente potente de autoencoders que suporta o uso de GPU está disponível através da estrutura Torch7 (demo). No entanto, as funções Torch7 são chamadas de usar lua e chamá-las de dentro de R, em vez disso, exigirá algum trabalho no nível C. Em conclusão: use Theano (Python) ou Torch7 (lua) para modelos de treinamento com suporte GPU e escreva os modelos treinados para o arquivo. Em R, importe o modelo treinado a partir do arquivo e use para predição. Atualização 25 de abril de 2014: A seguinte solução agradável Ligue para Python de R para Rcpp deve nos aproximar um pouco de usar Theano diretamente de R. What Frequencies to Trade. 13 de janeiro de 2014 Ao tentar encontrar padrões de mercado exploráveis ​​que se poderia trocar como comerciante de varejo, uma das primeiras questões é: quais frequências de negociação para olhar Mensal Semanal Diariamente ou intradía em qualquer lugar entre 5 segundos a 1 hora Com tempo limitado disponível para Realizando pesquisas em todas essas escalas de tempo, isso se torna uma questão importante a ser respondida. Eu e outros observamos que parece haver uma relação simples entre a frequência comercial e a quantidade de esforço necessária para encontrar uma estratégia lucrativa que seja puramente quantitativa e tenha um risco aceitável. Em suma: quanto menor (mais lento) a frequência em que você quer negociar, mais inteligente sua estratégia lucrativa precisa ser. Tradefreqvssmartness Como exemplo, pode-se olhar para o fim (muito) de alta freqüência do espectro, onde as estratégias de mercado baseadas em matemática realmente muito simples podem ser muito lucrativas, se você conseguir ficar perto o suficiente para o mercado. Fazendo um grande salto no domínio da frequência diária, está se tornando muito mais difícil encontrar estratégias quantitativas que são lucrativas enquanto ainda estão baseadas em matemática bastante simples. Negociar semanalmente e mensalmente, usando apenas métodos quantitativos ou indicadores técnicos apenas é uma receita muito boa para o desastre. Então, assumindo por um momento que essa relação é realmente verdadeira e considerando que podemos e queremos usar técnicas de aprendizado de máquina sofisticadas em nossas estratégias de negociação, poderíamos começar com uma janela de freqüência semanal e trabalhar em direção a freqüências mais altas. O comércio semanal não precisa ser automatizado e pode ser feito a partir de qualquer interface de corretagem baseada na web. Podemos desenvolver uma bolsa de estratégias, usando dados históricos publicamente disponíveis em combinação com nosso algoritmo de aprendizagem favorito para encontrar padrões de mercado negociáveis ​​e, em seguida, executar a estratégia manualmente. Nesta escala, todo o esforço deve ser encontrado e ajustar a estratégia quantitativa e muito pouco pensamento deve ser colocado na execução comercial. O esforço de automação comercial: 0. A inteligência da estratégia é necessária: 100 O comércio diário deve ser automatizado, a menos que você possa realmente dedicar uma parte fixa do seu dia ao monitoramento dos mercados e à execução de negócios. Integrar algoritmos de aprendizagem de máquinas com negociação diária automatizada não é uma tarefa trivial, mas pode ser feito. Esforço de automação comercial: 20, Inteligência de estratégia necessária: 80 Nos intervalos de tempo intradiários, variando de minutos e segundos a sub segundos, o esforço que você terá que assumir para automatizar seus negócios pode ficar em qualquer lugar entre 20 e 90. Felizmente, o menor A escala de tempo torna-se mais burda sua estratégia pode ser, mas é estúpido, é claro, um conceito relativo aqui. Esforço de automação comercial: 80, inteligência de estratégia necessária: 20 Que recursos usar. Hand-crafted vs. aprendido 10 de dezembro de 2013 Em um ponto no projeto de um sistema de aprendizagem (máquina) você será inevitável perguntar-se quais os recursos para alimentar seu modelo. Existem pelo menos duas opções. O primeiro é usar recursos artesanais. Esta opção normalmente lhe dará bons resultados se os recursos estiverem bem projetados (é claro que é uma tautologia, pois você só os chamará bem projetados se lhe derem bons resultados). O design de recursos criados à mão requer conhecimento especializado sobre o campo ao qual o sistema de aprendizagem será aplicado, ou seja, classificação de áudio, reconhecimento de imagem ou no nosso processo comercial. O problema aqui é que você pode não possuir nenhum desses conhecimentos especializados (ainda assim) e será muito difícil chegar ou ter muito tempo ou provavelmente ambos. Portanto, a alternativa é aprender os recursos dos dados ou, em outras palavras, usar a aprendizagem sem supervisão para obtê-los. Um requisito aqui é que você realmente precisa de muitos dados. Muito mais do que você precisaria para recursos feitos à mão, mas, novamente, ele não precisa ser rotulado. O benefício no entanto é claro. Você realmente não precisa ser um especialista no campo específico para o qual você projeta o sistema, ou seja, comércio e finanças. Então, enquanto você ainda precisa descobrir qual subconjunto dos recursos aprendidos será o melhor para seu sistema de aprendizagem, isso também é algo que você teria que fazer com os recursos feitos à mão. Minha sugestão: tente projetar alguns recursos feitos à mão por você mesmo. Se eles não realizam e você tem bons motivos para acreditar que é possível ter melhores resultados do que aqueles que você está recebendo, use métodos de aprendizagem sem supervisão para aprender recursos. Você pode até criar um sistema híbrido que use recursos projetados e aprendidos em conjunto. Por que eu uso ferramentas de código aberto para construção de aplicativos de negociação 19 de novembro de 2013 Quando comecei a procurar minha própria negociação automática, eu tinha três requisitos no conjunto de ferramentas que eu queria usar. 1) Eles devem custar o mínimo possível para começar, mesmo que isso significasse que eu tinha que fazer muita programação e personalizações eu mesmo (custaria tempo) 2) Deve haver uma comunidade de pessoas de mentalidade semelhante lá fora Usando essas mesmas ferramentas para um propósito semelhante. 3) As ferramentas devem permitir-me ir tão profundamente nas entranhas do sistema quanto necessário, mesmo que, no início, meu objetivo fosse mais descobrir o básico. Eu não queria me encontrar em uma situação em que dois anos abaixo eu precisaria mudar para um conjunto diferente de ferramentas, só porque as que eu tinha começado não me permitiram fazer o que eu queria por causa de problemas com Fontes fechadas e licenciamento restritivo. Como resultado, cheguei a escolher R como o meu idioma de escolha para o desenvolvimento de algoritmos de negociação e comecei a usar os Interactive Brokers, uma vez que eles fornecem uma API para interagir com seu sistema de corretagem. Embora existam muitas ferramentas de negociação agradáveis ​​que se conectam ao IB Trader Workstation e algumas podem ser usadas para negociação automatizada, nenhuma delas oferece o mesmo poder, flexibilidade e suporte comunitário que o projeto R tem. Além disso, a R tem realmente um incrível repositório de pacotes de aprendizado de estatística e de aprendizado gratuitos e muito adulta, algo que é essencial se você deseja criar algoritmos de negociação. Cópia de direitos autorais Censix 2013 - 2015Backtesting Uma Jornada de Reversão Média Intraday entre SPY e IWM Neste artigo, vamos considerar nossa primeira estratégia de negociação intradiária. Será usando uma idéia comercial clássica, a de pares comerciais. Nessa instância, vamos fazer uso de dois fundos negociados em bolsa (ETFs), SPY e IWM. Que são negociados na New York Stock Exchange (NYSE) e tentam representar os índices do mercado de ações dos EUA, o SampP500 e o Russell 2000., respectivamente. A estratégia cria, em geral, um spread entre o par de ETFs saudade de um e curto um montante do outro. A proporção de longo a curto pode ser definida de muitas maneiras, como a utilização de técnicas de co-criação de séries temporais. Nesse cenário, vamos calcular uma relação de cobertura entre SPY e IWM através de uma regressão linear rotativa. Isso nos permitirá criar um spread entre o SPY eo IWM, que é normalizado para um z-score. Os sinais de negociação serão gerados quando o escore z exceder certos limiares sob a crença de que a propagação reverterá para a média. O raciocínio para a estratégia é que a SPY e a IWM caracterizam aproximadamente a mesma situação, a da economia de um grupo de corporações de grandes capitais e de capitais pequenos. A premissa é que, se alguém adotar a propagação dos preços, isso deve ser reverso, já que os eventos locais (no tempo) podem afetar separadamente os índices SP500 ou Russell 2000 (como diferenças de pequena caplarge-cap, reequilíbrio Datas ou negociações de bloco), a série de preços a longo prazo dos dois provavelmente será cointegrada. A Estratégia A estratégia é realizada nas seguintes etapas: Dados - barras de 1 minuto de SPY e IWM são obtidas de abril de 2007 a fevereiro de 2014. Processamento - Os dados estão corretamente alinhados e as barras ausentes são mutuamente descartadas. Spread - A relação de cobertura entre os dois ETFs é calculada tomando uma regressão linear rotativa. Isso é definido como o coeficiente de regressão beta usando uma janela de lookback que se desloca para a frente em 1 barra e recalcula os coeficientes de regressão. Assim, a relação de cobertura betai, para bar bi é calculada entre os pontos b a b para um lookback de k bars. Z-Score - O escore padrão do spread é calculado da maneira usual. Isso significa subtrair a média (amostra) da propagação e dividir pelo desvio padrão (amostra) da propagação. O raciocínio para isso é tornar os parâmetros do limite mais simples para interpetar, uma vez que o z-score é uma quantidade adimensional. Eu deliberadamente introduzi uma polarização de lookahead nos cálculos, a fim de mostrar quão sutil pode ser. Experimente e procure por isso. Trades: sinais longos são gerados quando o escore z negativo cai abaixo de um limite pré-determinado (ou pós-otimizado), enquanto sinais curtos são o inverso disso. Os sinais de saída são gerados quando o escore z absoluto cai abaixo de um limite adicional. Para essa estratégia, eu (um pouco arbitrariamente) escolhei um limite de entrada absoluto de z2 e um limite de saída de z1. Assumindo o comportamento de reversão médio na propagação, espero que capture esse relacionamento e ofereça um desempenho positivo. Talvez a melhor maneira de entender a estratégia em profundidade é implementá-la. A seção a seguir descreve um código Python completo (arquivo único) para implementar esta estratégia de reversão média. Tenho comentado genericamente o código para ajudar a entender. Implementação do Python Como acontece com todos os tutoriais do Pythonpandas, é necessário configurar um ambiente de pesquisa Python conforme descrito neste tutorial. Uma vez configurada, a primeira tarefa é importar as bibliotecas de Python necessárias. Para este backtest, matplotlib e pandas são obrigatórios. As versões específicas da biblioteca que estou usando são as seguintes: Vamos prosseguir e importar os bibliotecários: a seguinte função createpairsdataframe importa dois arquivos CSV contendo as barras intradias de dois símbolos. No nosso caso, isso será SPY e IWM. Em seguida, ele cria um conjunto de quadros de dados separados. Que usa os índices de ambos os arquivos originais. Uma vez que os seus timestamps são susceptíveis de ser diferentes devido a negociações e erros perdidos, isso garante que teremos dados correspondentes. Este é um dos principais benefícios de usar uma biblioteca de análise de dados como pandas. O código de referência é tratado de maneira muito eficiente. O próximo passo é realizar a regressão linear de rolamento entre SPY e IWM. Nessa instância IWM é o preditor (x) e SPY é a resposta (y). Define uma janela de lookback padrão de 100 barras. Conforme discutido acima, este é um parâmetro da estratégia. Para que a estratégia seja considerada robusta, idealmente queremos ver um perfil de retorno (ou outra medida de desempenho) como uma função convexa do período de lookback. Assim, em uma fase posterior do código, realizaremos uma análise de sensibilidade ao variar o período de lookback em um intervalo. Uma vez que o coeficiente de rolamento beta é calculado no modelo de regressão linear para SPY-IWM, nós o adicionamos aos pares DataFrame e soltamos as linhas vazias. Isso constitui o primeiro conjunto de barras igual ao tamanho do lookback como medida de corte. Em seguida, criamos a propagação dos dois ETFs como uma unidade das unidades SPY e - betai da IWM. Claramente, esta não é uma situação realista, pois estamos tomando quantidades fracionadas de IWM, o que não é possível em uma implementação real. Finalmente, criamos a pontuação z da propagação, que é calculada subtraindo a média da propagação e normalizando pelo desvio padrão da propagação. Note-se que há um viés bastante parecido com a aparência aqui. Eu deliberadamente deixei isso no código, pois queria enfatizar o quão fácil é cometer um erro na pesquisa. A média eo desvio padrão são calculados para toda a série de tempo de propagação. Se isso for para refletir a verdadeira precisão histórica, essa informação não estaria disponível, pois isso implicitamente faz uso de informações futuras. Assim, devemos usar um meio de rolamento e stdev para calcular o escore z. Em createlongshortmarketsignals, os sinais de negociação são criados. Estes são calculados ao longo da propagação quando o escore z excede negativamente um escore z negativo e diminui o spread quando o escore z excede positivamente um escore z positivo. O sinal de saída é dado quando o valor absoluto do escore z é menor ou igual a outro (menor em magnitude). Para alcançar esta situação, é necessário saber, para cada barra, se a estratégia está dentro ou fora do mercado. Longmarket e shortmarket são duas variáveis ​​definidas para acompanhar as posições de mercado longas e curtas. Infelizmente, isso é muito mais simples de codificar de forma iterativa em oposição a uma abordagem vetorializada e, portanto, é lento para calcular. Apesar de barras de 1 minuto que exigem 700.000 pontos de dados por arquivo CSV, ainda é relativamente rápido para calcular na minha máquina de desktop mais antiga Para iterar sobre um pandill DataFrame (que é verdade que NÃO é uma operação comum) é necessário usar o método iterrows, que fornece Um gerador sobre o qual iterar: nesta fase, nós atualizamos pares para conter os sinais longshort reais, o que nos permite determinar se precisamos estar no mercado. Agora precisamos criar um portfólio para acompanhar o valor de mercado das posições. A primeira tarefa é criar uma coluna de posições que combine os sinais longos e curtos. Isso conterá uma lista de elementos de (1,0, -1), sendo 1 representando uma posição de mercado longo, 0 representando nenhuma posição (deve ser encerrado) e -1 representando uma posição de curto prazo. As colunas sym1 e sym2 representam os valores de mercado das posições SPY e IWM no final de cada barra. Uma vez que os valores do mercado ETF foram criados, os somamos para produzir um valor de mercado total no final de cada barra. Isso é transformado em um fluxo de retorno pelo método pctchange para esse objeto da série. As linhas de código subsequentes eliminam as entradas incorretas (elementos NaN e inf) e, finalmente, calculam a curva de capital integral. A função principal junta tudo. Os arquivos CSV intradiários estão localizados no caminho do datadir. Certifique-se de modificar o código abaixo para apontar para o seu diretório particular. Para determinar quão sensível é a estratégia para o período de lookback, é necessário calcular uma métrica de desempenho para uma variedade de lookbacks. Eu escolhi a porcentagem total final de retorno do portfólio como a medida de desempenho e a faixa de lookback em 50.200 com incrementos de 10. Você pode ver no seguinte código que as funções anteriores estão envolvidas em um loop for por esse intervalo, com outros limiares Mantido fixo. A tarefa final é usar matplotlib para criar um gráfico de linha de lookbacks versus retorno: o gráfico do período de lookback vs retorno pode agora ser visto. Observe que existe um máximo global em torno de um lookback igual a 110 barras. Se tivéssemos visto uma situação em que o lookback fosse independente dos retornos, isso teria sido motivo de preocupação: nenhum artigo de backtesting seria completo sem uma curva de equidade inclinada para cima. Assim, se você deseja traçar uma curva dos retornos cumulados versus tempo, você pode usar O seguinte código. Ele irá traçar o portfólio final gerado a partir do estudo de parâmetros de lookback. Assim, será necessário escolher o lookback dependendo do gráfico que deseja visualizar. O gráfico também traça os retornos de SPY no mesmo período para comparação de ajuda: o seguinte gráfico de curva de equivalência patrimonial é para um período de lookback de 100 dias: Observe que a redução de SPY é significante em 2009 durante o período da crise financeira. A estratégia também teve um período volátil nesta fase. Observe também que o desempenho deteriorou-se um pouco no último ano devido à natureza fortemente tendencial da SPY neste período, o que reflete o índice SampP500. Note que ainda temos que levar em consideração o viés de lookahead ao calcular o escore z do spread. Além disso, todos esses cálculos foram realizados sem custos de transação. Esta estratégia certamente funcionaria muito mal quando esses fatores forem levados em consideração. As taxas, a propagação e o deslizamento de Bidask são todos atualmente desaparecidos. Além disso, a estratégia é negociada em unidades fracionárias de ETFs, o que também é muito pouco realista. Em artigos posteriores, criaremos um backtester muito mais sofisticado baseado em eventos que levará esses fatores em consideração e nos dará uma confiança significativamente maior em nossa curva de equidade e métricas de desempenho. Preparando um grande passo na aprendizagem por máquina: resultados históricos rentáveis ​​em vários pares Forex No passado, eu consegui usar o aprendizado de máquina para criar sistemas de negociação rentáveis ​​com sucesso, isso inclui minhas implementações da Rede Neural (o que gerou as estratégias Sunqu, Tapuy e Paqarin, depois construindo o AsirikuyBrain), bem como minhas tentativas de classificação linear e outras Tipos de algoritmos. No entanto, uma das coisas que todos esses desenvolvimentos têm em comum é que eles trocaram dados diários do EURUSD e não conseguiram gerar resultados decentes em outros pares e ou prazos. Isso significa que, embora eu tenha abordado este partimeframe particular com sucesso (vários desses sistemas foram negociados ao vivo com resultados rentáveis), eu ainda não tinha podido desenvolver qualquer coisa por outros instrumentos. Na publicação de hoje, eu vou falar sobre um dos meus últimos desenvolvimentos (em grande parte devido a um membro da Asirikuy que vou mencionar mais adiante), o que me permitiu obter resultados de aprendizado de máquina lucrativos em outros pares além do EURUSD. Note-se que todos os resultados dos back-testing mostrados não são compostos (para que possam ser facilmente julgados por linearidade). O fato de que as técnicas de aprendizado de máquinas parecem ser tão intensas para desenvolver no EURUSD diariamente, mas tão difícil de desenvolver em outros pares no mesmo período de tempo sempre me incomodou. Por que o diário EURUSD é tão especial, que os dados anteriores parecem predizer facilmente os resultados futuros da barra diária, enquanto que em outros pares isso simplesmente não funciona. A resposta parece ser exatamente o mesmo ponto de vista do que estou tentando prever. O Fabio 8211, membro da nossa comunidade, apontou para mim que seria interessante tentar classificar se um certo resultado comercial seria bem sucedido, ao invés de tentar classificar simplesmente se o próximo bar seria 8220bullish ou bearish8221. Prever se uma determinada entrada comercial seria bem-sucedida é uma rota interessante, porque você está tentando prever se seu comércio real dentro de alguns limites de saída alcançará um lucro ou perda, e não se a direcionalidade geral for para ou contra você. Ao implementar a idéia acima em F4, vi que nem todas as previsões de resultados comerciais eram igualmente bem-sucedidas, enquanto a previsão de grandes bordas não funcionava (por exemplo, tentar prever onde um risco 1: 2 para recompensar o comércio seria bem sucedido), prevendo menores As bordas funcionaram muito melhor. Os algoritmos diferentes também deram resultados marcadamente diferentes, enquanto que os classificadores lineares eram extremamente dependentes dos dados de alimentação (alterados significativamente entre os dois conjuntos de dados FX), o Support Vector Machines (SVM) me deu os melhores resultados globais com menor dependência alimentar e lucro melhorado características. As técnicas de agrupamento de keltner significativas também deram resultados interessantes, embora a rentabilidade tenha sido reduzida em relação ao SVM. Como em todas as minhas implementações de aprendizado de máquina, o treinamento é feito em cada nova barra diária usando as barras X passadas e, portanto, a técnica de aprendizado da máquina recorre constantemente durante todo o período de teste de back-back. 8211 8211 Curiosamente, esta técnica atinge resultados rentáveis ​​(testes de back-up de 25 anos) em todos os 4 principais mestres de Forex (mesmo configurações), com resultados particularmente bons no EURUSD e GBPUSD e resultados pior, mas ainda lucrativos, no USDCHF e no USDJPY. A capacidade de prever os resultados parece ser mais perdida no USDJPY, onde há um período significativamente longo (cerca de 10 anos), onde a estratégia não consegue atingir um nível significativo de sucesso. Gostaria também de salientar que o teste de aprendizagem de máquina atual usa apenas uma única instância de aprendizado de máquina e não tentei aumentar a lucratividade criando comissões ou outros 8220tricks8221 que possam ajudar a melhorar e suavizar os resultados ao usar técnicas de aprendizado de máquina. Neste caso, tentar diferentes previsões de alcance comercial dentro de um comitê ou até mesmo colocar SVM e técnicas Keltner significativas para trabalharem juntos podem melhorar significativamente os resultados. Para mim, o fato de que esta técnica finalmente tenha interrompido a barreira multiparino8221 tem sido bastante significativa, pois revela algo fundamental sobre o uso da aprendizagem de máquinas que, até agora, parece ter perdido. Isso também reforça o fato de que as seleções de saída são absolutamente críticas ao desenvolver estratégias de aprendizado de máquinas, pois tentarem prever as saídas erradas podem facilmente levar a técnicas não lucrativas (como aconteceu comigo ao tentar criar estratégias ML em outros símbolos). Escolhendo resultados que são significativos para negociação, mas ainda previsível dentro de uma boa precisão, leva ao desenvolvimento de estratégias de aprendizado de máquinas mais bem-sucedidas. Neste caso em particular, mudar o foco para uma previsão que teve implicações diretas na lucratividade comercial teve um bom impacto. 8211 8211 Embora os resultados até agora não sejam quantitativamente nada para 8220party cerca de 8221, o fato de que agora existe uma estrada aberta para o desenvolvimento de estratégias ML rentáveis ​​que possam funcionar em toda a linha (não apenas em um par) me dá confiança no fato de que I am walking the correct path (thanks to Fabio for his suggestions). After reaching this milestone my goal now is to polish and study this machine learning implementations to find better predictors and improve the results on non-EURUSD pairs, my end-goal would be to have a machine learning strategy that can deliver highly linear historical results (alike the AsirikuyBrain) across at least the 4 majors (hopefully even more pairs) so that I can have a source of diversification that is constantly being adapted to new market conditions. If you would like to learn more about machine learning strategies and how you too can easily build linear classifiers, random forests, keltner mean clustering, neural network and SVM strategies in F4 please consider joining Asirikuy, a website filled with educational videos, trading systems, development and a sound, honest and transparent approach towards automated trading in general. I hope you enjoyed this article. o)

Comments

Popular posts from this blog

Td Ameritrade Forex Depósito Mínimo

TD Ameritrade Thinkorswim: Tipos de Conta e Depósitos Mínimos Por Cory Mitchell 13 Os investidores e os negócios podem usar a plataforma thinkorswim usando vários tipos de contas TD Ameritrade diferentes. 13 Contas individuais e conjuntas Nenhum depósito mínimo, mas as opções comerciais requerem um saldo mínimo de 2.000.13 O depósito eletrônico mínimo é de 500.13. Pode negociar ações. fundos mútuos. Fundos negociados em bolsa (ETFs), títulos. Opções. Certificados de depósito (CD), fundos de investimento unitário (UIT) e fundos de investimento imobiliário (REITs) .13 As contas podem ser como caixa, caixa e margem, caixa e opção ou caixa, margem e opção. 13 Contas de aposentadoria ou de aposentadoria individual Não há taxas mínimas de depósito ou de manutenção.13 Todas as mesmas escolhas de investimento como contas individuais e conjuntas.13 As contas podem ser como caixa, caixa ou opção. 13 Contas de Poupança de Educação Não há depósitos mínimos, embora certos planos tenham um montante

Cartão De Crédito Hdfc Forex Plus

Existem duas maneiras de conhecer o saldo em seu cartão Forex: através da Internet Banking Phone Banking Com a ajuda da facilidade NetBanking você pode verificar o saldo no cartão ForexPlus. Você precisará usar o número do cartão como ID de usuário IPIN emitido para você como parte do kit de cartão para entrar na instalação do NetBanking. Lá você encontrará uma opção para verificar o saldo em seu cartão. Você também pode entrar em contato com os serviços PhoneBanking do banco para verificar o saldo no seu cartão ForexPlus. Os números de serviços PhoneBanking podem ser encontrados no hdfcbankpersonal. No entanto, aqui copiei os números abaixo, mas sempre sugiro visitar a página de detalhes do HDFC Forex Plus Card para os números atualizados. O HDFC Bank oferece fácil acesso aos serviços PhoneBanking através de números internacionais gratuitos em 32 países, conforme detalhado abaixo. Austrália, Bélgica, Canadá, Dinamarca, França, Reino Unido, Alemanha, Hong Kong, Países Baixos, Itália, J

Intervalo De Previsão Médio Em Movimento

Médias móveis Médias móveis Com conjuntos de dados convencionais, o valor médio é geralmente o primeiro, e uma das estatísticas de resumo mais úteis para calcular. Quando os dados estão na forma de uma série temporal, a série significa uma medida útil, mas não reflete a natureza dinâmica dos dados. Os valores médios calculados em períodos curtos, quer antes do período atual, quer centrados no período atual, são geralmente mais úteis. Uma vez que esses valores médios variam, ou se movem, à medida que o período atual se move do tempo t 2, t 3. etc., eles são conhecidos como médias móveis (Mas). Uma média móvel simples é (tipicamente) a média não ponderada de k valores anteriores. Uma média móvel ponderada exponencialmente é essencialmente a mesma que uma média móvel simples, mas com contribuições para a média ponderada pela proximidade com a hora atual. Como não há um, mas toda uma série de médias móveis para qualquer série, o conjunto de Mas pode ser plotado em gráficos, analisados ​​co