Sunday, 11 June 2017

Trading Estratégia Backtesting Measure


Visão geral: Este site educacional gratuito destina-se a permitir que você compare estratégias de negociação técnicas populares tão cientificamente quanto possível através de backtesting. Em geral, é muito difícil de forma consistente vencer o 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 atendam aos seus critérios de negociação. As estratégias que backtest bem, naturalmente, não garantem o sucesso para a frente mas poderiam ter uma probabilidade mais elevada de executar bem. Backtesting também permite que você veja as condições de mercado em que uma determinada estratégia irá funcionar bem. Por exemplo, se você está confiante de que o mercado será faixa limitada indo para a frente, você pode descobrir quais as estratégias que executam melhor neste tipo de mercado. Isso é feito por backtesting sobre os prazos históricos que foram limite de faixa e ver quais estratégias são melhores. Backtesting também ajuda a ver quais parâmetros de estratégia são mais robustos em diferentes períodos de tempo. Por exemplo, um 10 stop-loss superar um 5 stop-loss 9 períodos de tempo históricos de 10 Assim, backtesting pode fornecer idéias valiosas de negociação, embora 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ê tem uma boa porcentagem de ganhar comércios Really tight trailing stops pode prejudicar seriamente a sua rentabilidade a longo prazo e não reduzir drawdown tanto quanto você poderia esperar Estratégias que você pensou que seria bom que consistentemente underperform o mercado Orientações (Single Stock Backtesting): Selecione o estoque que você deseja backtest sua estratégia técnica em. Capital de Partida: Quantidade de dinheiro que você começa com Stoploss: Ponto em que você quer sair de uma posição movendo contra você. Uma parada regular significa que você vai sair de sua posição se o estoque cai um percentual definido abaixo onde você comprou. Trailing stop: Vamos dizer que você comprar um estoque em 10 e colocar em uma parada de 10 arrasto. 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. Target: Venda quando seu estoque atinja um determinado ganho percentual (Pode desativar selecionando Dont Use Target) Data de InícioEnd Data: Selecione as datas históricas entre as quais você deseja testar a estratégia. Sinais: Os sinais envolvem os cruzamentos ou relações entre o preço e os indicadores técnicos. Por exemplo, a cruz de ouro, compre quando a média móvel simples de 50 dias (sma) cruza acima dos 200 dias sma e venda quando os 50 dias cruzam abaixo dos 200 dias (cruz da morte). Os links a seguir explicam alguns indicadores técnicos populares: Get TradesGraph: Get trades literalmente mostrar-lhe os negócios que você teria feito se você voltou no tempo com um resumo do desempenho incluído. 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 SampP 500 ou o mesmo que o retorno médio diário de comprar e manter durante o período de tempo. Queremos saber quão confiantes podemos estar para rejeitar que os dois retornos são os mesmos. Quanto maior a confiança, mais certeza você pode ser de que sua estratégia é realmente melhor do que o SampP 500 ou comprar e segurar. O gráfico traça o valor da carteira ao longo do tempo com um resumo incluído do desempenho. Direções (PortTester Beta): Isso é para backtesting uma estratégia que você aplicaria ao seu portfólio como estoques atingir seus sinais de compra e venda técnica. Na primeira caixa de texto, insira os tickers para a cesta de ações que você deseja testar sua estratégia técnica. Digite cada ticker separado por um espaço. Os estoques atualmente disponíveis incluem as ações de 30 dow, AA AXP 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 padrão. 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 posições abertas. Quando o backtester encontra um sinal de compra em uma das ações que você colocou na cesta, digamos GE, ele assumirá GE foi comprado. Agora vai procurar mais 1 estoque para comprar quando há um sinal de compra, digamos BAC. Você tem agora um portfolio de 2 posições abertas (GE e BAC) eo backtester não comprará mais até que um sinal do sell venda um dos estoques. Um portfólio diversificado provavelmente deve ter 10 ou mais ações, mas isso requer muito poder de computação para backtest. Assim, um pequeno portfólio como o padrão de 5 posições abertas será suficiente para ter uma noção de desempenho de uma estratégia. De nota, para os investidores com uma pequena quantidade de capital dizer 10.000, é caro para o comércio de um grande número de posições com 20 comissões para ida e volta comércios. ETFs são uma maneira barata de se diversificar. Capital de Partida: Quantidade de dinheiro que você começa com Comissão de Negociação: Valor que você paga TDAmeritrade, SOGO, ScottTrade, etc para negociar um estoque Dimensionamento de posição: É assim que você decide comprometer uma certa quantia de dinheiro para cada ação em sua carteira. Atualmente, apenas uma opção (Equal Cash Atribution) está disponível. Isto significa que se eu tiver 10.000 e eu quero entrar em 2 posições, vou colocar 5000 em cada menos comissões. Em outras palavras, o dinheiro disponível será igualmente dividido para novas posições até chegar ao meu alvo n número de posições abertas. Outras opções para vir será o mesmo número de ações, e volatilidade baseada posição dimensionamento regras. 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 uma parada de 10 arrasto. 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. Start DateEnd Date: Selecione as datas históricas entre as quais você deseja testar a estratégia. O backtester começará na data de início em dados históricos e pesquisará pelas ações que você selecionou até que multar um sinal de compra. Se nenhum sinal de compra for encontrado no primeiro dia, o backtester move-se para o 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 fechado ajustado para divisões e Dividendos. Assim que um estoque é comprado, o backtester estará olhando para vender esse estoque quando um sinal do sell vem. Ele também continua a olhar para comprar ações até o número-alvo de posições abertas é atingido. Ao mesmo tempo, venderá quaisquer posições existentes se ocorrer um sinal de venda. O valor da carteira é calculado todos os dias até a data de término. Sinais: Os sinais envolvem os cruzamentos ou relações entre o preço e os indicadores técnicos. Por exemplo, a cruz de ouro, compre quando a média móvel simples de 50 dias (sma) cruza acima dos 200 dias sma e venda quando os 50 dias cruzam abaixo dos 200 dias (cruz da morte). Obter TradesGraph: Get trades irá literalmente mostrar-lhe os comércios que você teria feito se você voltou no tempo com um resumo do desempenho incluído. O gráfico traça o valor da carteira ao longo do tempo com um resumo incluído do desempenho. Isenção de responsabilidade: stockbacktest não endossa ou recomenda nenhuma das estratégias ou valores mobiliários neste site. O conteúdo deste site é para fins informativos e não deve ser tomado como conselho de investimento. Stockbacktest não deve ser responsabilizado por quaisquer erros neste site ou ações tomadas com base neste conteúdo sites. Backtesting: Interpretando o passado Backtesting é um componente-chave do desenvolvimento do sistema de comércio eficaz. É realizado reconstruindo, com dados históricos, os negócios que teriam ocorrido no passado usando regras definidas por uma determinada estratégia. O resultado oferece estatísticas que podem ser usadas para avaliar a eficácia da estratégia. Usando esses dados, os comerciantes podem otimizar e melhorar suas estratégias, encontrar quaisquer falhas técnicas ou teóricas, e ganhar confiança em sua estratégia antes de aplicá-lo aos mercados reais. A teoria subjacente é que qualquer estratégia que funcionou bem no passado é susceptível de funcionar bem no futuro e, inversamente, qualquer estratégia que teve um desempenho ruim no passado é susceptível de funcionar mal no futuro. Este artigo dá uma olhada no que os aplicativos são usados ​​para backtest, que tipo de dados são obtidos, e como colocá-lo para usar Os dados e as ferramentas Backtesting pode fornecer abundância de feedback estatístico valioso sobre um determinado sistema. Algumas estatísticas de backtesting universal incluem: Lucro líquido ou perda - ganho ou perda percentual líquido. Prazo - Datas passadas em que o teste ocorreu. Universo - Ações que foram incluídas no backtest. Medidas de volatilidade - Percentagem máxima de subida e descida. Médias - Percentagem de ganho médio e perda média, média de barras mantidas. Exposição - Percentual de capital investido (ou exposto ao mercado). Razões - Relação vitórias-perdas. Retorno anualizado - Retorno percentual ao longo de um ano. Retorno ajustado ao risco - Retorno percentual em função do risco. Normalmente, backtesting software terá duas telas que são importantes. A primeira permite que o profissional personalize as configurações para backtesting. Essas personalizações incluem tudo, desde o período de tempo até os custos de comissão. Aqui está um exemplo de tal tela no AmiBroker: A segunda tela é o relatório de resultados de backtesting real. Isto é onde você pode encontrar todas as estatísticas mencionadas acima. Novamente, aqui está um exemplo desta tela no AmiBroker: Em geral, a maioria dos softwares comerciais contém elementos semelhantes. Alguns programas de software high-end também incluem funcionalidades adicionais para realizar dimensionamento automático da posição, otimização e outros recursos mais avançados. Os 10 mandamentos Há muitos fatores que os comerciantes prestam atenção quando eles estão backtesting estratégias de negociação. Aqui está uma lista das 10 coisas mais importantes a lembrar enquanto backtesting: Tome em conta as tendências do mercado amplo no período em que uma determinada estratégia foi testada. Por exemplo, se uma estratégia só foi testada de 1999 a 2000, pode não estar bem em um mercado de baixa. É muitas vezes uma boa idéia para backtest durante um período de tempo longo que engloba vários tipos diferentes de condições de mercado. Leve em conta o universo no qual o backtesting ocorreu. Por exemplo, se um sistema de mercado amplo é testado com um universo consistindo de ações de tecnologia, pode deixar de fazer bem em diferentes setores. Como regra geral, se uma estratégia é direcionada para um gênero específico de estoque, limitar o universo a esse gênero, mas, em todos os outros casos, manter um grande universo para fins de teste. Medidas de volatilidade são extremamente importantes a considerar no desenvolvimento de um sistema de comércio. Isto é especialmente verdadeiro para as contas alavancadas, que são sujeitas a chamadas de margem se a sua equidade desce abaixo de um certo ponto. Os comerciantes devem procurar manter a volatilidade baixa, a fim de reduzir o risco e permitir uma transição mais fácil dentro e fora de um determinado estoque. O número médio de barras mantidas também é muito importante para assistir ao desenvolver um sistema de negociação. Embora a maioria dos backtesting software inclui custos de comissão nos cálculos finais, isso não significa que você deve ignorar esta estatística. Se possível, aumentar o número médio de barras mantidas pode reduzir os custos de comissão e melhorar seu retorno geral. A exposição é uma espada de dois gumes. Exposição aumentada pode conduzir aos lucros mais elevados ou aos perdas mais elevados, quando a exposição diminuída significa lucros mais baixos ou perdas mais baixas. No entanto, em geral, é uma boa idéia para manter a exposição abaixo de 70, a fim de reduzir o risco e permitir uma transição mais fácil dentro e fora de um determinado estoque. A estatística média de perda de ganho, combinada com a relação ganhos-perdas, pode ser útil para determinar o dimensionamento de posição ótimo e a administração de dinheiro usando técnicas como o Critério de Kelly. (Veja Money Management Usando o Critério Kelly.) Os comerciantes podem assumir posições maiores e reduzir os custos de comissão, aumentando seus ganhos médios e aumentando sua relação ganhos-para-perdas. Retorno anualizado é importante porque é usado como uma ferramenta para comparar os retornos de sistemas contra outros locais de investimento. É importante não só olhar para o retorno global anualizado, mas também para ter em conta o risco aumentado ou diminuído. Isso pode ser feito olhando para o retorno ajustado ao risco, que explica vários fatores de risco. Antes de um sistema de negociação ser adotado, ele deve superar todos os outros locais de investimento em igual ou menos risco. Backtesting personalização é extremamente importante. Muitas aplicações de backtesting têm entrada para valores de comissão, tamanhos de lote redondos (ou fracionários), tamanhos de carrapatos, requisitos de margem, taxas de juros, pressupostos de deslizamento, regras de dimensionamento de posição, regras de saída da mesma barra e configurações de parada. Para obter os resultados de backtesting mais precisos, é importante ajustar essas configurações para imitar o corretor que será usado quando o sistema for ativado. Backtesting às vezes pode levar a algo conhecido como super-otimização. Esta é uma condição onde os resultados de desempenho são ajustados tão altamente ao passado que eles não são mais precisos no futuro. Geralmente, é uma boa idéia implementar regras que se apliquem a todas as ações ou a um conjunto selecionado de ações segmentadas e não sejam otimizadas na medida em que as regras não sejam mais compreensíveis pelo criador. Backtesting nem sempre é a maneira mais precisa para avaliar a eficácia de um determinado sistema de comércio. Às vezes, as estratégias que funcionaram bem no passado não conseguem fazer bem no presente. O desempenho passado não é indicativo de resultados futuros. Certifique-se de comércio de papel de um sistema que foi testado com sucesso antes de ir ao vivo para ter certeza de que a estratégia ainda se aplica na prática. Conclusão Backtesting é um dos aspectos mais importantes do desenvolvimento de um sistema comercial. Se criado e interpretado corretamente, pode ajudar comerciantes a aperfeiçoar e melhorar suas estratégias, encontrar todas as falhas técnicas ou teóricas, assim como ganhar a confiança em sua estratégia antes de aplicá-la aos mercados reais. Recursos Tradecision (tradecision) - High-end Desenvolvimento do Sistema de Negociação AmiBroker (amibroker) - Desenvolvimento do Sistema de Negociação de Orçamento. Uma teoria econômica da despesa total na economia e seus efeitos no produto e na inflação. A economia keynesiana foi desenvolvida. A detenção de um activo numa carteira. Um investimento de carteira é feito com a expectativa de ganhar um retorno sobre ele. Este. Um índice desenvolvido por Jack Treynor que mede ganhos obtidos em excesso do que poderia ter sido obtido em um risco. A recompra de ações em circulação (recompra) por uma empresa para reduzir o número de ações no mercado. Empresas. Um reembolso de imposto é um reembolso sobre os impostos pagos a um indivíduo ou agregado familiar quando a responsabilidade fiscal real é inferior ao montante. O valor monetário de todos os produtos acabados e serviços produzidos dentro de um país fronteiras em um período de tempo específico. Backtesting sucesso das 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 da Estratégia. Ambos estes artigos mais longos, mais envolvidos foram muito populares assim que o mal continuam nesta veia e fornecem o detalhe 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 do mercado. 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 III começar 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 muitas vezes são pouco 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 nossa negociação algorítmica. O que é Backtesting A negociação algorítmica se destaca dos outros tipos de classes de investimento, porque podemos fornecer expectativas mais confiáveis ​​sobre o desempenho futuro do desempenho passado, como conseqüência da disponibilidade abundante 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 ou uma perda associada. A acumulação deste lucro durante a 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 da 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 do nosso pipeline estratégico. 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. Nós abordamos algumas dessas questões em artigos anteriores, mas vamos agora discuti-los em profundidade. Preconceitos que afetam Backtests da estratégia Há muitos preconceitos 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 viés 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 Sobrevivência 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 de 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, já que as estratégias algorítmicas muitas vezes envolvem muitos parâmetros. Os parâmetros nesta instância podem ser os critérios entryexit, os períodos de look-back, os períodos de média (isto é, o parâmetro de alisamento de média móvel) ou a frequência de medição de 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. De fato, é 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 atenuar 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 a escolha 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 viés é introduzido em um backtesting sistema quando dados futuros acidentalmente incluídos em um ponto no 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 prospectivo 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: Erros Técnicos - Vetores de Arrays no código geralmente têm iteradores ou variáveis ​​de índice. Deslocamentos incorretos desses índices podem levar a um viés prospectivo incorporando 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) 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 dados futuros estão sendo incorporados e existe um viés prospectivo. MaximaMinima - 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ínimos 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 corrente. É sempre necessário atrasar os valores de highlow 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 por que as estratégias negociando 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 se manter à tona e até prosperaram. Se tivéssemos restringido essa estratégia apenas à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 outro caso específico de viés prospectivo, uma vez que as informações futuras estão sendo incorporadas à análise do passado. Existem duas formas 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 não sejam 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. 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. Depois de 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 Bias Este fenômeno particular não é frequentemente discutido no contexto da 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 curva de patrimônio tendência ascendente, 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 drawdown semelhante na 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 ter denominado 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 significativa underperformance 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 é para 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 contra 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 a longo prazo do que o outsourcing tanto quanto possível ao software do vendedor. 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. Execution CapabilityBroker Interaction - Certos softwares de backtesting, como 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 um maior rácio 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 fornece uma API que é robusta, 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 bibliotecas fantásticas para quase qualquer operação matemática imaginável, mas também permitem uma personalização extensa onde necessário. Complexidade de Estratégia - Certos softwares não são cortados para o número pesado ou a complexidade matemática. Excel é um tal pedaço 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 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ê 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 HFTUHFT), então uma linguagem como C ou C será necessária. No entanto, você vai verging no Linux kernel otimização e uso de 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: Só vou incluir 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 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 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á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 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. NumPySciPy fornecem rápida computação científica e ferramentas de análise estatística relevantes para o comércio de quant. Estratégia Complexidade: Existem muitos plugins para os principais algoritmos, 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 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 testes. 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 conversar com código C nativo com certos plugins. Custo: FreeOpen Source Descrição: Mature, linguagem de alto nível projetado para a 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: CC permite o acesso direto à memória subjacente, portanto, 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 de código-fonte 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: CC 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: LinuxGCC é livre, MS Visual Studio tem diferentes licenças. Diferentes estratégias exigirão diferentes pacotes de software. As estratégias HFT e UHFT serão escritas em CC (atualmente são realizadas em GPUs e FPGAs), enquanto as estratégias direcionais de baixa freqüência são fáceis de implementar na TradeStation, devido à natureza integral 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 entrar em C diretamente dos meus programas Python. Um método favorecido por muitos comerciantes quant é protestar suas estratégias em Python e então converter as seções de execução mais lentas para C de uma maneira iterativa. Eventualmente, todo o algo é escrito em C e pode ser deixado sozinho para o comércio Nos próximos artigos sobre backtesting iremos dar uma olhada em algumas questões específicas em torno da implementação de um algoritmo trading backtesting sistema, bem como a forma de incorporar os efeitos de Trocas comerciais. Discutiremos a medição do desempenho da estratégia e finalmente concluiremos com uma estratégia de exemplo. Apenas começando com Quantitative TradingWhy Us Da tecnologia mais recente para proteger seus fundos, ver por que foram o melhor parceiro comercial. Autorização Regulatória Admiral Markets UK Ltd é regulada pela Financial Conduct Authority no Reino Unido. Entre em contato conosco Deixe comentários, faça perguntas, visite o nosso escritório ou simplesmente ligue para nós. Notícias Confira as notícias mais recentes sobre nossa empresa, eventos, negociação condtions mais. Testemunhos Veja o feedback que recebemos de clientes que negociam Forex CFD em nossas contas reais. Parceria Melhore a sua rentabilidade com a Admiral Markets - seu parceiro comercial confiável e preferido. Carreiras Estamos sempre à procura de novos talentos para a nossa equipa internacional. Qualidade de execução de pedidos Leia sobre nossas tecnologias e veja nosso relatório mensal de qualidade de execução. Tipos de conta Escolha uma conta que melhor lhe convier e começar a negociar hoje. Demo Account Uma conta de demonstração permite que você experimente CFDs Forex livre de risco negociação e teste suas estratégias no mercado financeiro. Documentos Familiarize-se com nossas práticas de negócios, documentos de procedimentos de abertura de conta. Depósitos Retiradas Veja como depositar ou retirar fundos da sua conta de negociação. Calculadora de Negociação Calcule sua margem, lucro ou perda compare os resultados das suas operações de Forex CFD antes de negociar. MetaTrader 4 Download MetaTrader 4, a plataforma mais poderosa e fácil de usar para negociação Forex CFDs. MT4 Supreme Edition MT4 Supreme Edition - uma plataforma intuitiva para negociação de Forex CFD. Saiba mais sobre este plug-in e seus recursos inovadores. MT4 WebTrader Use MT4 web negociação com qualquer computador ou navegador (sem download necessário). MetaTrader 5 Download MetaTrader 5, o platfrom novo e melhorado para negociação de Forex CFDs. Análise Fundamental Os eventos econômicos influenciam o mercado de muitas maneiras. Descubra como os próximos eventos podem impactar suas posições. Análise Técnica Gráficos podem mostrar a tendência, mas análise de indicadores e padrões por especialistas previsão deles. Veja o que dizem as estatísticas. Análise de ondas Determine zonas de preços prováveis ​​seguindo padrões de onda baseados em extremos na psicologia de comerciantes com análise de ondas Elliot Calendário de Forex Esta ferramenta ajuda os comerciantes a manter o controle de importantes anúncios financeiros que podem afetar a economia e os movimentos de preços. Autochartist Ajuda a definir níveis de saída apropriados para o mercado, entendendo a volatilidade esperada, o impacto dos eventos econômicos no mercado e muito mais. Traders Blog Siga o nosso blog para obter as últimas atualizações do mercado de comerciantes profissionais. Mapa do calor do mercado Veja quem são os movers diários superiores. Movimento no mercado sempre atrai o interesse da comunidade comercial. Sentimento de mercado Esses widgets ajudam você a ver a correlação entre posições longas e curtas detidas por outros comerciantes. Forex CFD Webinars Sintonize e assista a especialistas cobrem tópicos relacionados à negociação. Aprenda o básico ou obtenha insights de especialistas semanais. FAQ Receba as suas respostas às perguntas mais frequentes sobre os nossos serviços e transacções financeiras. Traders Glossário Os mercados financeiros têm sua própria linguagem. Aprenda os termos, porque o mal-entendido pode custar-lhe dinheiro. Forex CFD Seminars Expanda seus conhecimentos Forex e CFD trading, juntando-se a um dos nossos seminários. Realizada por profissionais de comércio. Gestão de Risco Gestão de risco pode evitar grandes perdas em Forex e CFD negociação. Aprenda as melhores práticas de gestão de risco e comércio, para o sucesso Forex e CFD comércios. Artigos Tutoriais Forex e CFD básico para tópicos de negociação avançada, esta seção oferece insights de negociação útil. Zero to Hero Inicie o seu caminho para a melhoria hoje. Nosso programa gratuito Zero to Hero irá navegar através do labirinto de Forex trading. Admiral Club Ganhe recompensas em dinheiro na negociação Forex e CFD com pontos do Admiral Club. ForexBall A competição de troca com um pool anual do prêmio de 541.000. Jogue por diversão, aprenda de verdade com este campeonato comercial. Oferta pessoal Se você está disposto a negociar conosco, estamos dispostos a fazer uma oferta competitiva. Melhor Forex Backtesting Software Forex backtesting software é um programa que usa dados históricos para recriar o comportamento dos comércios e sua reação a uma estratégia de negociação. Os dados resultantes são utilizados para medir e optimizar a eficácia de uma dada estratégia antes de a aplicar às condições reais do mercado. Backtesting em Forex trabalha na suposição que os comércios e as estratégias que executaram bem no passado funcionarão bem no futuro. Forex backtesting sempre foi uma batalha feroz entre o poder do computador e senso comum. Em 1980, o backtesting de um sistema de Forex era um conceito bem direto. Os comerciantes fariam seus negócios conscienciosos nas cartas, marcando a posição compra ou venda. Em seguida, eles manualmente escrever notas exaustivas de seus resultados comerciais em um log. A maioria das idéias de comércio veio de uma compreensão profunda de análise fundamental ou a consciência de padrões de mercado. Na década de 1990, uma pessoa foi considerada um investidor inovador, se ele foi capaz de exibir dados no monitor do computador. Basicamente, o processo eletrônico que nos permite verificar os resultados on-line e ganhar confiança em nossa estratégia hoje, uma vez em um tempo levou meses ou mesmo anos. Desde então, o processo tem continuado a avançar, mas nem sempre para melhor. Agora, não me interpretem mal. Aqueles que aplicam a diligência eo senso comum para backtesting Forex estratégia são muitas vezes recompensados ​​com enormes ganhos. Por outro lado, os comerciantes que apenas aplicam o poder de computação e não a lógica humana continuam a sofrer grandes perdas. Quando se trata de backtesting FX estratégias, não há nenhum software que pode substituir um personmdashespecialmente uma pessoa equipada com Antes de testar Ter expectativas é importante quando se trata de desenvolver uma estratégia de Forex. As expectativas obrigam você a definir um plano antecipadamente. Todo o processo de backtesting Forex gira em torno da noção de provar e validar suas idéias. No entanto, a primeira coisa que você tem a fazer é colocar essas idéias e expectativas em um plano claro. Você deve sempre ter uma idéia clara do intervalo de negociação que você deseja usar, o risco relativo da metodologia empregada eo percentual de negócios rentáveis. Se o backtest confirmado confirmar suas idéias, então você pode ter confiança na estratégia e avançar para testá-lo. Descubra que tipo de recursos você pode usar e quais beneficiarão seus testes. Por exemplo, MetaTrader 4 Supreme Edition inclui um indicador de mini gráfico que permite vários gráficos. Como tal, você pode observar diferentes cronogramas ou até mesmo usar diferentes tipos de gráficos como Renko, Range e Kagi. Selecionando os dados Os dados em tempo real abrangentes podem ser fornecidos para você usando o MT4SE. Um recurso que executa o trabalho é o indicador de informações do símbolo. Dá uma repartição rápida e detalhada da situação do mercado para todo o instrumento. Esta ferramenta efetivamente ajuda você a tomar decisões informadas, fornecendo-lhe com a mudança, intervalo e indicadores em cada período de tempo. Combiná-lo com um banco de dados premium e você poderia estar bem no seu caminho para o sucesso. Ao usar software de backtesting Forex, é sempre necessário ter um banco de dados de preços. Melhor ainda, você deve usar um histórico completo de estatísticas para eventos econômicos. Este tipo de dados é amplamente divulgado e oferecido por muitos fornecedores. Ele inclui preço diário alto, baixo e fechamento, bem como dados de Forex individuais para backtesting mais preciso. A maioria dos dados pode ser encontrada gratuitamente, mas muitas vezes é impreciso. No entanto, os melhores dados Forex está à venda em sites conhecidos como Tick Data, Inc. ou CQG Data Factory. Não há nenhuma garantia A única maneira de saber se uma estratégia vai funcionar é usando o software de backtesting FX. Lembre-se, porém, que backtesting não garante futuros lucros, mesmo se o backtest é simples validação de regras ou análise multidimensional dos resultados. Outro problema com o uso do software de backtesting FX é a liquidez infreqüente, que varia devido a muitos fatores externos. Por uma questão de fato, a liquidez pode ser bastante difícil de simular. MetaTrader software Nós não fingir ter uma opinião única quando dizemos que o melhor Forex backtesting software é MetaTrader 4 (MT4). Esta comprovada plataforma de negociação electrónica segura é a escolha mais popular para a negociação dos mercados financeiros. Com o indicador rica MT4 Supreme Edition sendo a opção preferida. MT4 é popular para backtesting de FX por causa de sua característica incorporada do verificador da estratégia. E, claro, o registro gratuito também ajuda. Mas, embora possuir o software certo pode dar-lhe o início superior na negociação, não há nenhuma estratégia que irá funcionar a menos que seu corretor é confiável. Porque nem todos os corretores de Forex são criados iguais. Seu melhor para abrir uma conta com um corretor que tem Autoridade de Conduta Financeira (FCA) e regulação MiFID. Desta forma, você obtém resultados reais backtested e você sabe que seu dinheiro é seguro quando você começar a negociar em uma conta real. Ative o JavaScript para visualizar os comentários fornecidos por Disqus. Aviso de risco: A negociação de divisas ou contratos para diferenças sobre margem comporta um alto nível de risco e pode não ser adequado para todos os investidores. Há uma possibilidade que você pode sustentar uma perda igual ou maior do que todo o seu investimento. Portanto, você não deve investir ou arriscar dinheiro que você não pode perder. Você deve garantir que você entenda todos os riscos. Antes de utilizar os serviços da Admiral Markets UK Ltd, reconheça os riscos associados à negociação. O conteúdo deste site não deve ser interpretado como um conselho pessoal. Admiral Markets UK Ltd recomenda que você procure o conselho de um conselheiro financeiro independente. A Admiral Markets UK Ltd é totalmente detida pela Admiral Markets Group AS. Admiral Markets Group AS é uma holding e seus ativos são uma participação controladora no Admiral Markets AS e suas subsidiárias, Admiral Markets UK Ltd e Admiral Markets Pty. Todas as referências neste site para Admiral Markets referem-se a Admiral Markets UK Ltd e subsidiárias da Admiral Markets Group AS. A Admiral Markets (UK) Ltd. é autorizada e regulamentada pela Autoridade de Conduta Financeira. (Registo FCA 595450). A Admiral Markets (UK) Ltd. está registrada na Inglaterra e no País de Gales sob Companies House. Número Registrado 08171762. Endereço da empresa: 16 St. Clare Street, London EC3N 1LQ, Reino Unido.

No comments:

Post a Comment