Thursday 20 July 2017

Backtesting Of Trading Strategies


O que é Backtesting. Backtesting é o processo de testar uma estratégia comercial em dados históricos relevantes para garantir a sua viabilidade antes que o comerciante arrisca qualquer capital real Um comerciante pode simular a negociação de uma estratégia durante um período adequado de tempo e analisar os resultados para os níveis Da rentabilidade e do risco. BREAKING DOWN Backtesting. If os resultados satisfazem os critérios necessários que são aceitáveis ​​para o comerciante, a estratégia pode ser implementada com algum grau de confiança que irá resultar em lucros Se os resultados são menos favoráveis, a estratégia pode Ser modificado, ajustado e otimizado para atingir os resultados desejados, ou pode ser completamente demolido. Uma quantidade significativa do volume negociado no mercado financeiro de hoje s é feito por comerciantes que usam algum tipo de automação de computador Isso é especialmente verdadeiro para estratégias de negociação com base Em análise técnica Backtesting é uma parte integrante do desenvolvimento de um sistema automatizado de negociação. Backtesting Meaningful. Quando feito corretamente, Backtesting pode ser uma ferramenta inestimável para tomar decisões sobre se a utilizar uma estratégia de negociação O período de tempo de amostragem em que um backtest é realizado em é crítico A duração do período de tempo de amostragem deve ser suficientemente longo para incluir períodos de condições de mercado variando incluindo uptrends, Tendências baixas e negociação de gama limitada Realizar um teste em apenas um tipo de condição de mercado pode produzir resultados únicos que podem não funcionar bem em outras condições de mercado, o que pode levar a conclusões falsas. O tamanho da amostra no número de negócios nos resultados do teste é Também crucial Se o número de amostras de ofícios é muito pequeno, o teste pode não ser estatisticamente significativo Uma amostra com muitas transações durante um período muito longo pode produzir resultados otimizados em que um esmagador número de tradings vencedores coalescem em torno de uma condição ou tendência de mercado específico Que é favorável para a estratégia Isso também pode causar um comerciante para tirar conclusões enganosas. Keeper Real. A backtest deve refletir reais Na medida do possível Os custos de negociação que de outra forma poderiam ser considerados negligenciáveis ​​pelos comerciantes quando analisados ​​individualmente podem ter um impacto significativo quando o custo agregado é calculado durante todo o período de backtesting Estes custos incluem comissões, spreads e derrapagens e podem determinar A diferença entre se uma estratégia de negociação é rentável ou não A maioria dos pacotes de software de backtesting incluem métodos para contabilizar esses custos. Talvez a métrica mais importante associada com backtesting é o nível da estratégia de robustez Isso é conseguido através da comparação dos resultados de um teste de volta otimizado Em um período específico de amostra, referido como in-sample com os resultados de um backtest com a mesma estratégia e configurações em um período de tempo de amostra diferente, referido como fora da amostra. Se os resultados forem igualmente rentáveis, então a estratégia pode ser Considerada válida e robusta, e está pronta para ser implementada em mercados em tempo real Se a estratégia falhar Em comparações fora da amostra, em seguida, a estratégia precisa de maior desenvolvimento, ou ele deve ser abandonado por completo. Visão geral Este site educacional gratuito destina-se a permitir que você compare técnicas de negociação técnicas populares tão cientificamente quanto possível através de backtesting Em geral, é bonito Difícil de bater consistentemente no mercado e você deve ser cético de qualquer coisa que lhe diga o contrário Este site permite que você backtest algumas técnicas técnicas comuns para ver como eles teriam realizado contra o mercado e permite que você tela para as ações que atendem aos seus critérios de negociação Estratégias Que backtest bem, é claro, não garantem sucesso indo para a frente, mas poderia ter uma maior probabilidade de desempenho bem Backtesting também permite que você veja as condições de mercado em que uma determinada estratégia irá executar bem Por exemplo, se você está confiante de que o mercado será Intervalo limitado indo para a frente, você pode descobrir quais as estratégias de melhor desempenho neste tipo de mercado Isso é feito por backt Por exemplo, faz um 10 stop-loss superar um período de 5 stop-loss 9 períodos históricos de tempo fora de um período de tempo histórico. 10 Assim, o backtesting pode fornecer insights comerciais valiosos, mesmo que ele não pode garantir o futuro. Algumas coisas interessantes que você pode descobrir A combinação de negociação ativa e comissões pode acabar com você mesmo se você tiver uma boa porcentagem de ganhar comércios Really tight trailing stops pode seriamente Prejudicar a sua rentabilidade a longo prazo e não reduzir redução tanto quanto você poderia esperar Estratégias que você pensou que seria bom que consistentemente underperform o market. Directions Single Stock Backtesting Selecione o estoque que você deseja backtest sua estratégia técnica on. Starting Capital Quantia de dinheiro que você Começar com. Solto Ponto em que você quer sair de uma posição movendo contra você Um sto regular P significa que você vai sair da sua posição se o estoque cai um percentual definido abaixo de onde você comprou Trailing stop Vamos dizer que você comprar um estoque em 10 e colocar em um stop 10 trailing Se o estoque cai 10 sem nunca ir mais alto, você Vai vender em 9 Mas se o estoque vai até 15, em seguida, para baixo 10 a 13 5, você vai vender em 13 5 e bloqueio em alguns dos ganho. Venda de alvo quando o seu estoque atinge um ganho percentual certo Pode desligar, selecionando Don t Use Target. Start Data Data final Selecione as datas históricas entre as quais você deseja testar a estratégia. Signals Sinais envolvem os cruzamentos ou relações entre o preço e indicadores técnicos Por exemplo, a cruz de ouro, comprar quando o 50 dias simples média móvel sma cruza acima O sma de 200 dias e vender quando os 50 cruzamentos de dia abaixo da cruz de morte de 200 dias Os seguintes links explicam alguns indicadores técnicos populares. Get Trades Graph Get trades irá literalmente mostrar-lhe os comércios que você teria feito se voltasse no tempo com um resumo De por Incluindo os testes estatísticos teste para ver se o retorno médio diário da estratégia é o mesmo que o retorno médio diário do SP 500 ou o mesmo que o retorno médio diário de comprar e manter durante o período de tempo Queremos saber como Confiante de que podemos ser a rejeitar que os dois retornos são os mesmos Quanto maior a confiança, mais certo você pode ser que sua estratégia é realmente melhor pior do que o SP 500 ou comprar e segurar O gráfico traça o valor da carteira ao longo do tempo com um Incluído resumo do desempenho. Direções PortTester Beta Isso é para backtesting uma estratégia que você aplicaria ao seu portfólio como estoques chegar a sua técnica comprar e vender sinais Na primeira caixa de texto, digite os tickers para a cesta de ações que você deseja backtest seu técnico Estratégia em Digite cada ticker separado por um espaço Os estoques disponíveis atualmente incluem os 30 estoques de dow, AA AXP BA BAC CAT CSCO CVX DD DIS GE HD HPQ IBM INTC JNJ JPM KFT KO MCD MMM MRK MSFT PFE PG T TRV UTX VZ WMT XOM Para incluir todos os 30 no backtest, basta digitar DJIA que é o default. Target Número de Posições Abertas Este é o número de ações que você quer ter uma posição dentro e não mais Por exemplo, vamos dizer que você deseja direcionar 2 aberto Posições Quando o backtester encontra um sinal de compra em uma das ações que você colocar no cesto, digamos GE, ele assumirá GE foi comprado Agora vai procurar mais 1 estoque para comprar quando há um sinal de compra, digamos BAC Você agora tem Uma carteira de 2 posições abertas GE e BAC e o backtester não comprará mais até que um sinal vende vender um dos estoques Uma carteira diversificada deve provavelmente ter 10 ou mais estoques, mas isso tem um monte de poder de computação para backtest Assim, um Pequena carteira como o padrão de 5 posições abertas será suficiente para obter uma sensação de desempenho de uma estratégia de nota, para os investidores com uma pequena quantidade de capital diz 10.000, é caro para o comércio de um grande número de posições com 20 comissões de ida e volta Os ETFs são uma forma barata de T diversified. Starting Capital Montante de dinheiro que você começa with. Trading Comissão Quantia que você paga TDAmeritrade, SOGO, ScottTrade, etc para negociar um stock. Position Sizing É assim que você decidir comprometer uma certa quantia de dinheiro para cada estoque em sua carteira Atualmente Apenas uma opção Equal Cash Atribuição está disponível Isso significa que se eu tenho 10.000 e eu quero entrar em 2 posições, vou colocar 5000 em cada menos comissões Em outras palavras, dinheiro disponível será igualmente dividido para novas posições até chegar ao meu número alvo n De posições abertas Outras opções para vir será igual número de ações e volatilidade baseada posição dimensionamento rules. Stoploss Ponto em que você quer sair de uma posição movendo contra você Vamos dizer que você comprar um estoque em 10 e colocar em um 10 Se o estoque cai 10 sem nunca ir mais alto, você vai vender em 9 Mas se o estoque vai até 15, em seguida, para baixo 10 a 13 5, você vai vender em 13 5 e bloquear em alguns dos ganho. Selecione o dat histórico Es entre os quais você deseja testar a estratégia O backtester vai começar na data de início em dados históricos e irá pesquisar através das ações que você selecionou até que multas um sinal de compra Se não comprar sinais são encontrados no primeiro dia, o backtester move para o No dia seguinte e procura através de todas as ações na cesta até um sinal de compra é encontrado em que o estoque é assumido para ser comprado ao preço de fechamento ajustado para divisões e dividendos Assim que um estoque é comprado, o backtester estará olhando para vender Que o estoque quando um sinal de venda vem Ele também continua a olhar para comprar ações até que o número alvo de posições abertas é atingido Ao mesmo tempo, ele vai vender todas as posições existentes se ocorrer um sinal de venda O valor da carteira é calculado todos os dias até o Date. Signals Signals envolvem os cruzamentos ou relações entre o preço e indicadores técnicos Por exemplo, a cruz de ouro, comprar quando o 50 dias simples média móvel sma cruza acima do sma 200 dias e vender quando Os cruzamentos de 50 dias abaixo da cruz de morte de 200 dias. Obtenha o gráfico de negócios Obtenha os comércios literalmente mostrar-lhe-ão os comércios que você faria se você retornasse no tempo com um sumário do desempenho incluído O gráfico traça o valor da carteira sobre o tempo com um Incluído resumo da performance. Disclaimer não endossa ou recomendar qualquer uma das estratégias ou valores mobiliários neste site O conteúdo deste site é para fins informativos e não deve ser tomada como aconselhamento de investimento não é responsável por quaisquer erros nesta Site ou ações tomadas com base no conteúdo deste site. 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 do Iniciante e Identificação da Estratégia Ambos os mais longos, os artigos mais envolvidos foram Muito popular assim que eu vou continuar nesta veia e fornecer detalhes sobre o tema de backtesting de estratégia. Algorithmic backtesting requer conhecimento de muitas áreas, incluindo psyc Hologia, matemática, estatística, desenvolvimento de software e microestrutura de troca de mercado Eu não poderia esperar para cobrir todos esses tópicos em um artigo, então eu vou dividi-los em duas ou três peças menores O que vamos discutir nesta seção vou começar por Definindo 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 do novato para Quantitative Trading Next Vou apresentar uma comparação das várias opções de software backtesting disponíveis. Vamos olhar para os detalhes das implementações de estratégia 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 Então vamos discutir os custos de transação e como corretamente modelá-los em um Backtest configuração Vamos terminar com uma discussão sobre o desempenho dos nossos backtests e, finalmente, fornecer um exemplo de uma estratégia comum quant, k Nown como um meio de reverting pairs trade. Let s começar por discutir o que backtesting é e por isso que deve realizá-lo em nosso trading. What algorítmica é Backtesting. Algorithmic trading está distante de outros tipos de classes de investimento porque podemos mais confiável fornecer expectativas Sobre o desempenho futuro do desempenho passado, como conseqüência da disponibilidade de dados abundante O processo pelo qual isso é realizado é conhecido como backtesting. In termos simples, backtesting é realizado por expor o seu algoritmo estratégia particular para um fluxo de dados financeiros históricos, que Leva a um conjunto de sinais de negociação Cada comércio que vamos significar aqui para ser um round-trip de dois sinais terá um lucro associado ou perda A acumulação desta perda de lucro ao longo da duração de sua estratégia backtest levará ao lucro total e Perda também conhecido como o PL ou PnL Que é a essência da idéia, embora, claro, o diabo está sempre nos detalhes. Quais são as principais razões para backtesting um Estratégia algorítmica. Filtração - Se você se lembra do artigo sobre Identificação de Estratégia nosso objetivo na fase de pesquisa inicial foi a criação de um pipeline de estratégia e, em seguida, filtrar qualquer estratégia que não satisfazem determinados critérios Backtesting nos fornece outro mecanismo de filtragem, como nós Pode 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 de mercado. Otimização - Embora a otimização de estratégia é cheia Com os preconceitos, backtesting nos permite aumentar o desempenho de uma estratégia, modificando a quantidade ou valores dos parâmetros associados com essa estratégia e recalcular seu desempenho. Verificação - Nossas estratégias são muitas vezes sourced externamente, através do nosso pipeline de estratégia Backtesting uma estratégia garante que Não foi implementado incorrectamente Embora raramente tenhamos acesso Para os 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 a nossa própria implementação. Backtesting fornece uma série de vantagens para negociação algorítmica No entanto, nem sempre é Em geral, à medida que a freqüê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, a uma avaliação mais complicada de uma estratégia escolhida. Problema onde o sistema de execução é a chave para o desempenho da estratégia, como com algoritmos de freqüência ultra-alta. Infelizmente, backtesting é repleta de preconceitos de todos os tipos Temos abordado algumas dessas questões em artigos anteriores, mas vamos agora discuti-los em Profundidade. Biases Afetando Backtests Estratégia. Há muitos viés que podem afetar o desempenho de uma strates backtested Tegy 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 vieses de negociação algorítmica por isso é Nosso trabalho de minimizá-los o melhor que pudermos para tomar decisões informadas sobre nossas estratégias algorítmicas. Existem quatro grandes preconceitos que eu gostaria de discutir Bias de Otimização Look-Ahead Preconceito Bias Survivorship e Tolerância Psicológica Bias. Optimization Bias. This é provavelmente o Mais insidioso de todos os viés de backtest Envolve ajustar ou introduzir parâmetros de negociação adicionais até que o desempenho da estratégia no conjunto de dados de backtest é muito atraente No entanto, uma vez viva o desempenho da estratégia pode ser marcadamente diferente Outro nome para este viés é curva de ajuste ou dados - Snooping bias. Optimization bias é difícil de eliminar como estratégias algorítmicas muitas vezes envolvem muitos parâmetros Os parâmetros nesta instância podem ser os critérios de saída de entrada, os períodos de retrocesso, os períodos de média, ou seja, o parâmetro de alisamento de média móvel ou a frequência de medição de volatilidade. O viés de optimização pode ser minimizado mantendo o número de parâmetros num mínimo e aumentando a quantidade de pontos de dados em O conjunto de treinamento De fato, é preciso também ter cuidado com o último como pontos de treinamento mais velhos podem ser sujeitos a um regime anterior, como um ambiente regulador e, portanto, pode não ser relevante para a sua estratégia atual. Um método para ajudar a mitigar este viés é a Realizar uma análise de sensibilidade Isso significa variar os parâmetros de forma incremental e traçar uma superfície de desempenho O som, raciocínio fundamental para opções de parâmetro 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 nervoso, Um parâmetro não está refletindo um fenômeno e é um artefato dos dados do teste Existe uma vasta literatura sobre multidimensão L algoritmos de otimização e é uma área altamente ativa de pesquisa eu não vou habituar a ele aqui, mas mantê-lo na parte traseira de sua mente quando você encontrar uma estratégia com um backtest fantástico. Bias. Look-Ahead Bias. Look-ahead bias é introduzido Em um sistema de backtesting quando os dados futuros são acidentalmente incluídos em um ponto na simulação em que os dados não teriam sido realmente disponíveis Se estamos executando o backtest cronologicamente e chegamos ao ponto de tempo N, então vício look-ahead ocorre se os dados são incluídos para Qualquer ponto N k, onde k 0 Look-ahead bias erros podem ser incrivelmente sutis Aqui estão três exemplos de como look-ahead viés pode ser introduzido. Technical Bugs - Arrays vetores em código muitas vezes têm iteradores ou índice variáveis ​​Incorreto offsets desses índices podem Levam a um viés prospectivo ao incorporar dados em N k para valores não nulos k. Cálculo de parâmetro - Outro exemplo comum de viés prospectivo ocorre quando se calculam parâmetros de estratégia ótimos, como com regressões lineares entre dois t Ime series Se todo o conjunto de dados, incluindo dados futuros, for 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 - Fazer uso de valores extremos em qualquer período de tempo, como incorporar os preços altos ou baixos em dados de OHLC. No entanto, uma vez que estes valores mínimos máximos só podem ser calculados no final de um período de tempo, um viés prospectivo é introduzido se esses valores São usados ​​durante o período atual É sempre necessário retardar valores altos e baixos em pelo menos um período em qualquer estratégia de negociação fazendo uso deles. Como com viés de otimização, deve-se ter muito cuidado para evitar a sua introdução É muitas vezes o principal Razão pela qual as estratégias de negociação underperform seus backtests significativamente em live trading. Survivorship Bias. Survivorship viés é um fenômeno particularmente perigoso e pode levar a significativamente inflado Desempenho para certos 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 considere somente aqueles que sobreviveram ao tempo atual. , Considerar testar uma estratégia em uma seleção aleatória de ações antes e depois do acidente de mercado de 2001 Algumas ações de tecnologia faliu, enquanto outros conseguiram permanecer à tona e até prosperou Se tivéssemos restringido esta estratégia apenas para as ações que fizeram com o 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, pois as informações futuras estão sendo incorporadas à análise do passado. Existem duas maneiras principais de mitigar a sobrevivência Bias em sua estratégia backtests. Survivorship Bias Free Datasets - No caso de dados de equidade é possível comprar conjuntos de dados que incluem deliste D entidades, embora eles não são baratos e só tendem a ser utilizados por empresas institucionais Em particular, os dados do Yahoo Finance não é livre de sobrevivência, e isso é comumente usado por muitos comerciantes de varejo um também pode negociar em classes de ativos que não são propensos Utilizar 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á menos probabilidade de que isso aconteça. Geral de estoque em períodos de tempo mais curtos Um também pode começar a construir um banco de dados pessoal sobrevivência-viés livre por coleta de dados do ponto atual em diante Depois de 3-4 anos, você terá um sólido sobrevivência-viés livre conjunto de dados de ações com a qual backtest mais Estratégias. Nós agora consideramos certos fenômenos psicológicos que podem influenciar o seu desempenho comercial. Psicológica Tolerância Bias. This fenômenos particulares não é ofte N discutido no contexto de negociação quantitativa No entanto, é discutido extensivamente no que diz respeito a métodos de negociação mais discricionária Tem vários nomes, mas eu decidi ter chamado de viés de tolerância psicológica porque capta a essência do problema Ao criar backtests durante um período De 5 anos ou mais, é fácil olhar para uma curva ascendente tendência de capitais próprios, calcular o rendimento anual composto, a taxa de Sharpe e até mesmo características de levantamento e ser satisfeito com os resultados Como um exemplo, a estratégia pode possuir uma redução relativa máxima de 25 E uma duração máxima de levantamento de 4 meses Isto não seria atípico para uma estratégia de impulso É fácil convencer-se que é fácil tolerar esses períodos de perdas, porque o quadro geral é cor de rosa No entanto, na prática, é muito mais difícil. Levantamentos históricos de 25 ou mais ocorrem nos backtests, em seguida, com toda a probabilidade, você verá períodos de retirada similar em live trading Estes períodos de empate Para baixo são psicologicamente difíceis de suportar Eu observei em primeira mão o que uma extensa retirada pode ser como, em um ambiente institucional, e não é agradável - mesmo se os backtests sugerem tais períodos irá ocorrer 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 retirada estendida e, portanto, levará a underperformance significativo em comparação com um backtest Assim, embora a estratégia é algorítmica na natureza, fatores psicológicos podem ainda ter uma forte influência sobre a rentabilidade O takeaway É garantir que, se você ver drawdowns 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. The software Paisagem para backtesting estratégia é vasta gama de soluções de software sofisticado de nível institucional totalmente integrado até 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 em relação à velocidade e confiabilidade da nossa metodologia de desenvolvimento Aqui estão As principais considerações para escolha de software. Programação Habilidade - A escolha do ambiente em uma grande parte vir para baixo a sua capacidade de software de programa que eu argumentaria que estar no controle da pilha total terá um efeito maior sobre o PL de longo prazo do que a terceirização Tanto quanto possível para o software do fornecedor Isso é devido ao risco de queda de 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 a minha própria recomendação pessoal abaixo. Exe Cution Capability Broker Interaction - Certos softwares backtesting, como Tradestation, relaciona-se 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 relação Sharpe Se você estiver amarrado em um determinado corretor E Tradestation força você a fazer isso, então você terá um tempo mais difícil a transição para um novo software ou um novo corretor se surgir a necessidade Interactive Brokers fornecer uma API que é robusto, embora com uma interface ligeiramente obtuse. Customisation - Um ambiente como MATLAB ou Python dá-lhe uma grande flexibilidade ao criar estratégias de algo como eles fornecem bibliotecas fantásticas para quase qualquer operação matemática imaginável, mas também permitir a personalização extensiva onde necessário. Complexidade de trilha - Certo software apenas não é cortado para crunching número pesado ou complexidade matemática Excel É um tal pedaço de software Embora seja bom para estratégias mais simples, não pode realmente lidar com numer Minimização - Será que um determinado pedaço 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ê don t introduzir bugs que Pode levar a biases. Speed ​​de Desenvolvimento - Um shouldn t tem que gastar meses e meses implementando um motor de backtest Prototyping só deve demorar algumas semanas Certifique-se de que o seu software não está impedindo o seu progresso em grande medida, apenas para pegar alguns extras Pontos percentuais de velocidade de execução C é o elefante na sala here. Speed ​​of Execution - Se sua estratégia é completamente dependente da execução oportuna como em HFT UHFT, em seguida, uma linguagem como C ou C será necessário No entanto, você vai vergin no Linux Otimização do kernel e uso de FPGA para esses domínios, o que está fora do escopo deste artigo. Custo - Muitos dos ambientes de software que você pode programar estratégias de negociação algorítmicas são compl Etely livre e open source De fato, muitos fundos de hedge fazer uso de software de código aberto para suas pilhas de negociação algo inteiro Além disso, Excel e MATLAB são relativamente baratos e existem ainda alternativas livres para cada. Now que temos listados os critérios com Que precisamos escolher a nossa infra-estrutura de software, eu quero correr através de alguns dos pacotes mais populares e como eles comparar. Nota Eu só vou incluir software que está disponível para a maioria dos profissionais de varejo e desenvolvedores de software, como este é o público leitor de O site Enquanto outro software está disponível, como as ferramentas de grau mais institucional, eu sinto que estes são muito caros para ser efetivamente usado em uma configuração de varejo e eu, pessoalmente, não tenho experiência com them. Backtesting Software Comparison. Description linguagem de alto nível projetado para a velocidade De desenvolvimento Ampla gama de bibliotecas para praticamente qualquer tarefa programática imaginável Ganhando maior aceitação em fundos de hedge e comunidade de bancos de investimento Não tão rápido quanto CC para execução speed. Execution Python plugins existem para corretores maiores, como Interactive Brokers Portanto, backtest e sistema de execução pode ser parte da mesma stack. Customization tecnologia Python tem uma comunidade de desenvolvimento muito saudável e é um idioma maduro NumPy SciPy fornecer rápido científico Computação e ferramentas de análise estatística relevantes para o comércio quant. Complexidade de estratégia Muitos plugins existem para os algoritmos principais, mas não tão grande como uma comunidade quant para MATLAB. Bias Minimização Mesmo problemas de minimização bias existem como para qualquer linguagem de alto nível Precisa ser extremamente Cuidado com a velocidade de testing. Development Speed ​​Pythons principal é a velocidade de desenvolvimento, com robusto construído em capacidades de teste. Velocidade de Execução Não é tão rápido como C, mas componentes de computação científica são otimizados e Python pode falar com código C nativo com certos plugins. Cost Free Open Source. Description Linguagem madura, de alto nível projetada para velocidade de execução Ampla gama de dados quantitativos E finanças 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 ambas as comprar e vender side. Execution A maioria das APIs de corretagem são escritas em C e Java Assim, muitos plugins existem. Customization CC permite acesso direto Para a memória subjacente, portanto, as estratégias de ultra-alta freqüência podem ser implementadas. Strategy Complexidade C STL fornece ampla gama de algoritmos otimizados Quase todos os algoritmos matemáticos especializados possui uma livre, open-source implementação CC na web. Bias Minimização Look-ahead viés pode ser Difícil de eliminar, mas não mais difícil do que outras linguagens de alto nível Boas ferramentas de depuração, mas deve-se ter cuidado ao lidar com a memória subjacente. Development Velocidade 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 bugs. Execution Speed ​​CC tem velocidade de execução extremamente rápida e pode ser bem otimizado para arquiteturas computacionais específicas T O seu é 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á diferentes pacotes de software HFT e UHFT estratégias serão escritas em CC estes dias eles 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 no TradeStation, devido à natureza em um todo da corretora 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 as minhas necessidades e estratégias Se eu precisar de algo mais rápido, posso cair em C diretamente de meus programas Python Um método favorecido por muitos comerciantes quant é protestar suas estratégias em Python e, em seguida, converter as seções de execução mais lento para C em uma iterativa Eventualmente, todo o algo é escrito em C e pode ser deixado sozinho para trade. In os próximos artigos sobre backtesting vamos dar uma olhada em alguns particular Questões que envolvem a implementação de um algoritmo trading backtesting sistema, bem como a forma de incorporar os efeitos das trocas comerciais Vamos discutir a estratégia de medição de desempenho e, finalmente, concluir com um exemplo strategy. Just Começando com Quantitative Trading.

No comments:

Post a Comment