Construção de sistemas de negociação algorítmica: 2 abordagens principais, testes e ferramentas

Construção de sistemas de negociação algorítmica: 2 abordagens principais, testes e ferramentas

Visualizações: visualizações 471
Tempo de leitura: 6 minutos



Os principais componentes de um sistema de negociação algorítmica são ferramentas de pesquisa, desempenho, facilidade de desenvolvimento, resiliência e teste, separação de preocupações, familiaridade, manutenção, disponibilidade do código fonte, custos de licenciamento e maturidade das bibliotecas. Antes de decidir sobre a "melhor" ferramenta, com a qual escrever um sistema de negociação automatizado, é necessário definir os requisitos:

  1. Qual será a frequência das negociações e o provável volume de negociações?
  2. O sistema exigirá gestão de risco ou módulo de construção de portfólio?
  3. O sistema exigirá um backtester de alto desempenho?

Os comerciantes, que exigem sistemas mais complexos e personalizados, podem precisar usar C #, Matlab ou Python, mas eu diria que para os outros 95% dos comerciantes diários o Algorithmic Trading Software será suficiente.

1 - Computação em Python, Matlab, C #

Nesse caso, a habilidade de programação é um fator importante na criação de um algoritmo automatizado. estratégia de negociação. Conhecer uma linguagem de programação, como Python ou R, permitirá criar você mesmo o armazenamento de dados de ponta a ponta, o mecanismo de backtest e o sistema de execução. Permite explorar as estratégias de frequência mais alta, pois você terá controle total da sua "pilha de tecnologia". Embora isso signifique que você possa testar seu software e eliminar bugs, também significa mais tempo gasto na codificação da infraestrutura e menos na implementação de estratégias, pelo menos na parte inicial da sua carreira em algotrading.

O fluxo de trabalho básico é o seguinte:

  • Uma estratégia de negociação algorítmica alimenta dados de mercado (históricos ou ativos) em um programa de computador (backtest ou execução automatizada).
  • O programa envia pedidos para um intermediário por meio de uma API e recebe notificações do status do pedido de volta do broker.

MATLAB e Python foram minhas plataformas de backtesting favoritas. Possui uma interface muito abrangente e fácil de usar para o desenvolvimento e depuração de programas, além de uma grande variedade de caixas de ferramentas que cobrem quase todas as técnicas matemáticas ou computacionais misteriosas que você provavelmente encontrará no desenvolvimento da estratégia de negociação.

Importação de dados históricos do Yahoo Finance para Python
Figura: importação de dados históricos do Yahoo Finance para Python
O processo de negociação algorítmica
Figura: o processo de negociação algorítmica

2 - Software de negociação algorítmica. Nenhuma habilidade de codificação

A segunda abordagem são as ferramentas algorítmicas, como Multicharts, StrategyQuant ou R Trader Strategy Builder (gratuito e fácil de usar, baseado em nuvem) e muito mais.

Os dias em que a negociação algorítmica foi implementada apenas por profissionais terminaram. Não é necessário gastar horas aprendendo C # quando quase todos os sistemas e estratégias podem ser codificados com StrategyQuant, Multicharts ou R Trader Strategy Builder. Em nossa experiência, alguns traders / programadores desejam seguir o longo caminho até a meta, muitas vezes sob o pretexto de superioridade técnica, confie em nós, a maior parte da codificação avançada não é necessária para a estratégia de negociação algorítmica média. Criar suas APIs ou personalizar tudo com o MetaTrader pode ser um grande desperdício, especialmente se você ficar atolado em detalhes técnicos em vez de criar valor.

Todas as plataformas têm seus pontos positivos e negativos; para nós, o R Trader Strategy Builder é um módulo fácil de usar, baseado em propriedades próprias, que permite que os comerciantes de varejo projetem, testem e implementem estratégias de negociação algorítmica sem nenhum conhecimento de linguagens de programação.

Plataforma de negociação R Trader tem uma maneira mais simples de você sair da negociação tradicional de apontar e clicar. Projetado para traders experientes e novos, nossa interface simples de usar permite automatizar suas estratégias de negociação em minutos. Sem codificação e sem problemas - você estará pronto para funcionar rapidamente.

Backtesting. Assistente de estratégia no R Trader Strategy Builder.
Imagem: Backtesting. Assistente de estratégia no R Trader Strategy Builder.

Teste e avaliação de sistemas de negociação

A pesquisa se preocupa com a avaliação do desempenho da estratégia sobre dados históricos. O processo de avaliação de uma estratégia de negociação sobre dados de mercado anteriores é conhecido como backtesting.

A negociação algorítmica se destaca de outros tipos de classes de investimento, porque podemos fornecer expectativas mais confiáveis ​​sobre o desempenho futuro do desempenho passado. Em termos simples, o backtest é realizado expondo seu algoritmo de estratégia específico a um fluxo de dados históricos de preços, o que leva a um conjunto de sinais de negociação. Cada negociação terá um lucro ou prejuízo associado. A acumulação deste lucro / perda em todo o backtest da estratégia levará ao lucro e perda total.

Quais são as principais razões para o backtesting de uma estratégia algorítmica?

Filtração

nosso objetivo no estágio inicial da pesquisa é filtrar qualquer estratégia que não atenda a determinados critérios. O backtesting nos fornece outro mecanismo de filtragem, pois podemos eliminar estratégias que não atendem às nossas necessidades de desempenho.

Modelagem

O backtesting nos permite (com segurança!) Testar novos modelos de determinadas condições de mercado.

Dentro da amostra e fora da amostra

Ao testar uma idéia sobre dados históricos, é bom reservar um período de dados históricos para fins de teste. Os dados históricos iniciais, nos quais a ideia é testada e otimizada, são referidos como dados dentro da amostra. O conjunto de dados que foi reservado é conhecido como dados fora da amostra. Essa configuração é uma parte importante do processo de avaliação, pois fornece uma maneira de testar a idéia em dados que não foram um componente no modelo de otimização. Como resultado, a idéia não terá sido influenciada de maneira alguma pelos dados fora da amostra, e os traders poderão determinar o desempenho do sistema em novos dados, ou seja, na negociação na vida real.

Otimização de uma estratégia de negociação algorítmica

Embora a otimização da estratégia esteja repleta de vieses, o backtesting permite aumentar o desempenho de uma estratégia modificando valores dos parâmetros associados a essa estratégia e recalculando seu desempenho. O excesso de ajuste (ajuste de curva) é um problema sério em todas as áreas relacionadas à mineração de dados e você deve ter cuidado ao usar conjuntos de testes e validação adequados. Por esse motivo, poderia ser implementada uma variedade de métodos, como reteste com diferentes configurações, simulações de Monte-Carlo, matriz de avanço / avanço, otimização de avanço / avanço e vários períodos fora da amostra.

Ensaio de desempenho avançado

A negociação de demonstração ou de papel fornece aos traders outro conjunto de dados fora da amostra, nos quais avaliar um sistema. O teste de desempenho avançado é uma simulação da negociação real e envolve seguir a lógica do sistema em um mercado ativo. Um aspecto importante dos testes de desempenho avançados é seguir exatamente a lógica do sistema; caso contrário, torna-se difícil, se não impossível, avaliar com precisão essa etapa do processo. Muitos corretores, assim como os RoboMarkets, oferecem uma conta de negociação simulada onde as negociações podem ser feitas e os ganhos e perdas correspondentes calculados. O uso de uma conta de negociação demo pode criar um ambiente semi-realista, no qual praticar a negociação e avaliar melhor o sistema.

Imagem: backtesting. Um gráfico em Python.
Imagem: backtesting. Um gráfico em Python.
Backtesting. Negócios históricos no R Trader Strategy Builder.
Imagem: backtesting. Negócios históricos no R Trader Strategy Builder.

Por último, mas não menos importante, gostaria de discutir as ferramentas que serão úteis nesta esfera.

Ferramentas

Software de pesquisa e negociação automatizada

Excel, R Trader Strategy Builder (https://rtrader.umstel.com - software livre), StrategyQuant (taxa de licença), MultiCharts (taxa de licença), TradeStation (taxa de licença), Wealth-lab (taxa de licença).

Código

Matlab, Python, R, C #

Dados

  1. Dados de opinião social (do Twitter e de outras mídias sociais, consulte ISentium, TickerTags)
  2. Dados fornecidos por multidões (consulte Estimar)
  3. Dados comportamentais (consulte Cabot Research)
  4. Imagens de satélite e aéreas (consulte Visão orbital)
  5. Dados comportamentais do consumidor (consulte Fidelidade à marca)
  6. Recursos on-line não tradicionais (consulte Knowsis)
  7. OTAS (Dados Técnicos)

Outros provedores

Grupo TIM, Discern, Essentia, Kensho, RavenPack, SocialMediaAnalytics, Ayasdi, TheySay Analytics, Quid, Rage Frameworks, Dataminr.

Livros (em inglês)

  1. Negociação quantitativa: Como criar seu próprio negócio de negociação algorítmica - Ernest Chan
  2. Comércio algorítmico: estratégias vencedoras e sua justificativa - Ernest Chan
  3. Negociação de máquinas: Implantando algoritmos de computador para conquistar os mercados - Ernest Chan
  4. Algorithmic Trading e DMA: uma introdução às estratégias de negociação de acesso direto - Barry Johnson
  5. Negociação e Trocas: Microestrutura de Mercado para Profissionais - Larry Harris

1. arXiv http://arxiv.org/archive/q-fin
2. SSRN https://www.ssrn.com/en/
3. Revista de Estratégias de Investimento https://www.risk.net/journal-of-investment-strategies
4. Revista de Finanças Computacionais https://www.risk.net/journal-of-computational-finance
5. Finanças matemáticas https://onlinelibrary.wiley.com/journal/14679965

Resumo

Como podemos ver, existem diferentes abordagens para a criação de estratégias de negociação algorítmica. Você pode escolher qualquer que seja adequado ao seu nível de conhecimento e oportunidades. Além disso, backtesting e desenvolvimento adicional, após o qual somente podemos mudar para a prática.

Se você tiver alguma dúvida, teremos prazer em respondê-las nos comentários abaixo.

Abrir conta de negociação




Comentários

artigo anterior

Uma semana no mercado (01/13 - 01/19): Estatísticas e decisões dos bancos centrais

A nova semana de janeiro parece bastante usual. Temos estatísticas, políticas e algumas decisões monetárias. Parece que as economias globais e o mercado de capitais estão trabalhando em grande escala após as festas de Natal e Ano Novo.

Próximo artigo

3 ações para comprar em 2020: Delta Air Lines, HP, Morgan Stanley

O ciclo de 12 anos de crescimento da economia americana está em andamento. Este é o período mais longo para ficar sem uma crise. O início de 2020 continua animando os investidores, as ações continuam renovando os máximos de todos os tempos. Os que os compraram antes ficam mais felizes.