Monday 31 July 2017

Algorithmic trading strategies example


Noções básicas de negociação algorítmica: conceitos e exemplos Carregando o jogador. Um algoritmo é um conjunto específico de instruções claramente definidas destinadas a realizar uma tarefa ou processo. A negociação algorítmica (negociação automatizada, negociação em caixa-preta ou simplesmente negociação de algo) é o processo de utilização de computadores programados para seguir um conjunto definido de instruções para colocar um negócio a fim de gerar lucros a uma velocidade e frequência que é impossível para um Comerciante humano. Os conjuntos definidos de regras baseiam-se no tempo, preço, quantidade ou qualquer modelo matemático. Além de oportunidades de lucro para o comerciante, algo-trading torna os mercados mais líquidos e torna a negociação mais sistemática, excluindo impactos humanos emocionais sobre as atividades de negociação. Suponha que um comerciante segue estes critérios simples do comércio: Compre 50 partes de uma ação quando sua média movente de 50 dias for acima da média movente de 200 dias Vender partes da ação quando sua média movente de 50 dias vai abaixo da média movente de 200 dias Usando este conjunto de duas instruções simples, é fácil escrever um programa de computador que irá monitorar automaticamente o preço das ações (e os indicadores de média móvel) e colocar as ordens de compra e venda quando as condições definidas forem atendidas. O comerciante já não precisa manter um relógio para os preços ao vivo e gráficos, ou colocar os pedidos manualmente. O sistema de negociação algorítmica automaticamente faz isso por ele, identificando corretamente a oportunidade de negociação. Algo-trading oferece os seguintes benefícios: Trades executados com os melhores preços possíveis Instant e exata colocação de ordem de comércio (assim altas chances de execução em níveis desejados) Trades (Veja o exemplo de insuficiência de implementação abaixo) Verificações automatizadas simultâneas em várias condições de mercado Redução do risco de erros manuais na colocação das operações Backtest o algoritmo, com base nos dados históricos e em tempo real disponíveis Reduzido Possibilidade de erros por parte de comerciantes humanos com base em fatores emocionais e psicológicos A maior parte do dia-a-dia é negociação de alta freqüência (HFT), que tenta capitalizar colocando um grande número de ordens em velocidades muito rápidas em vários mercados e múltiplas decisões Parâmetros, com base em instruções pré-programadas. O Algo-trading é usado em muitas formas de negociação e atividades de investimento, incluindo: Investidores de médio a longo prazo ou empresas compradoras (fundos de pensão , Fundos mútuos, companhias de seguros) que compram em ações em grandes quantidades, mas não querem influenciar os preços das ações com investimentos discretos de grande volume. Os comerciantes de curto prazo e os participantes do lado da venda (fabricantes de mercado, especuladores e arbitradores) beneficiam-se da execução de comércio automatizada além disso, algo-troca ajudas na criação de liquidez suficiente para vendedores no mercado. Tradutores sistemáticos (seguidores de tendências, comerciantes de pares, hedge funds, etc.) acham muito mais eficiente programar suas regras de negociação e deixar o programa trocar automaticamente. A negociação algorítmica proporciona uma abordagem mais sistemática ao comércio ativo do que métodos baseados em intuição ou instinto de comerciantes humanos. Algorithmic Trading Estratégias Qualquer estratégia de negociação algorítmica requer uma oportunidade identificada que é rentável em termos de ganhos melhorou redução de custos. As estratégias de negociação comuns usadas em algo-trading são as seguintes: As estratégias de negociação algorítmicas mais comuns seguem as tendências em médias móveis. Canal breakouts. Movimentos de nível de preços e indicadores técnicos relacionados. Estas são as estratégias mais fáceis e simples de implementar através de negociação algorítmica, porque essas estratégias não envolvem fazer previsões ou previsões de preços. Os negócios são iniciados com base na ocorrência de tendências desejáveis. Que são fáceis e simples de implementar através de algoritmos sem entrar na complexidade da análise preditiva. O exemplo acima mencionado de 50 e 200 dias de média móvel é uma estratégia de tendência popular seguinte. Comprar uma ação cotada dual a um preço mais baixo em um mercado e vendê-lo simultaneamente em um preço mais elevado em um outro mercado oferece o diferencial de preço como o lucro sem risco. (Para mais em estratégias negociando da tendência, veja: Estratégias simples para capitalizar em tendências. Ou arbitragem. A mesma operação pode ser replicada para ações versus instrumentos de futuros, já que existem diferenciais de preços de tempos em tempos. Implementar um algoritmo para identificar tais diferenciais de preços e colocar as ordens permite oportunidades rentáveis ​​de forma eficiente. Os fundos de índice definiram períodos de reequilíbrio para trazer as suas participações a par com os respectivos índices de referência. Isso cria oportunidades lucrativas para os comerciantes algorítmicos, que capitalizar sobre os negócios esperados que oferecem 20-80 pontos-base de lucros, dependendo do número de ações no fundo de índice, pouco antes do rebalanceamento do fundo índice. Tais negociações são iniciadas através de sistemas de negociação algorítmica para execução atempada e melhores preços. Um monte de modelos matemáticos comprovados, como a estratégia de negociação delta neutro, que permitem a negociação sobre a combinação de opções e sua segurança subjacente. Onde os negócios são colocados para compensar deltas positivos e negativos de modo que o delta da carteira seja mantido em zero. A estratégia de reversão média baseia-se na idéia de que os preços altos e baixos de um ativo são um fenômeno temporário que revertem para seu valor médio periodicamente. Identificar e definir um intervalo de preço e algoritmo de implementação com base em que permite que os comércios sejam colocados automaticamente quando o preço do ativo entrar e sair do seu intervalo definido. Volume ponderada estratégia de preço médio quebra uma grande ordem e libera dinamicamente determinados pedaços menores da ordem para o mercado usando os perfis de volume histórico específico do estoque. O objetivo é executar a ordem próxima ao Preço Médio Ponderado pelo Volume (VWAP), beneficiando assim o preço médio. A estratégia de preço médio ponderado pelo tempo rompe uma grande ordem e libera blocos menores determinados dinamicamente da ordem para o mercado usando intervalos de tempo uniformemente divididos entre uma hora de início e uma de fim. O objetivo é executar a ordem perto do preço médio entre o início eo fim, minimizando assim o impacto no mercado. Até que a ordem de negociação seja totalmente preenchida, este algoritmo continua enviando ordens parciais, de acordo com a proporção de participação definida e de acordo com o volume negociado nos mercados. A estratégia de etapas relacionadas envia ordens a uma porcentagem definida pelo usuário de volumes de mercado e aumenta ou diminui essa taxa de participação quando o preço da ação atinge níveis definidos pelo usuário. A estratégia de redução da implementação tem como objetivo minimizar o custo de execução de uma ordem, trocando o mercado em tempo real, economizando no custo da ordem e beneficiando do custo de oportunidade da execução atrasada. A estratégia irá aumentar a taxa de participação alvo quando o preço das ações se move favoravelmente e diminuí-lo quando o preço das ações se move adversamente. Existem algumas classes especiais de algoritmos que tentam identificar acontecimentos do outro lado. Esses algoritmos de sniffing, usados, por exemplo, por um fabricante de mercado de sell side têm a inteligência interna para identificar a existência de quaisquer algoritmos no lado de compra de uma grande ordem. Essa detecção por meio de algoritmos ajudará o criador de mercado a identificar grandes oportunidades de pedidos e permitir que ele se beneficie ao preencher os pedidos a um preço mais alto. Isso às vezes é identificado como front-running de alta tecnologia. Requisitos técnicos para negociação algorítmica Implementar o algoritmo usando um programa de computador é a última parte, bateu com backtesting. (Para mais sobre negociação de alta freqüência e práticas fraudulentas, consulte: Se você comprar ações on-line, você está envolvido em HFTs. O desafio é transformar a estratégia identificada em um processo informatizado integrado que tenha acesso a uma conta comercial para a colocação de encomendas. Os seguintes são necessários: Conhecimento de programação de computador para programar a estratégia de negociação requerida, programadores contratados ou software de negociação pré-fabricado Conectividade de rede e acesso a plataformas de negociação para colocar as ordens Acesso a feeds de dados de mercado que serão monitorados pelo algoritmo para oportunidades de colocar Ordens A capacidade ea infra-estrutura para backtest o sistema uma vez construído, antes de ir viver em mercados reais Dados históricos disponíveis para backtesting, dependendo da complexidade das regras implementadas no algoritmo Aqui está um exemplo abrangente: Royal Dutch Shell (RDS) está listado em Amsterdam Bolsa de Valores (AEX) e Bolsa de Valores de Londres (LSE). Permite construir um algoritmo para identificar oportunidades de arbitragem. Aqui estão algumas observações interessantes: AEX negocia em Euros, enquanto LSE negocia em libras esterlinas Devido à diferença de uma hora, AEX abre uma hora mais cedo do que LSE, seguido por ambas as trocas que negociam simultaneamente por próximas horas e então negociando somente em LSE durante A última hora à medida que a AEX fecha Podemos explorar a possibilidade de negociação de arbitragem sobre as ações da Royal Dutch Shell listadas nesses dois mercados em duas moedas diferentes Um programa de computador que pode ler os preços atuais de mercado Alimentações de preços tanto da LSE quanto da AEX A forex rate feed for Taxa de câmbio GBP-EUR Ordem de capacidade de colocação que pode encaminhar a ordem para a troca correta Capacidade de back-testing em feeds de preços históricos O programa de computador deve executar o seguinte: Leia o feed de preços de entrada de ações RDS de ambas as câmaras Usando as taxas de câmbio disponíveis . Converter o preço de uma moeda para outra Se houver uma discrepância de preço suficientemente grande (descontando os custos de corretagem) levando a uma oportunidade lucrativa, então coloque a ordem de compra em câmbio de menor preço e venda na ordem de câmbio mais alta Se as ordens forem executadas como Desejado, o lucro de arbitragem seguirá Simples e Fácil No entanto, a prática de negociação algorítmica não é tão simples de manter e executar. Lembre-se, se você pode colocar um comércio algo-gerado, assim que os outros participantes do mercado. Conseqüentemente, os preços flutuam em milisegundos e até microssegundos. No exemplo acima, o que acontece se o seu comércio comprar é executado, mas vender o comércio doesnt como os preços de venda mudar no momento em que sua ordem atinge o mercado Você vai acabar sentado com uma posição aberta. Tornando sua estratégia de arbitragem inútil. Há riscos e desafios adicionais: por exemplo, riscos de falha de sistema, erros de conectividade de rede, intervalos de tempo entre ordens comerciais e execução e, o mais importante de tudo, algoritmos imperfeitos. Quanto mais complexo for um algoritmo, o backtesting mais rigoroso é necessário antes de ser colocado em ação. A análise quantitativa de um desempenho de algoritmos desempenha um papel importante e deve ser examinada criticamente. Sua emocionante para ir para a automação auxiliado por computadores com uma noção de fazer dinheiro sem esforço. Mas um deve certificar-se que o sistema é testado completamente e os limites requeridos são ajustados. Os comerciantes analíticos devem considerar a aprendizagem de programação e sistemas de construção por conta própria, para ter certeza de implementar as estratégias certas de forma infalível. O uso cauteloso e testes completos de algo-trading pode criar oportunidades lucrativas. Backtesting sucesso de estratégias de negociação algorítmica - Parte I Este artigo continua a série sobre a negociação quantitativa, que começou com o Guia para Iniciantes e Identificação de Estratégia. Ambos estes artigos mais longos, mais envolvidos foram muito populares assim que o mal continuará nesta veia e fornecerá detalhes no tópico do backtesting da estratégia. O backtesting algorítmico requer conhecimento de muitas áreas, incluindo psicologia, matemática, estatística, desenvolvimento de software e microestrutura de mercado / troca. Eu não poderia esperar para cobrir todos esses temas em um artigo, então eu vou dividi-los em duas ou três peças menores. O que vamos discutir nesta seção mal começam por definir backtesting e, em seguida, vou descrever o básico de como ele é realizado. Então eu vou elucidar sobre os preconceitos que tocou no guia para iniciantes Quantitative Trading. Em seguida, apresentarei uma comparação das várias opções de software de backtesting disponíveis. Em artigos subseqüentes, veremos os detalhes das implementações de estratégias que são muitas vezes mal mencionadas ou ignoradas. Também vamos considerar como tornar o processo de backtesting mais realista, incluindo as idiossincrasias de uma troca comercial. Em seguida, discutiremos os custos de transação e como modelá-los corretamente em uma configuração de backtest. Vamos terminar com uma discussão sobre o desempenho de nossos backtests e, finalmente, fornecer um exemplo de uma estratégia de quant comum, conhecido como um meio-reverting pares comércio. Vamos começar por discutir o que backtesting é e por que devemos realizá-lo em nosso algoritmo de negociação. O que é o Backtesting A negociação algorítmica está distante de outros tipos de classes de investimento porque podemos fornecer expectativas mais confiáveis ​​sobre o desempenho futuro do desempenho passado, como conseqüência da abundante disponibilidade de dados. O processo pelo qual este é realizado é conhecido como backtesting. Em termos simples, o backtesting é realizado expondo seu algoritmo de estratégia particular a um fluxo de dados financeiros históricos, o que leva a um conjunto de sinais de negociação. Cada comércio (que nós significaremos aqui para ser um round-trip de dois sinais) terá um lucro associado ou perda. A acumulação deste lucro / perda ao longo da duração do seu backtest estratégia levará ao lucro total e perda (também conhecido como PL ou PnL). Essa é a essência da idéia, embora, claro, o diabo está sempre nos detalhes Quais são as principais razões para backtesting uma estratégia algorítmica Filtração - Se você se lembra do artigo sobre Identificação de Estratégia. Nosso objetivo na fase inicial de pesquisa era estabelecer um pipeline estratégico e então filtrar qualquer estratégia que não atendesse a certos critérios. Backtesting nos fornece outro mecanismo de filtragem, pois podemos eliminar estratégias que não atendam às nossas necessidades de desempenho. Modelagem - Backtesting nos permite testar (com segurança) novos modelos de certos fenômenos de mercado, como custos de transação, roteamento de pedidos, latência, liquidez ou outros problemas de microestrutura do mercado. Otimização - Embora a otimização da estratégia esteja repleta de vieses, o backtesting nos permite aumentar o desempenho de uma estratégia modificando a quantidade ou valores dos parâmetros associados a essa estratégia e recalculando seu desempenho. Verificação - Nossas estratégias são muitas vezes obtidas externamente, através da nossa estratégia pipeline. Backtesting uma estratégia garante que ele não foi incorretamente implementado. Embora raramente teremos acesso aos sinais gerados por estratégias externas, muitas vezes teremos acesso às métricas de desempenho, como as características de Sharpe Ratio e Drawdown. Assim, podemos compará-los com a nossa própria implementação. Backtesting fornece uma série de vantagens para negociação algorítmica. No entanto, nem sempre é possível retroceder diretamente uma estratégia. Em geral, à medida que a frequência da estratégia aumenta, torna-se mais difícil modelar corretamente os efeitos da microestrutura do mercado e das trocas. Isso leva a backtests menos confiáveis ​​e, portanto, uma avaliação mais complicada de uma estratégia escolhida. Este é um problema particular onde o sistema de execução é a chave para o desempenho da estratégia, como com algoritmos de freqüência ultra-alta. Infelizmente, backtesting é repleto de preconceitos de todos os tipos. Já abordamos algumas dessas questões em artigos anteriores, mas vamos agora discuti-las em profundidade. Preconceitos que afetam Backtests de estratégia Existem muitos viés que podem afetar o desempenho de uma estratégia backtestada. Infelizmente, esses preconceitos têm uma tendência para inflar o desempenho, em vez de prejudicá-lo. Assim, você deve sempre considerar um backtest para ser um limite superior idealizado sobre o desempenho real da estratégia. É quase impossível eliminar os preconceitos da negociação algorítmica, por isso é nosso trabalho minimizá-los da melhor forma possível para tomar decisões informadas sobre nossas estratégias algorítmicas. Há quatro grandes preconceitos que eu gostaria de discutir: Otimização Bias. Bia de olhar para frente. Preconceito de Sobrevida e Tolerância Psicológica. Otimização Bias Este é provavelmente o mais insidioso de todos os vieses de backtest. Trata-se de ajustar ou introduzir parâmetros comerciais adicionais até que o desempenho da estratégia no conjunto de dados do backtest é muito atraente. No entanto, uma vez viva o desempenho da estratégia pode ser marcadamente diferente. Outro nome para esse viés é o encaixe de curva ou viés de snooping de dados. O viés de otimização é difícil de eliminar, pois estratégias algorítmicas muitas vezes envolvem muitos parâmetros. Os parâmetros nesta instância podem ser os critérios de entrada / saída, os períodos de retrocesso, os períodos de média (isto é, o parâmetro de alisamento médio móvel) ou a frequência de medição da volatilidade. O viés de otimização pode ser minimizado mantendo o número de parâmetros no mínimo e aumentando a quantidade de pontos de dados no conjunto de treinamento. Na verdade, é preciso também ter cuidado com os últimos, pois os pontos de treinamento mais antigos podem estar sujeitos a um regime anterior (como um ambiente regulatório) e, portanto, podem não ser relevantes para sua estratégia atual. Um método para ajudar a mitigar esse viés é realizar uma análise de sensibilidade. Isso significa variar os parâmetros de forma incremental e traçar uma superfície de desempenho. O raciocínio sonoro e fundamental para opções de parâmetros deve, com todos os outros fatores considerados, levar a uma superfície de parâmetro mais lisa. Se você tem uma superfície de desempenho muito nervosa, muitas vezes significa que um parâmetro não está refletindo um fenômeno e é um artefato dos dados de teste. Existe uma vasta literatura sobre algoritmos de otimização multidimensionais e é uma área de pesquisa altamente ativa. Eu não vou me debruçar sobre isso aqui, mas mantê-lo na parte de trás de sua mente quando você encontrar uma estratégia com um fantástico backtest Look-Ahead Bias Look-ahead bias é introduzido em um backtesting sistema quando dados futuros acidentalmente incluídos em um ponto na Onde esses dados não estariam realmente disponíveis. Se estivermos executando o backtest cronologicamente e atingiremos o ponto de tempo N, então o viés de antecipação ocorrerá se os dados forem incluídos para qualquer ponto Nk, onde k0. Os erros de viés prospectivo podem ser incrivelmente sutis. Aqui estão três exemplos de como o viés prospectivo pode ser introduzido: Bugs técnicos - Arrays / vetores em código muitas vezes têm iteradores ou variáveis ​​de índice. Deslocamentos incorretos desses índices podem levar a um viés prospectivo ao incorporar dados em Nk para k não-zero. Cálculo de parâmetros - Outro exemplo comum de viés prospectivo ocorre quando se calculam parâmetros de estratégia ótimos, como com regressões lineares entre duas séries temporais. Se todo o conjunto de dados (incluindo dados futuros) é usado para calcular os coeficientes de regressão e, portanto, aplicada retroativamente a uma estratégia de negociação para fins de otimização, então os dados futuros estão sendo incorporados e um viés prospectivo existe. Maxima / Minima - Certas estratégias de negociação fazem uso de valores extremos em qualquer período de tempo, como incorporar os preços altos ou baixos nos dados OHLC. No entanto, uma vez que estes valores máximos / mínimos só podem ser calculados no final de um período de tempo, um viés de antecipação é introduzido se esses valores forem usados ​​durante o período atual. É sempre necessário desfasar valores altos / baixos em pelo menos um período em qualquer estratégia de negociação fazendo uso deles. Como com o viés de otimização, é preciso ter muito cuidado para evitar sua introdução. É frequentemente a razão principal porque as estratégias de troca underperform seus backtests significativamente na troca viva. Surto de sobrevivência O viés de sobrevivência é um fenômeno particularmente perigoso e pode levar a um desempenho significativamente inflacionado para certos tipos de estratégias. Ocorre quando as estratégias são testadas em conjuntos de dados que não incluem o universo completo de ativos anteriores que podem ter sido escolhidos em um determinado momento, mas considere apenas aqueles que sobreviveram até o momento atual. Como exemplo, considere testar uma estratégia em uma seleção aleatória de ações antes e depois da queda do mercado de 2001. Alguns estoques de tecnologia faliram, enquanto outros conseguiram manter-se à tona e até prosperaram. Se tivéssemos restringido essa estratégia somente às ações que passaram pelo período de levantamento do mercado, estaríamos introduzindo um viés de sobrevivência porque eles já demonstraram seu sucesso para nós. Na verdade, este é apenas um outro caso específico de viés prospectivo, como a informação futura está sendo incorporada na análise do passado. Existem duas maneiras principais de mitigar o viés de sobrevivência em seus backtests de estratégia: Survivorship Bias Free Datasets - No caso de dados de equidade é possível comprar conjuntos de dados que incluem entidades excluídas, embora eles não sejam baratos e só tendem a ser utilizados por empresas institucionais . Em particular, os dados do Yahoo Finance não são viés de sobrevivência, e isso é comumente usado por muitos comerciantes de varejo. Pode-se também negociar em classes de ativos que não são propensas a viés de sobrevivência, como certas commodities (e seus derivados futuros). Uso de dados mais recentes - No caso de ações, a utilização de um conjunto de dados mais recentes mitiga a possibilidade de que a seleção de ações escolhida seja ponderada para os sobreviventes, simplesmente porque há menor probabilidade de fechamento de ações em períodos de tempo mais curtos. Pode-se também começar a construir um banco de dados pessoal de sobrevivência-viés, coletando dados do ponto atual em diante. Após 3-4 anos, você terá um sólido sobrevivência-viés livre conjunto de dados de ações com o qual backtest estratégias adicionais. Vamos agora considerar certos fenômenos psicológicos que podem influenciar o seu desempenho comercial. Psicológica tolerância parcialidade Este fenômeno particular não é muitas vezes discutido no contexto de negociação quantitativa. No entanto, é discutido extensivamente em relação a métodos de negociação mais discricionários. Ele tem vários nomes, mas Ive decidiu chamá-lo de tolerância psicológica viés porque capta a essência do problema. Ao criar backtests ao longo de um período de 5 anos ou mais, é fácil olhar para uma tendência ascendente tendência curva, calcular o rendimento anual composto, Sharpe ratio e até mesmo características drawdown e estar satisfeito com os resultados. A título de exemplo, a estratégia pode ter uma descida relativa máxima de 25 e uma duração máxima de levantamento de 4 meses. Isso não seria atípico para uma estratégia de momentum. É fácil convencer-se de que é fácil tolerar tais períodos de perdas porque o quadro geral é cor-de-rosa. No entanto, na prática, é muito mais difícil Se levantamentos históricos de 25 ou mais ocorrem nos backtests, em seguida, com toda a probabilidade, você verá períodos de retirada semelhantes em negociação ao vivo. Estes períodos de retirada são psicologicamente difíceis de suportar. Tenho observado em primeira mão o que pode ser uma retirada prolongada, em um ambiente institucional, e não é agradável - mesmo se os backtests sugerem que tais períodos ocorrerão. A razão que eu chamou de um viés é que muitas vezes uma estratégia que de outra forma seria bem sucedida é interrompida de negociação durante os tempos de redução e, portanto, levará a um desempenho inferior significativo em comparação com um backtest. Assim, embora a estratégia seja de natureza algorítmica, os fatores psicológicos ainda podem ter uma forte influência sobre a rentabilidade. O takeaway é garantir que, se você ver abaixamentos de uma certa percentagem e duração nos backtests, então você deve esperar que eles ocorram em ambientes de negociação ao vivo, e terá de perseverar, a fim de atingir a rentabilidade mais uma vez. Pacotes de software para backtesting O cenário de software para backtesting de estratégia é vasto. As soluções vão desde software sofisticado de nível institucional totalmente integrado até linguagens de programação como C, Python e R, onde quase tudo deve ser escrito a partir do zero (ou plugins adequados obtidos). Como comerciantes quant estamos interessados ​​no equilíbrio de ser capaz de possuir nossa pilha de tecnologia de negociação versus a velocidade ea confiabilidade de nossa metodologia de desenvolvimento. Aqui estão as principais considerações para a escolha do software: Habilidade de programação - A escolha do ambiente em grande parte descerá à sua capacidade de programar software. Eu diria que estar no controle da pilha total terá um efeito maior em seu PL de longo prazo do que terceirização, tanto quanto possível para o software do fornecedor. Isto é devido ao risco de ter bugs externos ou idiossincrasias que você é incapaz de corrigir no software do fornecedor, que de outra forma seria facilmente corrigido se você tivesse mais controle sobre sua pilha de tecnologia. Você também quer um ambiente que atinge o equilíbrio certo entre produtividade, disponibilidade de biblioteca e velocidade de execução. Eu faço minha própria recomendação pessoal abaixo. Capacidade de Execução / Interação com Broker - Certos softwares de backtesting, como o Tradestation, se relacionam diretamente com uma corretora. Eu não sou um fã desta abordagem como reduzir os custos de transação são muitas vezes um grande componente de obter uma maior taxa de Sharpe. Se você estiver vinculado a um determinado corretor (e Tradestation força você a fazer isso), então você terá um tempo mais difícil transição para um novo software (ou um novo corretor), se necessário. Interactive Brokers fornecer uma API que é robusto, embora com uma interface ligeiramente obtusa. Personalização - Um ambiente como MATLAB ou Python dá-lhe uma grande flexibilidade ao criar estratégias de algo como eles fornecem fantásticas bibliotecas para quase qualquer operação matemática imaginável, mas também permitir uma personalização extensa, quando necessário. Complexidade de Estratégia - Certos softwares não são cortados para o número pesado ou a complexidade matemática. O Excel é uma dessas peças de software. Quando for boa para estratégias mais simples, não pode realmente lidar com os recursos numerosos ou os algoritmos mais complicados, na velocidade. Bias Minimização - Será que uma determinada peça de software ou dados se presta mais a vieses de negociação Você precisa ter certeza de que se você quiser criar toda a funcionalidade de si mesmo, que você não introduzir bugs que podem levar a vieses. Velocidade de Desenvolvimento - Um shouldnt tem que passar meses e meses implementando um motor de backtest. A prototipagem deve demorar apenas algumas semanas. Certifique-se de que o seu software não está impedindo o seu progresso em grande medida, apenas para pegar alguns pontos percentuais extra de velocidade de execução. C é o elefante na sala aqui. Velocidade de Execução - Se a sua estratégia é completamente dependente da oportunidade de execução (como em HFT / UHFT), então uma linguagem como C ou C será necessária. No entanto, você vai verging sobre a otimização de kernel do Linux e uso FPGA para esses domínios, que está fora do escopo deste artigo Custo - Muitos dos ambientes de software que você pode programar estratégias de negociação algorítmica com são completamente livre e de código aberto. De fato, muitos fundos de hedge fazem uso de software de código aberto para suas pilhas de negociação de algo inteiro. Além disso, Excel e MATLAB são relativamente baratos e existem até alternativas gratuitas para cada um. Agora que listámos os critérios com os quais precisamos escolher a nossa infra-estrutura de software, quero passar por alguns dos pacotes mais populares e como eles se comparam: Nota: Eu só vou incluir o software que está disponível para a maioria dos profissionais de varejo e Desenvolvedores de software, pois este é o público-alvo do site. Enquanto outros softwares estão disponíveis, como as ferramentas de grau mais institucional, eu sinto que estas são muito caras para ser efetivamente usado em uma configuração de varejo e eu pessoalmente não tenho experiência com eles. Backtesting Software Comparison Descrição: linguagem de alto nível projetado para a velocidade de desenvolvimento. Ampla gama de bibliotecas para praticamente qualquer tarefa programável imaginável. Ganhando maior aceitação em fundos de hedge e comunidade de bancos de investimento. Não é tão rápido quanto C / C para velocidade de execução. Execução: os plugins Python existem para corretores maiores, como Interactive Brokers. Assim backtest e sistema de execução podem ser parte da mesma pilha de tecnologia. Personalização: Python tem uma comunidade de desenvolvimento muito saudável e é uma linguagem madura. NumPy / SciPy fornecem rápida computação científica e ferramentas de análise estatística relevantes para o comércio de quant. Complexidade de Estratégia: Existem muitos plugins para os principais algoritmos, mas não tão grande quanto uma comunidade como existe para o MATLAB. Minimização do viés: Os mesmos problemas de minimização do viés existem como para qualquer linguagem de alto nível. Precisa ter muito cuidado com os testes. Velocidade de desenvolvimento: Pythons principal vantagem é a velocidade de desenvolvimento, com robusto construído em capacidades de teste. Velocidade de Execução: Não é tão rápido quanto C, mas componentes de computação científica são otimizados e Python pode falar com código C nativo com certos plugins. Custo: Free / Open Source Descrição: Linguagem madura e de alto nível projetada para velocidade de execução. Grande variedade de finanças quantitativas e bibliotecas numéricas. Mais difícil de depurar e muitas vezes leva mais tempo para implementar do que Python ou MATLAB. Extremamente prevalente em ambos os comprar e vender lado. Execução: A maioria das APIs de corretagem são escritas em C e Java. Assim, existem muitos plugins. Personalização: C / C permite o acesso direto à memória subjacente, portanto, as estratégias de ultra-alta freqüência podem ser implementadas. Estratégia Complexidade: C STL fornece uma ampla gama de algoritmos otimizados. Quase qualquer algoritmo matemático especializado possui uma implementação C / C livre, de código aberto na web. Bias Minimização: Prejuízo prospectivo pode ser complicado para eliminar, mas não mais difícil do que outros de alto nível linguagem. Boas ferramentas de depuração, mas é preciso ter cuidado ao lidar com a memória subjacente. Velocidade de desenvolvimento: C é bastante detalhado em comparação com Python ou MATLAB para o mesmo algoritmo. Mais linhas de código (LOC) muitas vezes leva a maior probabilidade de erros. Velocidade de Execução: C / C tem velocidade de execução extremamente rápida e pode ser bem otimizado para arquiteturas computacionais específicas. Esta é a principal razão para utilizá-lo. Custo: Vários compiladores: Linux / GCC é livre, MS Visual Studio tem diferentes licenças. Diferentes estratégias exigirão pacotes de software diferentes. As estratégias HFT e UHFT serão escritas em C / C (atualmente são realizadas em GPUs e FPGAs), enquanto que as estratégias direcionais de baixa freqüência são fáceis de implementar no TradeStation, devido à natureza integral do software / corretagem. Minha preferência pessoal é para Python, pois fornece o grau certo de personalização, velocidade de desenvolvimento, capacidade de teste e velocidade de execução para as minhas necessidades e estratégias. Se eu precisar de algo mais rápido, posso entrar em C diretamente dos meus programas Python. Um método favorecido por muitos comerciantes quant é protótipo suas estratégias em Python e, em seguida, converter as seções de execução mais lento para C de uma maneira iterativa. Eventually the entire algo is written in C and can be left alone to trade In the next few articles on backtesting we will take a look at some particular issues surrounding the implementation of an algorithmic trading backtesting system, as well as how to incorporate the effects of trading exchanges. We will discuss strategy performance measurement and finally conclude with an example strategy. Click Below To Learn More About. The information contained on this web site is the opinion of the individual authors based on their personal observation, research, and years of experience. The publisher and its authors are not registered investment advisers, attorneys, CPAs or other financial service professionals and do not render legal, tax, accounting, investment advice or other professional services. As informações oferecidas por este site são apenas educação geral. Porque cada situação factual dos indivíduos é diferente o leitor deve procurar seu próprio conselheiro pessoal. Nem o autor nem o editor assumem qualquer responsabilidade por quaisquer erros ou omissões e não têm responsabilidade nem responsabilidade perante qualquer pessoa ou entidade em relação a danos causados ​​ou alegadamente causados ​​directa ou indirectamente pelas informações contidas neste site. Use at your own risk. Additionally, this website may receive financial compensation from the companies mentioned through advertising, affiliate programs or otherwise. As tarifas e ofertas dos anunciantes mostrados neste website mudam com freqüência, às vezes sem aviso prévio. While we strive to maintain timely and accurate information, offer details may be out of date. Visitors should thus verify the terms of any such offers prior to participating in them. The author and its publisher disclaim responsibility for updating information and disclaim responsibility for third-party content, products, and services including when accessed through hyperlinks and/or advertisements on this site. It Doesnt Seem Possible. Mas é com nossas estratégias de negociação algorítmica Não parece possível. Um sistema de negociação algorítmico com tanta identificação de tendências, análise de ciclos, fluxos de volume de compra / venda, estratégias de negociação múltiplas, entrada dinâmica, preços de destino e stop e tecnologia de sinal ultra-rápido. Mas isso é. Na verdade, AlgoTrades sistema de negociação algorítmica plataforma é a única do seu tipo. Não mais procurar por estoques quentes, setores, commodities, índices ou opiniões de mercado de leitura. Algotrades faz todas as pesquisas, timing e negociação para você usando nosso sistema de negociação algorítmica. AlgoTrades estratégias comprovadas podem ser seguidas manualmente por receber e-mail e SMS texto alertas, ou pode ser 100 hands-free negociação, cabe a você Você pode ativar / desativar a negociação automatizada a qualquer momento para que você esteja sempre no controle de seu destino. Sistemas automatizados de negociação para investidores experientes Copyright 2016 - ALGOTRADES - Sistema de Trading Algorítmico Automatizado CFTC REGRA 4.41 - OS RESULTADOS HIPOTÉTICOS OU SIMULADOS DO DESEMPENHO TÊM CERTAS LIMITAÇÕES. DESCONHECIDO UM REGISTO DE DESEMPENHO REAL, OS RESULTADOS SIMULADOS NÃO REPRESENTAM A NEGOCIAÇÃO REAL. TAMBÉM, DESDE QUE OS COMÉRCIOS NÃO FORAM EXECUTADOS, OS RESULTADOS PODERÃO TER OUTROS COMPENSADOS PELO IMPACTO, SE HOUVER, DE CERTOS FATORES DE MERCADO, COMO A FALTA DE LIQUIDEZ. OS PROGRAMAS DE NEGOCIAÇÃO SIMULADOS EM GERAL SÃO TAMBÉM SUJEITOS AO FATO QUE SÃO PROJETADOS COM O BENEFÍCIO DE HINDSIGHT. NENHUMA REPRESENTAÇÃO ESTÁ SENDO SENDO QUE QUALQUER CONTA PODERÁ OU É POSSÍVEL CONSEGUIR LUCROS OU PERDAS SEMELHANTES AOS MOSTRADOS. Nenhuma representação está sendo feita nem implica que o uso do sistema de negociação algorítmica irá gerar renda ou garantir um lucro. Há um risco substancial de perda associado com futuros de negociação e troca de valores negociados em bolsa. A negociação de futuros ea negociação de valores negociados em bolsa envolvem um risco substancial de perda e não é apropriado para todos. Estes resultados são baseados em resultados de desempenho simulados ou hipotéticos que têm certas limitações inerentes. Ao contrário dos resultados mostrados em um registro de desempenho real, esses resultados não representam a negociação real. Além disso, uma vez que estas transacções não foram efectivamente executadas, estes resultados podem ter sub-ou sobre-compensado o impacto, se for o caso, de determinados factores de mercado, tais como a falta de liquidez. Programas de negociação simulados ou hipotéticos em geral também estão sujeitos ao fato de que eles são projetados com o benefício de retrospectiva. Nenhuma representação está sendo feita que qualquer conta vai ou é susceptível de alcançar lucros ou perdas semelhantes aos apresentados. As informações contidas neste website foram preparadas sem levar em conta os objetivos de investimento, a situação financeira e as necessidades dos investidores e ainda aconselha os assinantes a não agirem sobre qualquer informação sem obterem conselhos específicos de seus consultores financeiros para não confiarem nas informações do site como base primária Para suas decisões de investimento e para considerar seu próprio perfil de risco, tolerância de risco e suas próprias perdas de parada. - powered by Enfold WordPress Tema

No comments:

Post a Comment