QuantStart.
Junte-se ao portal de membros privados da Quantcademy que atende à comunidade de comerciantes de varejo de varejo em rápido crescimento. Você encontrará um grupo bem informado de mentalistas quant pronto para responder suas perguntas comerciais mais importantes.
Confira meu ebook sobre o comércio de quant, onde eu ensino você como criar estratégias de negociação sistemáticas lucrativas com ferramentas Python, desde o início.
Dê uma olhada no meu novo ebook sobre estratégias de negociação avançadas usando análise de séries temporais, aprendizado de máquina e estatísticas bayesianas, com Python e R.
Por Frank Smietana em 18 de julho de 2017.
Neste artigo, Frank Smietana, um dos colaboradores experientes do QuantStart, descreve a paisagem do software de backtesting de código aberto da Python e fornece conselhos sobre quais framework de backtesting são adequados para suas próprias necessidades de projeto.
Backtesting é indiscutivelmente a parte mais crítica do processo de produção da Sistemática de Negociação Sistemática (STS), sentado entre o desenvolvimento da estratégia e a implantação (negociação ao vivo). Se uma estratégia é defeituosa, um teste rigoroso provavelmente expõe isso, evitando que uma estratégia de perda seja implantada.
Uma série de capacidades relacionadas se sobrepõem com backtesting, incluindo simulação comercial e negociação ao vivo. O Backtesting usa dados históricos para quantificar o desempenho STS. Os simuladores de negociação levam backtesting um passo adiante, visualizando o desencadeamento de trades e desempenho de preços em uma base bar-a-bar. A negociação simulada / ao vivo implementa um STS testado em tempo real: negociações de sinalização, gerando ordens, roteando ordens para corretores e mantendo as posições à medida que as ordens são executadas.
A maioria dos quadros vai além do backtesting para incluir algumas capacidades de negociação ao vivo. Isso é conveniente se você deseja implantar a partir de sua estrutura de backtesting, que também funciona com o seu fornecedor preferido e fontes de dados. Quantopian / Zipline vai um passo adiante, fornecendo uma solução totalmente integrada de desenvolvimento, backtesting e implantação.
A comunidade Python é bem servida, com pelo menos seis estruturas de backtesting de código aberto disponíveis. No entanto, estão em vários estágios de desenvolvimento e documentação. Se você gosta de trabalhar em uma equipe construindo uma estrutura de backtesting de código aberto, confira seus reembolsos Github.
Antes de avaliar quadros de teste, vale a pena definir os requisitos do seu STS.
Qual classe de ativos você está negociando? Embora a maioria dos frameworks ofereça suporte aos dados da US Equities via YahooFinance, se uma estratégia incorporar derivados, ETFs ou títulos de EM, os dados precisam ser importados ou fornecidos pela estrutura. As coberturas de classe de ativos vão além dos dados. O framework pode lidar com futuros e opções de tamanho finito e gerar negociações de roll-over automaticamente? E quanto aos mercados ilíquidos, quão realista é uma suposição ao executar grandes encomendas?
Qual a frequência e o detalhe dos dados do seu STS? Um sistema de negociação que exige que cada marca ou lance / peça tenha um conjunto muito diferente de problemas de gerenciamento de dados do que um intervalo de 5 minutos ou horário. Os hedge funds e as lojas HFT investiram significativamente na construção de quadros robustos e escaláveis de backtesting para lidar com esse volume e freqüência de dados. Algumas plataformas fornecem um conjunto rico e profundo de dados para várias classes de ativos, como ações da S & P, com resolução de um minuto.
Qual (s) tipo (s) de ordem o seu STS requer? No mínimo, o limite, as paradas e o OCO devem ser suportados pela estrutura.
Nível de suporte e amp; documentação necessária. Os quadros de estágio inicial têm escassa documentação, poucos têm suporte além de placas comunitárias.
Os Componentes de um Quadro de Teste de Backtesting.
Dados e aquisição de STS: os componentes de aquisição consomem o arquivo de script / definição STS e fornecem os dados necessários para testes. Se a estrutura exige que qualquer STS seja recodificado antes do teste posterior, a estrutura deve suportar funções enlatadas para os indicadores técnicos mais populares para acelerar o teste STS. Os usuários determinam o tempo de um período histórico para fazer backtest com base no que o framework fornece, ou o que eles são capazes de importar.
O teste de desempenho aplica a lógica STS à janela de dados históricos solicitada e calcula uma ampla gama de riscos & amp; métricas de desempenho, incluindo redução máxima, taxas Sharpe e Sortino. A maioria dos frameworks suporta um número decente de capacidades de visualização, incluindo curvas de equidade e estatísticas decimais.
A otimização tende a exigir a maior parte dos recursos de computação no processo STS. Se o seu STS precisar de otimização, concentre-se em uma estrutura que suporte processamento escalável distribuído / paralelo.
No contexto de estratégias desenvolvidas usando indicadores técnicos, os desenvolvedores de sistemas tentam encontrar um conjunto ideal de parâmetros para cada indicador. Mais simplesmente, a otimização pode achar que um fluxo de média móvel de 6 e 10 dias STS acumulou mais lucro sobre os dados de teste históricos do que qualquer outra combinação de períodos de tempo entre 1 e 20. Já com este exemplo trivial, 20 * 20 = 400 combinações de parâmetros devem ser calculado & amp; classificado.
No contexto de um portfólio, a otimização procura encontrar a ponderação ideal de cada ativo na carteira, incluindo os instrumentos em curto e alavancado. Em uma base periódica, o portfólio é reequilibrado, resultando na compra e venda de participações da carteira, conforme necessário, para alinhar com os pesos otimizados.
O dimensionamento de posição é um uso adicional da otimização, ajudando os desenvolvedores de sistemas a simular e analisar o impacto da alavancagem e dimensionamento de posição dinâmico no STS e no desempenho do portfólio.
Seis quadros de teste para o Python.
As capacidades padrão das plataformas open source Python backtesting parecem incluir:
Gerenciamento de eventos, flexível e irrestrito Coleta decente de indicadores técnicos pré-definidos Captação de desempenho padrão / visualização / geração de relatórios.
PyAlgoTrade.
PyAlgoTrade é uma estrutura de backtesting mutuamente documentada, juntamente com capacidades de negociação em papel e ao vivo. O suporte a dados inclui Yahoo! Finanças, Google Finance, NinjaTrader e qualquer tipo de série de tempo baseada em CSV, como Quandl. Os tipos de pedidos suportados incluem Market, Limit, Stop e StopLimit.
O PyAlgoTrade suporta a negociação Bitcoin via Bitstamp e o gerenciamento de eventos do Twitter em tempo real.
bt - Backtesting para Python.
bt "visa promover a criação de blocos de lógica de estratégia facilmente testáveis, reutilizáveis e flexíveis para facilitar o rápido desenvolvimento de estratégias comerciais complexas".
O framework é particularmente adequado para testar STS com base em portfólio, com algos para ponderação de ativos e reequilíbrio de portfólio. A modificação de uma estratégia para executar em diferentes freqüências de tempo ou pesos de ativos alternativos envolve um mínimo de ajuste de código. bt é construído em cima do ffn - uma biblioteca de funções financeiras para Python.
Backtrader.
Esta plataforma está excepcionalmente bem documentada, com um blog acompanhante e uma comunidade on-line ativa para postar perguntas e solicitações de recursos. O Backtrader suporta uma série de formatos de dados, incluindo arquivos CSV, Pandas DataFrames, iteradores de incandescência e feeds de dados em tempo real de três corretores. Esses feeds de dados podem ser acessados simultaneamente e podem até representar diferentes cronogramas. Os corretores suportados incluem Oanda para negociação de Forex e negociação de classes de ativos múltiplos através de Interactive Brokers e Visual Chart.
Pysystemtrade.
O desenvolvedor da Pysystemtrade, Rob Carver, tem uma ótima postagem em discussão sobre o porquê ele se propôs a criar mais uma nova estrutura de teste do Python e os argumentos para e contra o desenvolvimento do framework. A estrutura backtesting para pysystemtrade é discutida no livro Rob, "Systematic Trading".
Pysystemtrade lista uma série de recursos de roteiro, incluindo um testador de back-up completo, que inclui técnicas de otimização e calibração e negociação de futuros totalmente automáticos com Interactive Brokers. Os contribuidores da fonte aberta são bem-vindos.
Zipline é um simulador de negociação algorítmica com recursos de papel e negociação ao vivo. Acessível através da interface do navegador IPython baseado no navegador, a Zipline fornece uma alternativa fácil de usar para ferramentas de linha de comando. Suportado e desenvolvido por Quantopian, Zipline pode ser usado como uma estrutura de backtesting autônomo ou como parte de um ambiente completo de desenvolvimento, teste e implantação de STS, de Aosta / Zipline STS. A Zipline fornece 10 anos de dados de estoque históricos históricos de última hora e uma série de opções de importação de dados.
QSTrader é uma estrutura de backtesting com capacidades de negociação ao vivo. O fundador da QuantStart, Michael Halls-Moore, lançou o QSTrader com a intenção de construir uma plataforma robusta e escalável o suficiente para atender às necessidades dos fundos de hedge quantitativos institucionais, bem como aos comerciantes quantos de varejo. O QSTrader atualmente suporta dados de resolução "barra" da OHLCV em várias escalas de tempo, mas permite que dados de marca sejam usados.
Tanto o backtesting como o comércio ao vivo são completamente orientados para eventos, simplificando a transição das estratégias da pesquisa para o teste e, finalmente, a negociação ao vivo. A estratégia básica / código do portfólio geralmente é idêntico em ambas as implementações.
O principal benefício do QSTrader é em sua modularidade, permitindo uma ampla personalização de código para aqueles que possuem requisitos específicos de gerenciamento de risco ou portfólio.
Abraçando o Backtest.
É a natureza humana se concentrar na recompensa de desenvolver um STS (esperançosamente lucrativo), então apressar-se a implantar uma conta financiada (porque esperamos), sem gastar tempo e recursos suficientes para testar completamente a estratégia. Mas backtesting não é apenas um gatekeeper para nos impedir de implementar estratégias erradas e perder capital comercial, também fornece uma série de diagnósticos que podem informar o processo de desenvolvimento STS. Por exemplo, testando um STS idêntico em dois intervalos de tempo diferentes, compreendendo a redução máxima de uma estratégia no contexto de correlações de ativos e criando portfólios mais inteligentes por backtesting de alocações de ativos em várias regiões geográficas.
Em futuras postagens, iremos abordar frameworks de backtesting para ambientes que não sejam Python e o uso de várias técnicas de amostragem como bootstrapping e jackknife para testar modelos de negociação preditivos.
Apenas iniciando o comércio quantitativo?
3 razões para se inscrever na QuantStart List:
1. Quant Trading Lessons.
Você terá acesso instantâneo a um curso gratuito de 10 partes, com sugestões e dicas para ajudá-lo a começar a negociação quantitativa!
2. Todo o conteúdo mais recente.
Todas as semanas, vou enviar-lhe um envoltório de todas as atividades no QuantStart para que você nunca mais perca uma postagem novamente.
Real, dicas de negociação viáveis, sem tonturas.
Backtesting trading sistemático
Negociação sistemática: benefícios e riscos.
Negociação sistemática: benefícios e riscos.
por Michael R. Bryant.
O comércio sistemático refere-se à compra e venda de instrumentos financeiros, como ações ou divisas, usando uma estratégia de negociação predefinida chamada sistema de negociação. A maioria dos sistemas de negociação são codificados no chamado idioma de script que permite que eles sejam executados na plataforma de negociação de um corretor. A alternativa ao comércio sistemático é chamada de negociação discricionária, na qual o comerciante faz decisões de compra e venda numa base de comércio por comércio. Costuma-se dizer que o trabalho de um comerciante sistemático é seguir seu sistema, enquanto o comerciante discricionário pode alterar sua estratégia, dependendo de como o mercado evolui.
Um dos benefícios mais significativos do comércio sistemático é que ajuda a remover a tomada de decisão emocional do processo de negociação. Quando o dinheiro real está em risco nos mercados, as emoções de medo e ganância podem facilmente dominar a tomada de decisão racional. Isso pode ser mitigado em grande medida por ter uma estratégia comercial que toma as decisões para você.
Outro benefício é que a maioria dos sistemas de negociação pode ser automatizado, o que significa que as ordens de compra e venda podem ser executadas automaticamente através da plataforma de negociação do seu corretor enquanto o sistema funciona durante a negociação ao vivo. Isso resulta em uma execução mais rápida das ordens de negociação e reduz a probabilidade de que uma troca possa ser perdida devido a adivinhação ou hesitação. A execução automatizada de pedidos também permite negociar estratégias com curtos períodos de tempo. Por exemplo, um sistema de negociação que funciona em barras de um minuto dos futuros E-mini S & amp; P 500 pode ser difícil de executar manualmente, mas pode funcionar bem se for automatizado.
Como as estratégias de negociação sistemática são tipicamente escritas em uma linguagem de programação ou de programação, geralmente podem ser testadas em dados históricos. Esta capacidade de testar uma estratégia de negociação é um dos maiores benefícios do comércio sistemático. Back-testing diz-lhe o quão bem a estratégia teria feito no passado. Embora o desempenho testado novamente não garanta resultados futuros, pode ser muito útil ao avaliar estratégias potenciais. Os resultados testados podem ser usados para eliminar estratégias que não se adequam ao seu estilo de negociação ou não são susceptíveis de atingir seus objetivos de desempenho.
Os comerciantes novos para o comércio sistemático geralmente questionam se a abordagem sistemática pode ser lucrativa. Às vezes, eles acreditam que apenas o investimento de compra e retenção é lucrativo no longo prazo. A realidade é que os comerciantes profissionais, como os comerciantes de fundos de hedge e os chamados Commodity Trading Advisors (CTAs), negociaram o dinheiro de seus clientes lucrativamente por muitos anos usando sistemas de negociação. Esses profissionais, cujos registros comerciais são auditados, demonstraram há décadas que o comércio sistemático pode ser lucrativo.
Apesar dos benefícios do comércio sistemático, também existem riscos. O principal risco é selecionar um sistema de negociação mal projetado. Um sistema de comércio pode ser mal concebido por vários motivos, incluindo o excesso de ajuste no mercado, baseando-se em premissas pouco realistas ou usando controles de risco inadequados. Se você optar por projetar seu próprio sistema, você precisa ter conhecimentos de negociação no mercado, bem como técnicas de construção de estratégias. Se você decidir comprar um sistema, o principal desafio é avaliar estratégias potenciais e selecionar o melhor baseado em suas preferências comerciais e metas de desempenho.
Supondo que você tenha escolhido um sistema de negociação viável, também há riscos durante a negociação ao vivo. Esses riscos incluem riscos relacionados à tecnologia e riscos de execução. Particularmente para negociação automatizada, a velocidade da sua conexão com a internet pode ser um fator na execução comercial. Também é necessário saber como sua plataforma de negociação responderá se você perder a conectividade. Você poderá colocar uma ordem de saída por telefone, se necessário, e o sistema manterá o bom histórico das suas posições quando voltar? Outro risco de execução é o deslizamento, que é a diferença entre o preço ao qual uma ordem comercial é colocada e o preço ao qual a ordem é preenchida. A quantidade de deslizamento que você consegue pode depender do seu corretor e da plataforma do corretor, bem como do mercado e do prazo. Se você não assumir uma derrapagem suficiente ao avaliar uma estratégia, pode achar que os resultados de desempenho durante a negociação ao vivo estão abaixo das suas expectativas.
Por fim, nenhum sistema comercial continua a ser lucrativo para sempre. Mesmo a melhor estratégia de negociação pode parar de funcionar se estiver baseada em alguma característica do mercado que muda. Às vezes, uma pequena modificação no sistema, como alterar um valor de entrada, pode restaurar seu desempenho. No entanto, mesmo que a estratégia seja fundamentalmente sólida, é sempre prudente acompanhar o seu desempenho e estar preparado para interromper a negociação se parar de funcionar.
Se você quiser ser informado de novos desenvolvimentos, novidades e ofertas especiais do Adaptrade Software, por favor, junte-se à nossa lista. Obrigado.
Copyright © 2004-2015 Adaptrade Software. Todos os direitos reservados.
NinjaTrader vs Amibroker vs BackTrader para testar estratagemas sistemáticas.
(Se você já possui uma conta, inicie sessão no topo da página)
Estamos aqui para ajudar. Apenas deixe-nos saber o que você precisa. Trabalhamos extremamente para manter as coisas positivas em nossa comunidade. Não toleramos comportamento grosseiro, trolling ou vendedores publicitários em postagens. Nós acreditamos firmemente e incentivamos a partilha. O santo Graal está dentro de você, podemos ajudá-lo a encontrá-lo. Esperamos que nossos membros participem e se tornem parte da comunidade. Ajude-se ajudando os outros.
Você precisará se registrar para ver o conteúdo dos tópicos e começar a contribuir para a nossa comunidade. É grátis e simples.
NinjaTrader vs Amibroker vs BackTrader para testar estratagemas sistemáticas.
Estou tentando decidir qual plataforma usar para testar algumas estratégias de negociação sistemáticas. Quais são os prós e contras para cada uma das seguintes plataformas.
2. Amibroker ($ 339)
3. BackTrader (grátis)
Coisas sobre as quais eu me importo:
1. Velocidade razoável de backtesting.
2. Capacidade de saltar para o gráfico de velas para um comércio e ver marcas comerciais para comprar e vender pontos.
3. Boa maneira de analisar (taxa de sharpe, alfa, curvas de equidade, comparação de benchmark, etc.)
Estou feliz com a velocidade. Claro, sua milhagem pode variar. As especificações aqui: intel i7 6700HQ, 16 GB de RAM.
2. Capacidade de saltar para o gráfico de velas para um comércio e ver marcas comerciais para comprar e vender pontos.
O backtrader é o mais fraco aqui se quiser mover, pan, zoom. As tabelas produzidas pela backtrader dependem do matplotlib e, embora pareçam boas, são pesadas e ampliadas e a panorâmica não é confortável.
3. Boa maneira de analisar (taxa de sharpe, alfa, curvas de equidade, comparação de benchmark, etc.)
backtrader fornece-lhe analisadores que lhe dão os valores brutos e observadores que traçam esses. "alfa" não está no arsenal (provavelmente porque não é interessante para mim), mas Sharpe Ratio, VWR, Time Based Returns, benchmarking, DrawDown, Trade Analyzer são. Não pode comentar sobre NinjaTrader ou AmiBroker. Meus testes com eles nunca chegaram tão longe. 4. Mesmo que você possa se ensinar qualquer idioma, eu irei aqui para o Python em vez de scripts proprietários ou VB / JScript.
Com backtrader, você pode ler arquivos CSV, Yahoo Online, Pandas DataFrames, Interactive Brokers, Oanda e VisualChart.
6. Saltar para negociação ao vivo.
Estou muito confiante nas habilidades de backtrader trading live, mas não há compromisso comercial (a partir de hoje, o futuro irá contar).
7. Existem outras plataformas baseadas em Python listadas na página do repositório do backtrader no github. Você pode querer dar uma olhada.
Backtesting trading sistemático
O QuantDesk é uma solução completa de ponta a ponta para um fundo quantitativo de qualquer tamanho. Inclui OpenQuant IDE, QuantRouter (servidor de execução de algo com replicação de feed, consolidação, agregação e roteamento de pedidos inteligentes), QuantBase (servidor de dados de mercado com captura de feed em tempo real e gerenciamento de dados históricos centralizado), QuantTrader (mecanismo de implantação de produção para estratégias de negociação automatizadas desenvolvidas com OpenQuant) e QuantController, um aplicativo de servidor que complementa o QuantDesk para permitir um gerenciamento eficiente da arquitetura de negociação distribuída da SmartQuant.
Claro, ainda passamos muito tempo experimentando, tentando e testando diferentes estratégias. Ter um bom ambiente de desenvolvimento não permite que você ignore esse passo. A vantagem real de uma estrutura bem projetada é cortar o tempo entre testes e produção ao mínimo, e na natureza escalonável da infra-estrutura, que pode crescer com a empresa de gerenciar um pequeno capital de semente para níveis verdadeiramente institucionais. Com um sistema como este, os gerentes emergentes podem se sentir em condições equitativas ao negociar no mesmo mercado como concorrentes muito maiores e podem perceber plenamente as vantagens inerentes de ser ágil e adaptável.
O QuantDesk é uma solução completa de ponta a ponta para um fundo quantitativo de qualquer tamanho. Inclui OpenQuant IDE, QuantRouter (servidor de execução de algo com replicação de feed, consolidação, agregação e roteamento de pedidos inteligentes), QuantBase (servidor de dados de mercado com captura de feed em tempo real e gerenciamento de dados históricos centralizado), QuantTrader (mecanismo de implantação de produção para estratégias de negociação automatizadas desenvolvidas com OpenQuant) e QuantController, um aplicativo de servidor que complementa o QuantDesk para permitir um gerenciamento eficiente da arquitetura de negociação distribuída da SmartQuant.
Claro, ainda passamos muito tempo experimentando, tentando e testando diferentes estratégias. Ter um bom ambiente de desenvolvimento não permite que você ignore esse passo. A vantagem real de uma estrutura bem projetada é cortar o tempo entre testes e produção ao mínimo, e na natureza escalonável da infra-estrutura, que pode crescer com a empresa de gerenciar um pequeno capital de semente para níveis verdadeiramente institucionais. Com um sistema como este, os gerentes emergentes podem se sentir em condições equitativas ao negociar no mesmo mercado como concorrentes muito maiores e podem perceber plenamente as vantagens inerentes de ser ágil e adaptável.
Комментариев нет:
Отправить комментарий