O Slideshare usa cookies para melhorar a funcionalidade e o desempenho, e fornecer publicidade relevante. Se continuar a navegar no site, você concorda com o uso de cookies neste site. Veja o nosso Contrato de Usuário e Política de Privacidade. O Slideshare usa cookies para melhorar a funcionalidade e o desempenho, e fornecer publicidade relevante. Se continuar a navegar no site, você concorda com o uso de cookies neste site. Consulte nossa Política de Privacidade e Contrato de Usuário para obter detalhes. Explore todos os seus tópicos favoritos no aplicativo SlideShare Obtenha o aplicativo SlideShare para Salvar para Mais tarde, mesmo offline Continuar para o site do celular Fazer o upload de login Inscreva-se toque duas vezes para diminuir o zoom Como desenhar estratégias de negociação de quantias usando R Compartilhe isso SlideShare LinkedIn Corporation copy 2017Post navigation Hidden Markov Modelos de Exemplos Em R 8211 Parte 3 de 4 Esta publicação irá explorar como treinar modelos de Markov escondidos em R. Os posts anteriores desta série detalham as matemáticas que alimentam o HMM, felizmente tudo isso foi implementado para nós no pacote RHmm. HMMs podem ser usados de duas maneiras para a detecção de regime, o primeiro é usar um único HMM onde cada estado no HMM é considerado um 8220regime8221. O segundo método é ter múltiplos HMMs cada um projetado para modelar um regime individual, a tarefa é, então, escolher entre modelos observando qual é o mais provável de ter gerado os dados. Vou explorar ambos os métodos. Método One 8211 Single HMM Cada Estado é um Regime O crédito para esta seção deve ir para o fantástico blog Systematic Investor sistemáticoinvestor. wordpress20121101regime-detection. O código é bem comentado e deve ser auto-explicativo. Essencialmente, dois regimes de mercados (touro e urso) são simulados, um 2 HMM de estado é então treinado nos dados. O algoritmo de frente para trás é então usado para calcular a probabilidade de estar em um determinado estado em qualquer momento. Método Dois 8211 Múltiplos HMMs com múltiplos estados 8211 Cada HMM um regime Três regimes de mercado são simulados de touro, urso e um mercado lateral. Três diferentes modelos HMM de 2 estágios são treinados em cada regime. O Modelo 1 é o HMM para o mercado de touro, o Modelo 2 é o HMM para o mercado de urso, eo Modelo 3 é o HMM para um mercado de caminhos laterais. Uma janela de rolamento de 50 dias de dados é passada para cada HMM e um resultado de probabilidade de log produzido. Quanto maior a probabilidade de log, mais provável é que o modelo gerasse os dados observados. Como pode ser visto no gráfico acima, a probabilidade do log é bastante decente para determinar a diferença entre os mercados bull e bear. Infelizmente, o modelo de caminhos laterais parece muito provável nos casos de touro e urso, a probabilidade de logs de it8217s é bastante estável e não modifica por regime. 30 de junho de 2014 5:00 am 3 comentários Exibições: 1913 Este artigo continua a série em negociação quantitativa, Que começou com o Beginner8217s Guide and Strategy Identification. Ambos esses artigos mais longos e mais envolvidos têm sido muito populares, então continuo nesta linha e fornecemos detalhes sobre o tema da estratégia de backtesting. O backtesting algorítmico requer conhecimento de muitas áreas, incluindo psicologia, matemática, estatística, desenvolvimento de software e microestrutura de troca de mercado. Eu não poderia ter esperança de abordar todos esses tópicos em um artigo, então I8217m vai dividi-los em duas ou três peças menores. O que vamos discutir nesta seção I8217ll começa por definir backtesting e depois descreverei os conceitos básicos de como ele é realizado. Então, elucidaremos os vícios que abordamos no Beginner8217s Guide to Quantitative Trading. Em seguida, apresentarei uma comparação das várias opções de software de backtesting disponíveis. Nos artigos subseqüentes, analisaremos os detalhes das implementações da estratégia que muitas vezes são mal mencionadas ou ignoradas. Também consideraremos como tornar o processo de backtesting mais realista, incluindo as idiossincrasias de uma troca comercial. Então discutiremos custos de transação e como modelá-los corretamente em uma configuração de backtest. Terminaremos com uma discussão sobre o desempenho de nossos backtests e, finalmente, forneceremos um exemplo de uma estratégia quantitativa comum, conhecida como troca de pares de reversão média. Let8217s começam por discutir o que é backtesting e por que devemos realizá-lo em nossa negociação algorítmica. O que é o Backtesting A negociação algorítmica se distingue 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 isso é 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 comerciais. Cada comércio (o que significaremos aqui para ser um 8217round-trip8217 de dois sinais) terá um lucro ou perda associado. O acúmulo desta lucrativa durante a duração do backtest da estratégia levará ao lucro total (também conhecido como 8216PampL8217 ou 8216PnL8217). Essa é a essência da idéia, embora é claro que o 8220devil está sempre nos detalhes8221 Quais são os principais motivos para testar uma estratégia algorítmica Filtração 8211 Se você se lembra do artigo sobre Estratégia de Identificação. Nosso objetivo no estágio de pesquisa inicial era configurar um pipeline de estratégia e, em seguida, filtrar qualquer estratégia que não atendesse a determinados critérios. Backtesting nos fornece outro mecanismo de filtração, pois podemos eliminar estratégias que não atendem às nossas necessidades de desempenho. A Modelagem 8211 Backtesting nos permite testar (com segurança) novos modelos de certos fenômenos de mercado, como custos de transação, roteamento de ordens, latência, liquidez ou outros problemas de microestrutura de mercado. Otimização 8211 Embora a otimização de estratégia esteja repleta de preconceitos, o backtesting nos permite aumentar o desempenho de uma estratégia modificando a quantidade ou os valores dos parâmetros associados a essa estratégia e recalculando sua performance. Verificação 8211 Nossas estratégias geralmente são obtidas externamente, através do nosso pipeline estratégico. Backtesting uma estratégia garante que não foi implementado incorretamente. Embora raramente tenhamos acesso aos sinais gerados por estratégias externas, muitas vezes teremos acesso às métricas de desempenho, como as características Sharpe Ratio e Drawdown. Assim, podemos compará-los com nossa própria implementação. Backtesting oferece uma série de vantagens para negociação algorítmica. No entanto, nem sempre é possível fazer uma estratégia de forma direta. 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 específico em que o sistema de execução é a chave para o desempenho da estratégia, como com os algoritmos de ultra alta frequência. Infelizmente, o backtesting é repleto de preconceitos de todos os tipos. Nós abordamos algumas dessas questões em artigos anteriores, mas agora vamos discutir em profundidade. Biases que afetam a estratégia Backtests Existem muitos preconceitos que podem afetar o desempenho de uma estratégia pré-testada. Infelizmente, esses distúrbios tendem a inflar o desempenho ao invés de prejudicar. Assim, você sempre deve considerar um backtest como um limite superior idealizado sobre o desempenho real da estratégia. É quase impossível eliminar os vícios do comércio algorítmico, pelo que é nosso trabalho minimizá-los do melhor modo possível para tomar decisões informadas sobre nossas estratégias algorítmicas. Existem quatro vieses principais que eu gostaria de discutir: Bias de Otimização, Bias de Look-Ahead, Bias de Sobrevivência e Bias de Tolerância Psicológica. Bias de otimização Este é provavelmente o mais insidioso de todos os preconceitos de backtest. Isso envolve o ajuste ou a introdução de parâmetros de negociação adicionais até que o desempenho da estratégia no conjunto de dados do backtest seja muito atraente. No entanto, uma vez que o desempenho da estratégia pode ser marcadamente diferente. Outro nome para este viés é 8220curve fitting8221 ou 8220data-snooping bias8221. O viés de otimização é difícil de eliminar, pois estratégias algorítmicas geralmente envolvem muitos parâmetros. O 8220Parameters8221 nesta instância pode ser o critério do entryexit, os períodos de look-back, os períodos de média (ou seja, o parâmetro de suavização da média móvel) ou a freqüência de medição da volatilidade. O viés de otimização pode ser minimizado, mantendo o número de parâmetros ao mínimo e aumentando a quantidade de pontos de dados no conjunto de treinamento. Na verdade, é preciso também ter cuidado com este último, já que os pontos de treinamento mais antigos podem estar sujeitos a um regime prévio (como um ambiente regulatório) e, portanto, podem não ser relevantes para sua estratégia atual. Um método para ajudar a mitigar este viés é realizar uma análise de sensibilidade. Isso significa variar os parâmetros de forma incremental e traçar um 8220surface8221 de desempenho. Som, o raciocínio fundamental para opções de parâmetros deve, com todos os outros fatores considerados, levar a uma superfície de parâmetro mais suave. 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 do teste. Há uma vasta literatura sobre algoritmos de otimização multidimensional e é uma área de pesquisa altamente ativa. Eu não acredito nisso aqui, mas mantenha-o no fundo de sua mente quando você encontrar uma estratégia com um back-back fantástico Look-Ahead Bias O viés prospectivo é introduzido em um sistema de backtesting quando os dados futuros são incluídos acidentalmente em um ponto no Simulação onde esses dados não estavam realmente disponíveis. Se estamos executando o backtest cronologicamente e alcançamos o ponto de tempo N. Então, o viés em frente ocorre se os dados estiverem incluídos para qualquer ponto N k. Onde k gt 0. Os erros de polarização anteriores podem ser extremamente sutis. Aqui estão três exemplos de como o avanço da aparência pode ser introduzido: Bugs técnicos 8211 Os vetores do código geralmente possuem iteradores ou variáveis de índice. Deslocamentos incorretos desses índices podem levar a uma tendência de espera, incorporando dados em N k para não-zero k. Cálculo de parâmetro 8211 Outro exemplo comum de polarização aparente ocorre ao calcular 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, aplicado de forma retroativa a uma estratégia de negociação para fins de otimização, os dados futuros estão sendo incorporados e existe um viés prospectivo. MaximaMinima 8211 Algumas estratégias de negociação utilizam valores extremos em qualquer período de tempo, como a incorporação dos preços altos ou baixos nos dados da OHLC. No entanto, uma vez que estes valores máximos máximos só podem ser calculados no final de um período de tempo, um viés prospectivo é introduzido se esses valores forem usados - durante o período atual. É sempre necessário atrasar os valores de alta velocidade em pelo menos um período em qualquer estratégia de negociação que os use. Survivorship Bias O viés de sobrevivência é um fenômeno particularmente perigoso e pode levar a desempenho significativamente inflacionado para determinados tipos de estratégia. 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 apenas consideram aqueles que têm 8220survived8221 na hora atual. Como exemplo, considere testar uma estratégia em uma seleção aleatória de ações antes e depois do crash do mercado de 2001. Algumas ações de tecnologia falharam, enquanto outras conseguiram ficar à tona e até prosperaram. Se tivéssemos restringido esta estratégia apenas às ações que passaram pelo período de retirada do mercado, estaremos apresentando um viés de sobrevivência porque já demonstraram o sucesso deles. Na verdade, este é apenas outro caso específico de viés à frente, uma vez que as futuras informações estão sendo incorporadas na análise passada. Existem duas maneiras principais de mitigar o viés de sobrevivência em seus backtests de estratégia: Survivorship Bias Free Datasets 8211 No caso de dados de capital, é possível comprar conjuntos de dados que incluem entidades excluídas, embora não sejam baratos e apenas tendem a ser utilizados por empresas institucionais. . Em particular, os dados do Yahoo Finance não são viés de sobrevivência livre, e isso é comumente usado por muitos comerciantes de algo de varejo. Pode-se também negociar em classes de ativos que não são propensas ao viés de sobrevivência, como certas commodities (e seus futuros derivados). Use dados mais recentes 8211 No caso de ações, o uso de um conjunto de dados mais recente mitiga a possibilidade de que a seleção de estoque escolhida seja ponderada para 8220survivors8221, simplesmente porque há uma menor probabilidade de exclusão geral de estoque em períodos de tempo mais curtos. Pode-se também começar a construir um conjunto de dados pessoais sem sobrevivência, coletando dados do ponto atual. Após 3-4 anos, você terá um sólido conjunto de dados de ações de sobrevivência e tendenciosidade com o qual voltar a testar outras estratégias. Vamos agora considerar certos fenômenos psicológicos que podem influenciar o seu desempenho comercial. Vamos agora considerar certos fenômenos psicológicos que podem influenciar o seu desempenho comercial. Tolerância de tolerância psicológica Este fenômeno particular não é frequentemente discutido no contexto da negociação quantitativa. No entanto, é discutido extensivamente em relação a métodos comerciais mais discricionários. Ele tem vários nomes, mas I8217ve decidiu chamá-lo de tolerância psicológica bias8221 porque ele capta a essência do problema. Ao criar backtests ao longo de um período de 5 anos ou mais, é fácil analisar uma curva de equidade tendencialmente ascendente, calcular o retorno anual composto, o índice de Sharpe e até mesmo as características de retirada e ficar satisfeito com os resultados. Por exemplo, a estratégia pode possuir uma redução relativa máxima de 25 e uma duração máxima de retirada de 4 meses. Isso não seria atípico para uma estratégia de impulso. É direto convencer-se de que é fácil tolerar tais períodos de perdas porque a imagem geral é corajosa. No entanto, na prática, é muito mais difícil Se as retiradas históricas de 25 ou mais ocorrem nos backtests, então, com toda a probabilidade, você verá períodos de rebaixamento similar na negociação ao vivo. Esses períodos de retração são psicologicamente difíceis de suportar. Eu observei de primeira mão o que pode ser um alongamento prolongado, em um ambiente institucional, e não é agradável 8211, mesmo que os backtests sugerem que tais períodos ocorrerão. A razão pela qual eu disse que é um 8220bias8221 é que, muitas vezes, uma estratégia que, de outra forma, seria bem-sucedida é interrompida na negociação em tempos de redução prolongada e, portanto, levará a um desempenho inferior significativo em comparação com um backtest. Assim, mesmo que a estratégia seja de natureza algorítmica, fatores psicológicos ainda podem ter uma forte influência na lucratividade. O takeaway é garantir que, se você ver retrações de uma certa porcentagem e duração nos backtests, então você deve esperar que eles ocorram em ambientes de negociação ao vivo, e precisará perseverar para alcançar a rentabilidade mais uma vez. Pacotes de software para backtesting A paisagem do software para backtesting de estratégia é vasta. As soluções variam de software sofisticado de grau institucional totalmente integrado até linguagens de programação como C, Python e R, onde quase tudo deve ser escrito a partir do zero (ou 8216plugins8217 obtidos). Como comerciantes quantitativos, estamos interessados no saldo de poder usar nossa plataforma de tecnologia comercial versus a velocidade e a confiabilidade de nossa metodologia de desenvolvimento. Aqui estão as principais considerações para a escolha do software: Habilidade de programação 8211 A escolha do ambiente será em grande parte reduzida à sua capacidade de programar o software. Eu argumentaria que estar no controle da pilha total terá um maior efeito em seu PampL de longo prazo do que a terceirização, tanto quanto possível, para o software do fornecedor. Isso se deve ao risco de ter erros ou idiossincrasias externas que você não conseguiu corrigir no software do fornecedor, o que, de outra forma, seria facilmente corrigido se você tivesse mais controle sobre o seu 8220tech stack8221. Você também quer um ambiente que alcance o equilíbrio certo entre produtividade, disponibilidade da biblioteca e velocidade de execução. Faço minha própria recomendação pessoal abaixo. Capacidade de Execução Interação do Borrador 8211 Alguns softwares de backtesting, como a Tradestation, se relacionam diretamente com uma corretora. Eu não sou fã desta abordagem, pois reduzir os custos de transação são muitas vezes um grande componente de obter uma proporção Sharpe mais alta. Se você estiver empatado em um corretor particular (e Tradestation 8220forces8221 para fazer isso), então você terá um tempo mais difícil de transição para o novo software (ou um novo corretor) se for necessário. Interactive Brokers fornece uma API que é robusta, embora com uma interface ligeiramente obtusa. Personalização 8211 Um ambiente como MATLAB ou Python oferece uma grande flexibilidade ao criar estratégias de algo, pois fornecem bibliotecas fantásticas para quase todas as operações matemáticas imagináveis, mas também permitem uma extensa personalização, quando necessário. Complexidade da Estratégia 8211 Certo software apenas não é cortado para o aumento do número de bits ou a complexidade matemática. O Excel é um desses softwares. Embora seja bom para estratégias mais simples, não pode realmente lidar com inúmeros recursos ou algoritmos mais complicados, com rapidez. Minimização de polarização 8211 Uma determinada peça de software ou dados se presta mais aos viés de negociação Você precisa ter certeza de que, se você quer criar toda a funcionalidade você mesmo, que você insira erros que podem levar a distorções. Speed of Development 8211 Não é necessário passar meses e meses implementando um mecanismo de backtest. A prototipagem só deve demorar algumas semanas. Certifique-se de que o seu software não está impedindo o seu progresso em grande medida, apenas para obter alguns pontos percentuais adicionais de velocidade de execução. C é o 8220elephant na sala8221 aqui Speed of Execution 8211 Se sua estratégia é completamente dependente da pontualidade de execução (como em HFTUHFT), será necessário um idioma como C ou C. No entanto, você estará próximo da otimização do kernel do Linux e do uso de FPGA para esses domínios, que está fora do escopo deste artigo. Custo 8211 Muitos dos ambientes de software que você pode programar estratégias de negociação algorítmicas são totalmente gratuitos e de código aberto. Na verdade, muitos hedge funds utilizam software de código aberto para todas as suas plataformas de troca de algo. Além disso, o Excel e o 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 nossa infra-estrutura de software, eu quero executar alguns dos pacotes mais populares e como eles comparam: Nota: Eu só vou incluir o software disponível para a maioria dos profissionais de varejo e Desenvolvedores de software, pois este é o público do site. Enquanto outros softwares estão disponíveis, como as ferramentas de grau institucional, eu acho que estas são muito caras para ser efetivamente usadas em uma configuração de varejo e pessoalmente não tenho experiência com elas. Descrição . WYSIWYG (what-you-see-is-what-you-get) software de planilha eletrônica. Extremamente difundido no setor financeiro. Os dados e o algoritmo são bem acoplados. Execução. Sim, o Excel pode ser vinculado à maioria das corretoras. Costumização . As macros do VBA permitem funcionalidades mais avançadas à custa de esconder a implementação. Complexidade de Estratégia. Ferramentas estatísticas mais avançadas são mais difíceis de implementar, assim como estratégias com muitas centenas de recursos. Minimização de polarização. O viés prospectivo é fácil de detectar através da funcionalidade de destaque celular (supondo que não existe VBA). Velocidade de desenvolvimento. Rápido para implementar estratégias básicas. Velocidade de Execução. Velocidade de execução lenta 8211 adequada apenas para estratégias de baixa frequência. Custo. Econômico ou gratuito (dependendo da licença). Alternativas. Descrição do OpenOffice. Ambiente de programação originalmente projetado para matemática computacional, física e engenharia. Muito bem adaptado às operações vectorizadas e às que envolvem álgebra linear numérica. Fornece uma ampla gama de plugins para negociação quantitativa. Em uso generalizado em hedge funds quantitativos. Execução. Sem capacidade de execução nativa, o MATLAB requer um sistema de execução separado. Costumização . Grande variedade de plugins comunitários para quase todas as áreas de matemática computacional. Complexidade de Estratégia. Muitos métodos estatísticos avançados já estão disponíveis e bem testados. Minimização de polarização. Mais difícil de detectar o viés avançado, exige testes extensivos. Velocidade de desenvolvimento. Os scripts curtos podem criar backtests sofisticados facilmente. Velocidade de Execução. Supondo um algoritmo vetorizado paralelizado, o MATLAB é altamente otimizado. Poor para os laços iterados tradicionais. Custo. Descrição . Linguagem de alto nível projetada para velocidade de desenvolvimento. Grande variedade de bibliotecas para quase qualquer tarefa programática imaginável. Obtendo maior aceitação em fundos de hedge e comunidade de bancos de investimento. Não é tão rápido quanto CC para velocidade de execução. Execução. Os plug-ins Python existem para corretores maiores, como Brokers interativos. Portanto, o sistema de backtest e execução pode fazer parte do mesmo 8220tech stack8221. Costumização . Python tem uma comunidade de desenvolvimento muito saudável e é uma linguagem madura. NumPySciPy fornecem ferramentas científicas científicas e de análise estatística rápidas relevantes para o comércio de quant. Complexidade de Estratégia: existem muitos plugins para os algoritmos principais, mas não tão grande como uma comunidade quant para MATLAB. Minimização de polarização. Os mesmos problemas de minimização de polarização existem quanto a qualquer linguagem de alto nível. Precisa ser extremamente cuidadoso com os testes. Velocidade de desenvolvimento. A principal vantagem de Pythons é a velocidade de desenvolvimento, com recursos robustos em testes de teste. Velocidade de Execução. Não tão rápido como C, mas os componentes de computação científica são otimizados e o Python pode conversar com código C nativo com determinados plugins. Custo. FreeOpen Source Alternatives. Rubi. Erlang. Haskell Descrição. Ambiente projetado para métodos estatísticos avançados e análise de séries temporais. Ampla variedade de conjuntos de ferramentas gráficas estatísticas, econométricas e nativas específicas. Grande comunidade de desenvolvedores. Execução. R possui plugins para alguns corretores, em particular Interactive Brokers. Assim, um sistema de ponta a ponta pode ser escrito inteiramente na personalização R. R pode ser personalizado com qualquer pacote, mas seus pontos fortes estão em domínios estatísticoseconômicos. Complexidade de Estratégia. Principalmente útil se estiverem realizando estratégias econométricas, estatísticas ou de aprendizagem em máquina devido a plugins disponíveis. Minimização de polarização. Nível semelhante de possibilidade de polarização para qualquer linguagem de alto nível, como Python ou C. Assim, os testes devem ser realizados. Velocidade de desenvolvimento. R é rápido para estratégias de escrita com base em métodos estatísticos. Velocidade de Execução. R é mais lento do que C, mas permanece relativamente otimizado para operações vectorizadas (como com MATLAB). Custo. FreeOpen Source Alternatives. SPSS. Descrição de Stata. Linguagem madura e de alto nível projetada para velocidade de execução. Amplo conjunto de finanças quantitativas e bibliotecas numéricas. Mais difícil de depurar e muitas vezes leva mais tempo para implementar do que o Python ou o MATLAB. Extremamente prevalente tanto no lado da compra como da venda. Execução. A maioria das APIs de corretagem são escritas em C e Java. Assim, existem muitos plugins. Costumização . CC permite o acesso direto à memória subjacente, portanto, estratégias de ultra-alta freqüência podem ser implementadas. Complexidade de Estratégia. C STL oferece ampla gama de algoritmos otimizados. Quase qualquer algoritmo matemático especializado possui uma implementação de código aberto de código aberto na web. Minimização de polarização. O viés prospectivo pode ser complicado de eliminar, mas não é mais difícil do que outro idioma de alto nível. 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. O CC possui velocidade de execução extremamente rápida e pode ser bem otimizado para arquiteturas computacionais específicas. Este é o principal motivo para utilizá-lo. Custo. Vários compiladores: o LinuxGCC é gratuito, o MS Visual Studio possui diferentes licenças. Alternativas. C. Java. Scala Diferentes estratégias exigirão diferentes pacotes de software. As estratégias HFT e UHFT serão escritas em CC (estes dias são muitas vezes realizadas em GPUs e FPGAs), enquanto que as estratégias de equidade direcional de baixa freqüência são fáceis de implementar na TradeStation, devido ao 8220all em one8221 natureza da correção de software. 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 minhas necessidades e estratégias. Se eu precisar de algo mais rápido, posso usar o 8201 para C diretamente em meus programas Python. Um método preferido por muitos comerciantes quant é prototar suas estratégias em Python e depois converter as seções de execução mais lentas em C de maneira iterativa. Eventualmente, todo o algoritmo está escrito em C e pode ser apenas um segundo plano para trade8221. Nos próximos artigos sobre backtesting, analisaremos algumas questões específicas relacionadas à implementação de um sistema de backtesting de negociação algorítmica, bem como a incorporar os efeitos de Trocas comerciais. Vamos discutir a medida de desempenho da estratégia e finalmente concluir com uma estratégia de exemplo. 8212 Por Michael Halls-Moore da QuantStart Build Rentable Trading Systems
No comments:
Post a Comment