Começando: Construindo um Sistema de Negociação Totalmente Automatizado.
Nos últimos 6 meses, tenho focado no processo de construção da pilha completa de tecnologia de um sistema de negociação automatizado. Eu me deparei com muitos desafios e aprendi muito sobre os dois métodos diferentes de backtesting (Vectorised e Event driven). Na minha jornada para construir um backtester orientado a eventos, veio a minha surpresa que o que você iria acabar é perto de toda a pilha de tecnologia necessária para construir uma estratégia, fazer backtest e executar a execução ao vivo.
Meu maior problema ao enfrentar o problema foi a falta de conhecimento. Procurei em muitos lugares uma introdução à construção da tecnologia ou um blog que me orientasse. Eu encontrei alguns recursos que vou compartilhar com vocês hoje.
Para iniciantes:
Para os leitores novatos no comércio quantitativo, eu recomendaria o livro de Ernie P. Chan intitulado: Negociação Quantitativa: Como construir seu próprio negócio de comércio algorítmico. Este livro é o básico. Na verdade, é o primeiro livro que li sobre negociação quantitativa e mesmo assim achei muito básico, mas há algumas notas que você deve tomar.
Da página 81-84 Ernie escreve sobre como, no nível de varejo, uma arquitetura de sistema pode ser dividida em estratégias semi-automatizadas e totalmente automatizadas.
Um sistema semi-automatizado é adequado se você quiser fazer algumas transações por semana. Ernie recomenda usar o Matlab, R ou até mesmo o Excel. Eu usei todas as 3 plataformas e este é o meu conselho:
Saltar do Matlab, custou muito dinheiro e só consegui acesso aos laboratórios da universidade. Não há muito material de treinamento como blogs ou livros que ensinem como codificar uma estratégia usando o Matlab. R tem toneladas de recursos que você pode usar para aprender como construir uma estratégia. Meu blog favorito cobrindo o tópico é: QuantStratTradeR é executado por Ilya Kipnis. É mais provável que o Microsoft Excel inicie onde você não tem experiência em programação. Você pode usar o Excel para negociações semi-automáticas, mas isso não vai funcionar quando se trata de construir a pilha completa de tecnologias.
Estrutura semiautomática pg 81.
Sistemas de negociação totalmente automatizados são para quando você deseja colocar automaticamente as negociações com base em um feed de dados ao vivo. Eu codifiquei o meu em C #, o QuantConnect também usa o C #, o QuantStart orienta o leitor através da construção em Python, o Quantopian usa o Python, o HFT provavelmente usará o C ++. Java também é popular.
Estrutura de negociação completamente automatizada página 84.
Passo 1: Conseguir um bom começo.
Faça o Programa Executivo em Algorithmic Trading oferecido pela QuantInsti. Acabei de começar o curso e o primeiro conjunto de palestras foi na arquitetura do sistema. Isso teria me poupado cerca de 3 meses de pesquisa se eu tivesse começado aqui. As palestras me acompanharam através de cada componente que eu precisaria, bem como uma descrição detalhada do que cada componente precisa fazer. Abaixo está uma captura de tela de um de seus slides usados na apresentação:
Você também pode usar essa estrutura geral ao avaliar outros sistemas de negociação automáticos.
No momento em que escrevo, estou apenas na terceira semana de palestras, mas estou confiante de que um praticante será capaz de construir uma estratégia comercial totalmente automatizada que poderia, com um pouco de refinamento, ser transformada no começo de um fundo de hedge quantitativo. .
Nota: o curso não está focado na construção da pilha de tecnologia.
Etapa 2: codifique um backtester baseado em eventos básicos.
Blog de Michael Hallsmore, quantstart & amp; livro “Negociação Algorítmica Bem Sucedida”
Este livro tem seções dedicadas à construção de um robusto backtester orientado a eventos. Ele orienta o leitor através de vários capítulos que explicarão sua escolha de idioma, os diferentes tipos de backtesting, a importância do backtesting orientado a eventos e como codificar o backtester.
Michael introduz o leitor às diferentes classes necessárias em um projeto orientado a objetos. Ele também ensina o leitor a construir um banco de dados mestre de títulos. É aqui que você verá como a arquitetura do sistema da QuantInsti se encaixa.
Nota: Você precisará comprar o livro dele: “Successful Algorithmic Trading”, seu blog deixa de fora muita informação.
Passo 3: Volte para o TuringFinance.
O programa EPAT Reading “Successful Algorithmic Trading” & amp; codificando um backtester em um idioma diferente de sua escolha.
Você deve ir para um blog chamado TuringFinance e ler o artigo intitulado "Algorithmic Trading System Architecture" Por: Stuart Gordon Reid. Em seu post ele descreve a arquitetura seguindo as diretrizes dos padrões ISO / IEC / IEEE 42010 e padrão de descrição de arquitetura de engenharia de software.
Eu achei este post muito técnico e tem algumas ótimas idéias que você deve incorporar em sua própria arquitetura.
Uma captura de tela de seu post.
Etapa 4: Estude os sistemas de negociação de código aberto.
4.1) Quantopian.
Escusado será dizer que Quantopian deve ser adicionado a esta lista e tenho vergonha de dizer que não passei muito tempo usando sua plataforma (devido à minha escolha de idioma). Quantopian tem muitas vantagens, mas as que mais se destacam para mim são as seguintes:
Fácil de aprender Python Acesso gratuito a muitos conjuntos de dados Uma grande comunidade e competições Eu amo como eles hospedam a QuantCon!
Quantopian é os líderes de mercado neste campo e é amado por todos os quants! Seu projeto de código aberto está sob o nome de código Zipline e isso é um pouco sobre isso:
“O Zipline é o nosso mecanismo de código aberto que alimenta o backtester no IDE. Você pode ver o repositório de código no Github e contribuir com solicitações de pull para o projeto. Há um grupo do Google disponível para procurar ajuda e facilitar discussões. ”
Aqui está um link para sua documentação:
4.2) QuantConnect.
Para aqueles que não estão familiarizados com o QuantConnect, eles fornecem um mecanismo completo de negociação algorítmica de código aberto. Aqui está um link.
Você deve dar uma olhada no código deles, estudá-lo, & amp; dê-lhes louvor. Eles são competição de quantopianos.
Eu gostaria de aproveitar esta oportunidade para agradecer à equipe da QuantConnect por me deixar escolher o cérebro deles e pelo serviço brilhante que eles fornecem.
Aqui está um link para sua documentação:
Observações finais:
Espero que este guia ajude os membros da comunidade. Eu gostaria de ter essa percepção 6 meses atrás quando comecei a codificar nosso sistema.
Eu gostaria de falar com a comunidade e perguntar: “Que bons cursos de negociação algorítmica você conhece?” Eu gostaria de escrever um post que analise o tópico e forneça uma classificação. Há alguma recomendação para criar um sistema de negociação totalmente automatizado que você gostaria de adicionar a este post?
QuantOffice.
Descoberta Alfa e Execução Otimizada.
O QuantOffice é o produto para o desenvolvimento visual, depuração e back-testing de estratégias integradas Alpha / EMS usando C # e Dot Net. Ele fornece uma gama completa de eventos (por exemplo, OnBarClose, OnBarOpen, OnTick, OnOrderBookChange) para granularidade de nível de instrumento e portfólio e permite que combinações de periodicidade diária, intra-dia, tick e eventos personalizados sejam usadas na criação de ordem proprietária algoritmos de execução. Uma vez que uma estratégia tenha sido aperfeiçoada, a estratégia (representada pelo código C #) é publicada no Strategy Trading Server para execução da produção. Dados de séries temporais para back-testing, simulação e negociação de produção são fornecidos pela conectividade com o banco de dados TimeBase.
Designer de estratégia visual.
O QuantOffice: Studio fornece um ambiente de desenvolvimento completo em C #, incluindo integração bidirecional com o Microsoft Visual Studio, Matlab e R. O QuantOffice: Studio também oferece um rico conjunto de bibliotecas de indicadores técnicos padrão da indústria, modelos estatísticos e econométricos para desenvolver estratégias. Além de criar estratégias e modelos em C #, os usuários também podem usar o construtor de lógica de processo visual. Usando “arrastar e soltar”, os usuários criam um diagrama de fluxo de lógica de processo; pressionando um botão, em seguida, gera o código C # subjacente. Por outro lado, os usuários podem gerar o diagrama lógico do processo a partir do código; isto é, eles podem alternar entre o código e a representação gráfica da estratégia ou modelo.
Processamento de Eventos Complexos (CEP)
O QuantOffice é implementado com o TimeBase como sua fonte de dados. Como tal, o QuantOffice utiliza o barramento de mensagens integrado do TimeBase para o CEP. Os desenvolvedores de estratégia podem usar eventos fornecidos (por exemplo, OnBarClose, OnBarOpen, OnTick) ou desenvolver eventos mais sofisticados, por exemplo eventos criados como saída interina da própria estratégia, ou uma “meta-estratégia”, que é um modelo que orquestra outras “sub-estratégias”.
Análise Visual Rápida.
A saída de estratégias (indicadores, sinais de negociação, ordens, execuções e P & L) é rapidamente exibida graficamente, nos níveis de instrumento e portfólio. Inspeção microscópica desta saída pode ser realizada para ver o movimento de ticks dentro de barras e a geração de sinais, ordens e execuções em periodicidades de ticks. Isso permite uma rápida avaliação, refinamento e reexecução de modelos em um processo iterativo. O desempenho do gráfico é extraordinário: leva apenas alguns segundos para testar todos os instrumentos no S & amp; P500 ao longo dos anos de dados de ticks.
Todos os dados também podem ser exibidos em forma de tabela. Por exemplo, clicar com o botão direito do mouse em um único ponto em um gráfico mostrará todos os dados de mercado subjacentes antes, depois e depois desse ponto. Todos os dados podem ser despejados nos formatos Excel, csv e PDF.
Atuação.
A operação de tempo de execução dos modelos (nos modos de back-testing e simulação) é imensamente rápida, como resultado do processamento de mensagens medido em milhões de registros por segundo. A produção de modelos operando em centenas de instrumentos ao longo de anos de dados de ticks leva literalmente segundos. Além da engenharia superior, o desempenho do QuantOffice é aprimorado pela capacidade de pré-carregar eventos do TimeBase no cache de memória.
Instrumentos Suportados.
Ações, opções, futuros, moedas, pares, cestas e instrumentos sintéticos personalizados são suportados. Instrumentos sintéticos vão desde cestas até a produção de estratégias.
Dados e periodicidades suportados.
São suportados dados de periodicidade diária, intra-dia e tick, Nível I e Nível II (profundidade de mercado / carteira de pedidos), notícias e dados fundamentais. Os usuários podem combinar periodicidades diferentes para construir uma estratégia. Por exemplo, o usuário pode usar dados fundamentais trimestrais combinados com dados de barras diárias para rebalanceamento diário de portfólios e dados de barra de minutos, notícias ou ticks para refinamento de estratégias de execução.
Criação de Bar.
Além de acessar as barras baseadas em tempo criadas pelo TimeBase, o QuantOffice pode ser usado para criar barras usando técnicas mais complexas, que são então armazenadas no TimeBase. Por exemplo, os usuários podem definir lógica para geração de barras “por volume igual” ou “por número de comércio igual”. Essas barras são armazenadas no TimeBase em tempo real e são acessíveis ao QuantOffice em tempo real.
Otimização.
O QuantOffice suporta a otimização de parâmetros de modelos por métodos de força bruta, genética e dinâmica (walk-forward). Uma das características mais interessantes da otimização dinâmica é a capacidade de definir uma “meta-estratégia”, ou seja, uma estratégia que controla, em relação a quando elas são executadas, outras “sub” estratégias criadas no QuantOffice.
Calendários de Negociação, Sessões de Negociação e Trocas.
O QuantOffice mantém calendários comerciais e feriados para todas as trocas. Dentro dessas restrições, os usuários podem definir sessões de negociação personalizadas, como intervalos de negociação diferentes, dias “sem negociação” e negociações contínuas de 24 horas. Para instrumentos sintéticos, o QuantOffice define automaticamente os intervalos da sessão de negociação como a interseção das sessões de negociação para as trocas de fonte do instrumento sintético.
Estratégias e Contas.
Estratégias podem ser definidas como “sub” estratégias de “meta” estratégias. Da mesma forma, as contas de negociação podem ser agrupadas em contas principais.
Mecanismo de relatórios.
O QuantOffice vem com um conjunto de relatórios padrão, incluindo relatórios de comércio (pedido e execução), desempenho (P & amp; L, levantamento, Sharpe, Sortino, etc.). Existem vários critérios de relatório definíveis, como intervalo de tempo, estratégia, grupos de estratégias, bem como a capacidade de criar relatórios definidos pelo usuário.
Implantação de produção.
Uma vez criados e otimizados, os modelos que estão prontos para a implantação de produção são implantados como está em QuantServer: UHF Trader. Como tal, não há “risco de implantação de modelo” que pode ocorrer quando um modelo é reprojetado no ambiente de negociação de produção.
Além disso, tendo implantado o modelo em produção, os usuários podem ver o desempenho real do modelo em relação aos dados de mercado em tempo real no QuantOffice - o mesmo ambiente em que o modelo foi criado e otimizado.
“Modo de aquecimento”: Transição contínua da simulação para a produção.
Um problema clássico ao migrar para a implantação da produção é que a estratégia precisa "conhecer" todos os seus indicadores de séries temporais com base em dados históricos anteriores. O QuantOffice pode ser executado no “modo de aquecimento”, em cujo estado ele verifica constantemente o “tempo de estratégia” em relação aos registros de data e hora dos dados de mercado. Assim, o QuantOffice executa a estratégia em dados históricos até que os dados em tempo real sejam alcançados, quando os sinais de negociação geram pedidos de negociação em tempo real.
Gerenciamento de execução de pedidos.
Particularmente em estratégias de negociação de alta frequência com baixas margens por negociação, o desempenho de qualquer geração alfa é altamente dependente do sucesso da tradução de sinais de negociação em transações executadas com escorregamentos mínimos. Para permitir um acoplamento estreito entre a geração alfa e a execução de ordens, o QuantOffice possui capacidade de execução de ordens onde os usuários podem definir seus próprios algoritmos de execução.
Simulador de Negociação.
Um dos principais desafios na criação bem-sucedida de estratégias de geração alfa é minimizar a diferença nos retornos observados durante o teste de retorno e os retornos realmente obtidos durante a negociação ao vivo. Além de evitar o “overfitting” da estratégia para o conjunto de dados de treinamento, um componente-chave para obter consistência de retorno entre o backtesting e a produção é um simulador de negociação eficaz. O simulador de negociação QuantOffice permite o controle preciso das premissas de negociação, por exemplo, especificando o número de pulsos que decorrem entre a criação e a execução do pedido, conclusão do pedido de porcentagem.
Arquitetura e Design.
O QuantOffice é escrito em C # e é executado no Windows. Uma API rica e documentada permite interação direta com o ambiente QuantOffice. Os usuários também podem criar seus modelos, ou usar modelos existentes, escritos em C ++ e usar a API do QuantOffice para integrá-los ao ambiente do QuantOffice, com acesso total ao TimeBase e ao QuantServer.
Para uma demonstração, entre em contato conosco pelo sales @ deltixlab ou ligue para 1-800-856-6120.
QuantOffice.
Descoberta Alfa e Execução Otimizada.
O QuantOffice é o produto para o desenvolvimento visual, depuração e back-testing de estratégias integradas Alpha / EMS usando C # e Dot Net. Ele fornece uma gama completa de eventos (por exemplo, OnBarClose, OnBarOpen, OnTick, OnOrderBookChange) para granularidade de nível de instrumento e portfólio e permite que combinações de periodicidade diária, intra-dia, tick e eventos personalizados sejam usadas na criação de ordem proprietária algoritmos de execução. Uma vez que uma estratégia tenha sido aperfeiçoada, a estratégia (representada pelo código C #) é publicada no Strategy Trading Server para execução da produção. Dados de séries temporais para back-testing, simulação e negociação de produção são fornecidos pela conectividade com o banco de dados TimeBase.
Designer de estratégia visual.
O QuantOffice: Studio fornece um ambiente de desenvolvimento completo em C #, incluindo integração bidirecional com o Microsoft Visual Studio, Matlab e R. O QuantOffice: Studio também oferece um rico conjunto de bibliotecas de indicadores técnicos padrão da indústria, modelos estatísticos e econométricos para desenvolver estratégias. Além de criar estratégias e modelos em C #, os usuários também podem usar o construtor de lógica de processo visual. Usando “arrastar e soltar”, os usuários criam um diagrama de fluxo de lógica de processo; pressionando um botão, em seguida, gera o código C # subjacente. Por outro lado, os usuários podem gerar o diagrama lógico do processo a partir do código; isto é, eles podem alternar entre o código e a representação gráfica da estratégia ou modelo.
Processamento de Eventos Complexos (CEP)
O QuantOffice é implementado com o TimeBase como sua fonte de dados. Como tal, o QuantOffice utiliza o barramento de mensagens integrado do TimeBase para o CEP. Os desenvolvedores de estratégia podem usar eventos fornecidos (por exemplo, OnBarClose, OnBarOpen, OnTick) ou desenvolver eventos mais sofisticados, por exemplo eventos criados como saída interina da própria estratégia, ou uma “meta-estratégia”, que é um modelo que orquestra outras “sub-estratégias”.
Análise Visual Rápida.
A saída de estratégias (indicadores, sinais de negociação, ordens, execuções e P & L) é rapidamente exibida graficamente, nos níveis de instrumento e portfólio. Inspeção microscópica desta saída pode ser realizada para ver o movimento de ticks dentro de barras e a geração de sinais, ordens e execuções em periodicidades de ticks. Isso permite uma rápida avaliação, refinamento e reexecução de modelos em um processo iterativo. O desempenho do gráfico é extraordinário: leva apenas alguns segundos para testar todos os instrumentos no S & amp; P500 ao longo dos anos de dados de ticks.
Todos os dados também podem ser exibidos em forma de tabela. Por exemplo, clicar com o botão direito do mouse em um único ponto em um gráfico mostrará todos os dados de mercado subjacentes antes, depois e depois desse ponto. Todos os dados podem ser despejados nos formatos Excel, csv e PDF.
Atuação.
A operação de tempo de execução dos modelos (nos modos de back-testing e simulação) é imensamente rápida, como resultado do processamento de mensagens medido em milhões de registros por segundo. A produção de modelos operando em centenas de instrumentos ao longo de anos de dados de ticks leva literalmente segundos. Além da engenharia superior, o desempenho do QuantOffice é aprimorado pela capacidade de pré-carregar eventos do TimeBase no cache de memória.
Instrumentos Suportados.
Ações, opções, futuros, moedas, pares, cestas e instrumentos sintéticos personalizados são suportados. Instrumentos sintéticos vão desde cestas até a produção de estratégias.
Dados e periodicidades suportados.
São suportados dados de periodicidade diária, intra-dia e tick, Nível I e Nível II (profundidade de mercado / carteira de pedidos), notícias e dados fundamentais. Os usuários podem combinar periodicidades diferentes para construir uma estratégia. Por exemplo, o usuário pode usar dados fundamentais trimestrais combinados com dados de barras diárias para rebalanceamento diário de portfólios e dados de barra de minutos, notícias ou ticks para refinamento de estratégias de execução.
Criação de Bar.
Além de acessar as barras baseadas em tempo criadas pelo TimeBase, o QuantOffice pode ser usado para criar barras usando técnicas mais complexas, que são então armazenadas no TimeBase. Por exemplo, os usuários podem definir lógica para geração de barras “por volume igual” ou “por número de comércio igual”. Essas barras são armazenadas no TimeBase em tempo real e são acessíveis ao QuantOffice em tempo real.
Otimização.
O QuantOffice suporta a otimização de parâmetros de modelos por métodos de força bruta, genética e dinâmica (walk-forward). Uma das características mais interessantes da otimização dinâmica é a capacidade de definir uma “meta-estratégia”, ou seja, uma estratégia que controla, em relação a quando elas são executadas, outras “sub” estratégias criadas no QuantOffice.
Calendários de Negociação, Sessões de Negociação e Trocas.
O QuantOffice mantém calendários comerciais e feriados para todas as trocas. Dentro dessas restrições, os usuários podem definir sessões de negociação personalizadas, como intervalos de negociação diferentes, dias “sem negociação” e negociações contínuas de 24 horas. Para instrumentos sintéticos, o QuantOffice define automaticamente os intervalos da sessão de negociação como a interseção das sessões de negociação para as trocas de fonte do instrumento sintético.
Estratégias e Contas.
Estratégias podem ser definidas como “sub” estratégias de “meta” estratégias. Da mesma forma, as contas de negociação podem ser agrupadas em contas principais.
Mecanismo de relatórios.
O QuantOffice vem com um conjunto de relatórios padrão, incluindo relatórios de comércio (pedido e execução), desempenho (P & amp; L, levantamento, Sharpe, Sortino, etc.). Existem vários critérios de relatório definíveis, como intervalo de tempo, estratégia, grupos de estratégias, bem como a capacidade de criar relatórios definidos pelo usuário.
Implantação de produção.
Uma vez criados e otimizados, os modelos que estão prontos para a implantação de produção são implantados como está em QuantServer: UHF Trader. Como tal, não há “risco de implantação de modelo” que pode ocorrer quando um modelo é reprojetado no ambiente de negociação de produção.
Além disso, tendo implantado o modelo em produção, os usuários podem ver o desempenho real do modelo em relação aos dados de mercado em tempo real no QuantOffice - o mesmo ambiente em que o modelo foi criado e otimizado.
“Modo de aquecimento”: Transição contínua da simulação para a produção.
Um problema clássico ao migrar para a implantação da produção é que a estratégia precisa "conhecer" todos os seus indicadores de séries temporais com base em dados históricos anteriores. O QuantOffice pode ser executado no “modo de aquecimento”, em cujo estado ele verifica constantemente o “tempo de estratégia” em relação aos registros de data e hora dos dados de mercado. Assim, o QuantOffice executa a estratégia em dados históricos até que os dados em tempo real sejam alcançados, quando os sinais de negociação geram pedidos de negociação em tempo real.
Gerenciamento de execução de pedidos.
Particularmente em estratégias de negociação de alta frequência com baixas margens por negociação, o desempenho de qualquer geração alfa é altamente dependente do sucesso da tradução de sinais de negociação em transações executadas com escorregamentos mínimos. Para permitir um acoplamento estreito entre a geração alfa e a execução de ordens, o QuantOffice possui capacidade de execução de ordens onde os usuários podem definir seus próprios algoritmos de execução.
Simulador de Negociação.
Um dos principais desafios na criação bem-sucedida de estratégias de geração alfa é minimizar a diferença nos retornos observados durante o teste de retorno e os retornos realmente obtidos durante a negociação ao vivo. Além de evitar o “overfitting” da estratégia para o conjunto de dados de treinamento, um componente-chave para obter consistência de retorno entre o backtesting e a produção é um simulador de negociação eficaz. O simulador de negociação QuantOffice permite o controle preciso das premissas de negociação, por exemplo, especificando o número de pulsos que decorrem entre a criação e a execução do pedido, conclusão do pedido de porcentagem.
Arquitetura e Design.
O QuantOffice é escrito em C # e é executado no Windows. Uma API rica e documentada permite interação direta com o ambiente QuantOffice. Os usuários também podem criar seus modelos, ou usar modelos existentes, escritos em C ++ e usar a API do QuantOffice para integrá-los ao ambiente do QuantOffice, com acesso total ao TimeBase e ao QuantServer.
Para uma demonstração, entre em contato conosco pelo sales @ deltixlab ou ligue para 1-800-856-6120.
Estratégias de negociação automatizadas usando c #
Embora muitas opções estejam disponíveis, os métodos mais comuns de automação de sistemas de negociação são:
API direta.
Escrevendo diretamente para a API do mecanismo de roteamento de pedidos para permitir a entrada de pedidos, modificações e relatórios mais avançados e personalizáveis. Este método é o mais difícil de implementar, requerendo conhecimento avançado de várias linguagens de programação, incluindo C ++ e C #. Tipicamente reservado para desenvolvedores de sistemas mais experientes, este método geralmente fornece a menor latência enquanto permite manipulação de pedidos e tipos de pedidos complexos.
Construindo o sistema usando os modelos do construtor de estratégia NinjaTrader ou o ambiente de programação C # Ao executar um sistema nativamente no NinjaTrader, o sistema se comunica diretamente com a API do mecanismo de roteamento de pedidos e pode acomodar manipulação de pedidos mais avançada enquanto diminui latência e erros.
Escrevendo diretamente para o mecanismo de roteamento de ordens utilizando computadores construídos sob encomenda executando o sistema operacional Linux ou UNIX. Possivelmente, o meio mais difícil de implementar a automação, embora muitas vezes o meio mais rápido e confiável de automatizar a execução de algoritmos avançados e estratégias de negociação.
Integração DLL.
As DLLs podem ser usadas para se comunicar diretamente com o software de roteamento de pedidos, permitindo opções mais avançadas de manuseio de pedidos, embora exijam mais experiência com codificação.
Mensagens SMTP.
A automação de SMTP usa um pacote de software de terceiros existente para extrair dados e calcular sinais que são enviados a um mecanismo de roteamento de ordens por meio do protocolo SMTP. Rápido e fácil de configurar e testar, o uso do SMTP tem sido a escolha dos traders do sistema por anos.
Integração TradeStation Usando a função SMTP para se comunicar entre TradeStation e NinjaTrader, as estratégias construídas no Easylanguage podem ser configuradas e testadas em minutos. É necessária alguma configuração inicial para personalizar a sincronização e outras opções para ajudar a manter o sistema alinhado com os preenchimentos reais. Escrevendo diretamente para o mecanismo de roteamento de ordens utilizando computadores construídos sob encomenda executando o sistema operacional Linux ou UNIX. Possivelmente, o meio mais difícil de implementar a automação, embora muitas vezes o meio mais rápido e confiável de automatizar a execução de algoritmos avançados e estratégias de negociação.
OIF (Order Instruction Files)
Semelhante ao SMTP que usa aplicativos de terceiros para gerar os sinais de compra ou venda, o OIF facilita a automação ao criar instantaneamente arquivos de instruções no disco rígido do computador, automatizando a execução.
Como identificar estratégias de negociação algorítmicas.
Como identificar estratégias de negociação algorítmicas.
Neste artigo, quero apresentar os métodos pelos quais eu mesmo identifico estratégias lucrativas de negociação algorítmica. Nosso objetivo hoje é entender detalhadamente como encontrar, avaliar e selecionar tais sistemas. Explicarei como as estratégias de identificação envolvem tanto a preferência pessoal quanto o desempenho da estratégia, como determinar o tipo e a quantidade de dados históricos para testes, como avaliar imparcialmente uma estratégia de negociação e, finalmente, como proceder para a fase de backtesting e implementação estratégica.
Identificando suas próprias preferências pessoais para negociação.
Para ser um profissional bem-sucedido - seja de forma discreta ou algorítmica - é necessário fazer algumas perguntas honestas. Negociação fornece-lhe a capacidade de perder dinheiro a um ritmo alarmante, por isso é necessário "conhecer-se", tanto quanto é necessário compreender a sua estratégia escolhida.
Eu diria que a consideração mais importante no comércio é estar ciente de sua própria personalidade. O comércio e o comércio algorítmico, em particular, exigem um grau significativo de disciplina, paciência e distanciamento emocional. Como você está permitindo que um algoritmo realize sua negociação para você, é necessário que ele seja resolvido para não interferir na estratégia quando ela estiver sendo executada. Isso pode ser extremamente difícil, especialmente em períodos de redução prolongada. No entanto, muitas estratégias que se mostraram altamente lucrativas em um backtest podem ser arruinadas pela simples interferência. Entenda que, se você deseja entrar no mundo do comércio algorítmico, será testado emocionalmente e, para ter sucesso, é necessário superar essas dificuldades!
A próxima consideração é uma das vezes. Você tem um emprego a tempo inteiro? Você trabalha meio período? Você trabalha em casa ou tem um longo trajeto todos os dias? Essas perguntas ajudarão a determinar a frequência da estratégia que você deve procurar. Para aqueles que trabalham em tempo integral, uma estratégia de futuros intradiários pode não ser apropriada (pelo menos até que seja totalmente automatizada!). Suas limitações de tempo também ditarão a metodologia da estratégia. Se a sua estratégia é freqüentemente negociada e depende de feeds de notícias caros (como um terminal da Bloomberg), você terá claramente que ser realista em relação à sua capacidade de executar isso com sucesso no escritório! Para aqueles de vocês com muito tempo, ou as habilidades para automatizar sua estratégia, você pode querer olhar para uma estratégia de negociação de alta frequência (HFT) mais técnica.
Acredito que é necessário realizar pesquisas contínuas em suas estratégias de negociação para manter um portfólio consistentemente lucrativo. Poucas estratégias permanecem "sob o radar" para sempre. Portanto, uma parte significativa do tempo destinado à negociação será na realização de pesquisas em andamento. Pergunte a si mesmo se você está preparado para fazer isso, pois pode ser a diferença entre rentabilidade forte ou um declínio lento em direção a perdas.
Você também precisa considerar seu capital comercial. O valor mínimo ideal geralmente aceito para uma estratégia quantitativa é de 50.000 USD (aproximadamente £ 35.000 para nós no Reino Unido). Se eu estivesse começando de novo, começaria com uma quantia maior, provavelmente perto de 100.000 USD (aproximadamente £ 70.000). Isso ocorre porque os custos de transação podem ser extremamente caros para as estratégias de média a alta frequência e é necessário ter capital suficiente para absorvê-los em tempos de rebaixamento. Se você está pensando em começar com menos de 10.000 dólares, então você precisará restringir-se a estratégias de baixa frequência, negociando em um ou dois ativos, já que os custos de transação irão rapidamente engolir seus retornos. A Interactive Brokers, que é uma das corretoras mais amigáveis para aqueles com habilidades de programação, devido à sua API, tem uma conta de varejo de no mínimo 10.000 USD.
A habilidade de programação é um fator importante na criação de uma estratégia automatizada de negociação algorítmica. Ter conhecimento em uma linguagem de programação como C ++, Java, C #, Python ou R permitirá que você crie o armazenamento de dados de ponta a ponta, mecanismo de backtest e sistema de execução por conta própria. Isso tem uma série de vantagens, das quais a principal é a capacidade de estar completamente ciente de todos os aspectos da infraestrutura de negociação. Ele também permite que você explore as estratégias de frequência mais alta, pois você estará no controle total da sua "pilha de tecnologia". Embora isso signifique testar seu próprio software e eliminar bugs, também significa mais tempo gasto na codificação de infraestrutura e menos na implementação de estratégias, pelo menos na primeira parte de sua carreira de negociação de algoritmos. Você pode achar que está confortável negociando no Excel ou no MATLAB e pode terceirizar o desenvolvimento de outros componentes. Eu não recomendaria isso, no entanto, especialmente para aqueles que operam em alta freqüência.
Você precisa se perguntar o que você espera alcançar por negociação algorítmica. Você está interessado em uma renda regular, em que você espera obter ganhos de sua conta de negociação? Ou, você está interessado em um ganho de capital a longo prazo e pode se dar ao luxo de negociar sem a necessidade de levantar fundos? Dependência de renda irá ditar a frequência da sua estratégia. Retiradas de renda mais regulares exigirão uma estratégia de negociação de frequência mais alta com menos volatilidade (ou seja, um índice de Sharpe mais alto). Os operadores de longo prazo podem ter uma frequência de negociação mais tranqüila.
Finalmente, não se iluda com a noção de se tornar extremamente rico em um curto espaço de tempo! Algo negociação não é um esquema de enriquecimento rápido - se alguma coisa pode ser um esquema de tornar-se pobre rápido. É preciso muita disciplina, pesquisa, diligência e paciência para ter sucesso no comércio algorítmico. Pode levar meses, se não anos, para gerar lucratividade consistente.
Idéias de Negociação Algorítmica de Sourcing.
Apesar das percepções comuns em contrário, é bastante simples localizar estratégias de negociação lucrativas no domínio público. Nunca as ideias de negociação foram mais prontamente disponíveis do que são hoje. Revistas de finanças acadêmicas, servidores de pré-impressão, blogs de negociação, fóruns de negociação, revistas semanais de negociação e textos especializados fornecem milhares de estratégias de negociação com as quais basear suas idéias.
Nosso objetivo como pesquisadores de comércio quantitativo é estabelecer um pipeline de estratégia que nos fornecerá um fluxo de ideias de negociação em andamento. Idealmente, queremos criar uma abordagem metódica para a terceirização, avaliação e implementação de estratégias com as quais nos deparamos. Os objetivos do pipeline são gerar uma quantidade consistente de novas idéias e nos fornecer uma estrutura para rejeitar a maioria dessas idéias com o mínimo de consideração emocional.
Devemos ser extremamente cuidadosos para não deixar que vieses cognitivos influenciem nossa metodologia de tomada de decisão. Isso pode ser tão simples quanto ter uma preferência por uma classe de ativos sobre outra (ouro e outros metais preciosos vêm à mente) porque eles são percebidos como mais exóticos. Nosso objetivo deve ser sempre encontrar estratégias consistentemente lucrativas, com expectativa positiva. A escolha da classe de ativos deve ser baseada em outras considerações, como restrições de capital comercial, taxas de corretagem e capacidades de alavancagem.
Se você não está familiarizado com o conceito de uma estratégia de negociação, então o primeiro lugar a olhar é com livros de texto estabelecidos. Os textos clássicos fornecem uma ampla gama de ideias mais simples e diretas, com as quais você pode se familiarizar com a negociação quantitativa. Aqui está uma seleção que eu recomendo para aqueles que são novos no comércio quantitativo, que gradualmente se tornam mais sofisticados conforme você trabalha na lista:
Para uma lista mais longa de livros de negociações quantitativas, visite a lista de leitura QuantStart.
O próximo lugar para encontrar estratégias mais sofisticadas é com fóruns de negociação e blogs de negociação. No entanto, uma nota de cautela: Muitos blogs de negociação contam com o conceito de análise técnica. A análise técnica envolve a utilização de indicadores básicos e psicologia comportamental para determinar tendências ou padrões de reversão nos preços dos ativos.
Apesar de ser extremamente popular no espaço comercial geral, a análise técnica é considerada um tanto ineficaz na comunidade financeira quantitativa. Alguns sugeriram que não é melhor do que ler um horóscopo ou estudar folhas de chá em termos de seu poder preditivo! Na realidade, existem indivíduos bem sucedidos fazendo uso de análise técnica. No entanto, como pessoas com uma caixa de ferramentas matemática e estatística mais sofisticada à nossa disposição, podemos facilmente avaliar a eficácia de tais estratégias baseadas em TA e tomar decisões baseadas em dados em vez de basear as nossas em considerações emocionais ou preconceitos.
Aqui está uma lista de blogs e fóruns de negociação algorítmica bem respeitados:
Depois de ter alguma experiência em avaliar estratégias mais simples, é hora de olhar para as ofertas acadêmicas mais sofisticadas. Algumas revistas acadêmicas serão de difícil acesso, sem altas assinaturas ou custos únicos. Se você é um membro ou ex-aluno de uma universidade, você deve ser capaz de obter acesso a alguns desses periódicos financeiros. Caso contrário, você pode ver os servidores de pré-impressão, que são repositórios da Internet de rascunhos atrasados de trabalhos acadêmicos que estão sendo revisados por especialistas. Como estamos interessados somente em estratégias que podemos replicar com sucesso, fazer backtest e obter lucratividade, uma revisão por pares é de menor importância para nós.
A principal desvantagem das estratégias acadêmicas é que muitas vezes elas podem estar desatualizadas, exigir dados históricos obscuros e caros, negociar em classes de ativos ilíquidos ou não levar em conta taxas, desvios ou spread. Também pode não estar claro se a estratégia de negociação deve ser executada com ordens de mercado, ordens de limite ou se ela contém perdas de parada, etc. Assim, é absolutamente essencial replicar a estratégia você mesmo, fazer o backtest e adicionar transações realistas. custos que incluem tantos aspectos das classes de ativos que você deseja negociar.
Aqui está uma lista dos servidores de pré-impressão mais populares e revistas financeiras que você pode obter idéias de:
Que tal formar suas próprias estratégias quantitativas? Isso geralmente requer (mas não está limitado a) conhecimento em uma ou mais das seguintes categorias:
Microestrutura de mercado - Para estratégias de maior frequência, em particular, pode-se fazer uso da microestrutura de mercado, ou seja, o entendimento da dinâmica da carteira de pedidos para gerar rentabilidade. Diferentes mercados terão várias limitações tecnológicas, regulamentações, participantes do mercado e restrições que serão abertas à exploração por meio de estratégias específicas. Esta é uma área muito sofisticada e os profissionais de varejo terão dificuldade em ser competitivos neste espaço, particularmente porque a competição inclui fundos de hedge quantitativos grandes e bem capitalizados com fortes capacidades tecnológicas. Estrutura do fundo - Fundos de investimento agregados, tais como fundos de pensão, parcerias de investimento privado (hedge funds), consultores de negociação de commodities e fundos mútuos são limitados tanto pela forte regulação quanto por suas grandes reservas de capital. Assim, certos comportamentos consistentes podem ser explorados com aqueles que são mais ágeis. Por exemplo, grandes fundos estão sujeitos a restrições de capacidade devido ao seu tamanho. Assim, se eles precisarem rapidamente descarregar (vender) uma quantidade de títulos, terão que escalonar para evitar "movimentar o mercado". Algoritmos sofisticados podem tirar proveito disso e de outras idiossincrasias, em um processo geral conhecido como arbitragem da estrutura do fundo. Aprendizado de máquina / inteligência artificial - Os algoritmos de aprendizado de máquina se tornaram mais prevalentes nos últimos anos nos mercados financeiros. Classificadores (como Naive-Bayes, et al.) Correspondentes de função não-linear (redes neurais) e rotinas de otimização (algoritmos genéticos) têm sido usados para prever caminhos de ativos ou otimizar estratégias de negociação. Se você tiver experiência nessa área, poderá ter algumas dicas sobre como determinados algoritmos podem ser aplicados a determinados mercados.
Existem, é claro, muitas outras áreas para os quantos investigarem. Discutiremos como detalhar as estratégias personalizadas em um artigo posterior.
Ao continuar a monitorar essas fontes semanalmente ou diariamente, você está se preparando para receber uma lista consistente de estratégias de diversas fontes. O próximo passo é determinar como rejeitar um grande subconjunto dessas estratégias, a fim de minimizar o desperdício de tempo e recursos de backtesting em estratégias que provavelmente não serão lucrativas.
Avaliação de estratégias de negociação.
A primeira e indiscutivelmente mais óbvia consideração é se você realmente entende a estratégia. Você seria capaz de explicar a estratégia de forma concisa ou requer uma série de advertências e listas de parâmetros sem fim? Além disso, a estratégia tem uma base boa e sólida na realidade? Por exemplo, você poderia apontar para algum raciocínio comportamental ou restrição de estrutura de fundos que possa estar causando o (s) padrão (ões) que você está tentando explorar? Essa restrição seria uma mudança de regime, como uma dramática interrupção no ambiente regulatório? A estratégia depende de regras estatísticas ou matemáticas complexas? Aplica-se a qualquer série temporal financeira ou é específico da classe de ativos na qual se afirma ser rentável? Você deve estar constantemente pensando sobre esses fatores ao avaliar novos métodos de negociação, caso contrário você pode perder uma quantidade significativa de tempo tentando fazer backtest e otimizar estratégias não lucrativas.
Depois de determinar que você entende os princípios básicos da estratégia, você precisa decidir se ela se encaixa no perfil de personalidade mencionado anteriormente. Esta não é uma consideração tão vaga quanto parece! Estratégias diferem substancialmente em suas características de desempenho. Existem certos tipos de personalidade que podem lidar com períodos mais significativos de levantamento, ou estão dispostos a aceitar um risco maior de retorno maior. Apesar do fato de que nós, como muitos, tentamos eliminar o máximo de viés cognitivo possível e devemos ser capazes de avaliar uma estratégia imparcialmente, os vieses sempre se infiltrarão. Assim, precisamos de meios consistentes e sem emoção para avaliar o desempenho das estratégias. . Aqui está a lista de critérios que julgo uma nova estratégia em potencial:
Metodologia - A estratégia é baseada no momento, na reversão da média, no neutro do mercado, no direcional? A estratégia baseia-se em técnicas estatísticas sofisticadas (ou complexas!) Ou de aprendizado de máquina que são difíceis de entender e requerem um PhD em estatística para entender? Essas técnicas introduzem uma quantidade significativa de parâmetros, o que pode levar a um viés de otimização? É provável que a estratégia resista a uma mudança de regime (ou seja, nova regulação potencial dos mercados financeiros)? Índice de Sharpe - O índice de Sharpe caracteriza heuristicamente a relação recompensa / risco da estratégia. Quantifica quanto retorno você pode obter para o nível de volatilidade suportado pela curva de capital. Naturalmente, precisamos determinar o período e a frequência com que esses retornos e a volatilidade (ou seja, o desvio padrão) são medidos. Uma estratégia de frequência mais alta exigirá uma taxa de amostragem maior do desvio padrão, mas um período de tempo global mais curto de medição, por exemplo. Alavancagem - A estratégia requer alavancagem significativa para ser rentável? A estratégia requer o uso de contratos de derivativos alavancados (futuros, opções, swaps) para fazer um retorno? Esses contratos alavancados podem ter características pesadas de volatilidade e, portanto, podem facilmente levar a chamadas de margem. Você tem o capital comercial e o temperamento para tal volatilidade? Freqüência - A frequência da estratégia está intimamente ligada à sua pilha de tecnologia (e, portanto, expertise tecnológica), ao índice de Sharpe e ao nível geral de custos de transação. Todas as outras questões consideradas, estratégias de maior frequência exigem mais capital, são mais sofisticadas e mais difíceis de implementar. No entanto, supondo que seu mecanismo de backtesting seja sofisticado e livre de erros, eles geralmente terão taxas de Sharpe muito mais altas. Volatilidade - A volatilidade está fortemente relacionada ao "risco" da estratégia. A proporção de Sharpe caracteriza isso. A maior volatilidade das classes de ativos subjacentes, se não protegidas, muitas vezes leva a uma maior volatilidade na curva de capital e, portanto, menores índices de Sharpe. É claro que estou assumindo que a volatilidade positiva é aproximadamente igual à volatilidade negativa. Algumas estratégias podem ter maior volatilidade negativa. Você precisa estar ciente desses atributos. Ganho / Perda, Lucro Médio / Perda - As estratégias diferem em suas características de ganhos / perdas e lucro / prejuízo médio. Pode-se ter uma estratégia muito lucrativa, mesmo se o número de negociações perdedoras exceder o número de negociações vencedoras. As estratégias de impulso tendem a ter esse padrão, pois dependem de um pequeno número de "grandes sucessos" para serem lucrativos. As estratégias de reversão à média tendem a ter perfis opostos nos quais mais dos negócios são "vencedores", mas os negócios perdedores podem ser bastante severos. Drawdown Máximo - O rebaixamento máximo é a maior queda percentual de ponta a ponta na curva de capital da estratégia. As estratégias de dinâmica são bem conhecidas por sofrer de períodos de rebaixamentos prolongados (devido a uma série de muitos comércios de perda incremental). Muitos traders desistirão em períodos de rebaixamento prolongado, mesmo que testes históricos tenham sugerido que isso é "business as usual" para a estratégia. Você precisará determinar qual porcentagem de rebaixamento (e em qual período de tempo) você pode aceitar antes de interromper sua estratégia. Esta é uma decisão altamente pessoal e, portanto, deve ser considerada com cuidado. Capacidade / Liquidez - No nível de varejo, a menos que você esteja negociando com um instrumento altamente ilíquido (como um stock small-cap), você não terá que se preocupar muito com a capacidade da estratégia. A capacidade determina a escalabilidade da estratégia para mais capital. Muitos dos maiores fundos de hedge sofrem com problemas de capacidade significativos à medida que suas estratégias aumentam na alocação de capital. Parâmetros - Determinadas estratégias (especialmente aquelas encontradas na comunidade de aprendizado de máquina) exigem uma grande quantidade de parâmetros. Cada parâmetro extra que uma estratégia requer deixa mais vulnerável ao viés de otimização (também conhecido como "ajuste de curva"). Você deve tentar direcionar as estratégias com o menor número de parâmetros possível ou ter quantidades suficientes de dados para testar suas estratégias. Benchmark - Quase todas as estratégias (a menos que caracterizadas como "retorno absoluto") são medidas em relação a alguns benchmarks de desempenho. O benchmark é geralmente um índice que caracteriza uma grande amostra da classe de ativos subjacente na qual a estratégia negocia. Se a estratégia negociar ações de grande capitalização dos EUA, o S & P500 seria uma referência natural para medir sua estratégia. Você ouvirá os termos "alpha" e "beta", aplicados a estratégias desse tipo. Discutiremos esses coeficientes em profundidade em artigos posteriores.
Observe que não discutimos os retornos reais da estratégia. Por que é isso? Isoladamente, os retornos realmente nos fornecem informações limitadas sobre a eficácia da estratégia. Eles não dão uma visão sobre alavancagem, volatilidade, benchmarks ou requisitos de capital. Assim, as estratégias raramente são julgadas apenas por seus retornos. Sempre considere os atributos de risco de uma estratégia antes de examinar os retornos.
Neste estágio, muitas das estratégias encontradas em seu pipeline serão rejeitadas, pois elas não atenderão às suas necessidades de capital, limitações de alavancagem, tolerância máxima de redução ou preferências de volatilidade. As estratégias que permanecem podem agora ser consideradas para backtesting. No entanto, antes que isso seja possível, é necessário considerar um critério final de rejeição - o dos dados históricos disponíveis sobre os quais testar essas estratégias.
Obtendo dados históricos.
Atualmente, a amplitude dos requisitos técnicos em classes de ativos para armazenamento de dados históricos é substancial. Para manter a competitividade, tanto o lado comprador (fundos) quanto o lado vendedor (bancos de investimento) investem pesadamente em sua infraestrutura técnica. É imperativo considerar sua importância. Em particular, estamos interessados em pontualidade, precisão e requisitos de armazenamento. Agora descreverei os conceitos básicos da obtenção de dados históricos e como armazená-los. Infelizmente este é um tópico muito profundo e técnico, então não poderei dizer tudo neste artigo. No entanto, escreverei muito mais sobre isso no futuro, já que minha experiência anterior no setor financeiro estava principalmente relacionada à aquisição, armazenamento e acesso de dados financeiros.
Na seção anterior, criamos um pipeline de estratégia que nos permitia rejeitar determinadas estratégias com base em nossos critérios pessoais de rejeição. Nesta seção, filtraremos mais estratégias com base em nossas próprias preferências para obter dados históricos. As principais considerações (especialmente no nível do profissional de varejo) são os custos dos dados, os requisitos de armazenamento e seu nível de conhecimento técnico. Também precisamos discutir os diferentes tipos de dados disponíveis e as diferentes considerações que cada tipo de dados nos impõe.
Vamos começar discutindo os tipos de dados disponíveis e as principais questões que precisaremos pensar:
Dados Fundamentais - Incluem dados sobre tendências macroeconômicas, como taxas de juros, inflação, ações corporativas (dividendos, desdobramentos), arquivamentos na SEC, contas corporativas, dados de lucros, relatórios de safra, dados meteorológicos etc. Esses dados costumam ser usados para valorizam empresas ou outros ativos em uma base fundamental, ou seja, por meio de alguns fluxos de caixa futuros esperados. Não inclui séries de preços de ações. Alguns dados fundamentais estão disponíveis gratuitamente em sites do governo. Outros dados históricos históricos de longo prazo podem ser extremamente caros. Os requisitos de armazenamento muitas vezes não são particularmente grandes, a menos que milhares de empresas estejam sendo estudadas de uma só vez. Dados de Notícias - Os dados de notícias são frequentemente de natureza qualitativa. É composto por artigos, posts, postagens de microblog ("tweets") e editorial. Técnicas de aprendizado de máquina, como classificadores, são frequentemente usadas para interpretar sentimentos. Esses dados também costumam estar disponíveis gratuitamente ou são baratos, por meio da assinatura de meios de comunicação. Os bancos de dados de armazenamento de documentos "NoSQL" mais recentes são projetados para armazenar esse tipo de dados qualitativos não estruturados. Dados de Preço do Ativo - Este é o domínio de dados tradicional do quant. Consiste em séries temporais de preços de ativos. Ações (ações), produtos de renda fixa (títulos), commodities e preços de câmbio estão dentro dessa classe. Dados históricos diários geralmente são fáceis de obter para classes de ativos mais simples, como ações. No entanto, depois que a precisão e a limpeza forem incluídas e os desvios estatísticos forem removidos, os dados poderão se tornar caros. Além disso, os dados de série temporal geralmente possuem requisitos de armazenamento significativos, especialmente quando os dados intraday são considerados. Instrumentos Financeiros - Ações, obrigações, futuros e as opções de derivativos mais exóticas têm características e parâmetros muito diferentes. Assim, não existe uma estrutura de banco de dados "tamanho único" que possa acomodá-los. Deve-se dar um cuidado significativo ao projeto e implementação de estruturas de banco de dados para vários instrumentos financeiros. Discutiremos a situação detalhadamente quando chegarmos a construir um banco de dados mestre de títulos em artigos futuros. Freqüência - Quanto maior a frequência dos dados, maiores são os custos e os requisitos de armazenamento. Para estratégias de baixa frequência, os dados diários costumam ser suficientes. Para estratégias de alta frequência, pode ser necessário obter dados em nível de escala e até cópias históricas de dados específicos do livro de ordens da bolsa de valores. A implementação de um mecanismo de armazenamento para esse tipo de dados é muito intensiva em tecnologia e adequada apenas para aqueles com forte histórico técnico / de programação. Benchmarks - As estratégias descritas acima serão frequentemente comparadas a um benchmark. Isso geralmente se manifesta como uma série temporal financeira adicional. Para ações, este é frequentemente um benchmark de ações nacionais, como o índice S & P500 (EUA) ou FTSE100 (Reino Unido). Para um fundo de renda fixa, é útil comparar com uma cesta de títulos ou produtos de renda fixa. A "taxa livre de risco" (ou seja, taxa de juros apropriada) é também outro ponto de referência amplamente aceito. Todas as categorias de classes de ativos possuem uma referência favorecida, portanto, será necessário pesquisar isso com base em sua estratégia específica, se você deseja obter interesse em sua estratégia externamente. Tecnologia - As pilhas de tecnologia por trás de um centro de armazenamento de dados financeiros são complexas. Este artigo pode apenas arranhar a superfície sobre o que está envolvido na construção de um. No entanto, ele gira em torno de um mecanismo de banco de dados, como um RDBMS (Relational Database Management System), como MySQL, SQL Server, Oracle ou um Document Storage Engine (por exemplo, "NoSQL"). Isso é acessado por meio do código de aplicativo "lógica de negócios" que consulta o banco de dados e fornece acesso a ferramentas externas, como MATLAB, R ou Excel. Muitas vezes, essa lógica de negócios é escrita em C ++, C #, Java ou Python. Você também precisará hospedar esses dados em algum lugar, seja em seu próprio computador pessoal ou remotamente por meio de servidores da Internet. Produtos como o Amazon Web Services tornaram isso mais simples e mais barato nos últimos anos, mas ainda exigirão um conhecimento técnico significativo para alcançar de maneira robusta.
Como pode ser visto, uma vez que uma estratégia tenha sido identificada por meio do pipeline, será necessário avaliar a disponibilidade, os custos, a complexidade e os detalhes de implementação de um determinado conjunto de dados históricos. Você pode achar necessário rejeitar uma estratégia baseada somente em considerações de dados históricos. Esta é uma grande área e as equipes de PhDs trabalham em grandes fundos, garantindo que os preços sejam precisos e oportunos. Não subestime as dificuldades de criar um data center robusto para seus fins de backtesting!
Eu quero dizer, no entanto, que muitas plataformas de backtesting podem fornecer esses dados automaticamente para você - a um custo. Assim, você tirará muito da dor da implementação e poderá se concentrar apenas na implementação e otimização da estratégia. Ferramentas como TradeStation possuem essa capacidade. No entanto, minha visão pessoal é implementar o máximo possível internamente e evitar a terceirização de partes da pilha para os fornecedores de software. Eu prefiro estratégias de frequência mais altas devido às suas taxas de Sharpe mais atraentes, mas elas são freqüentemente acopladas à pilha de tecnologia, onde a otimização avançada é crítica.
Agora que discutimos os problemas em torno dos dados históricos, é hora de começar a implementar nossas estratégias em um mecanismo de backtesting. Este será o assunto de outros artigos, pois é uma área de discussão igualmente grande!
No comments:
Post a Comment