Construindo sistemas de negociação automatizados
Construindo Sistemas de Negociação Automatizada.
Com uma introdução ao Visual C ++ 2005 & middot; Tecnologia do Mercado Financeiro.
por Benjamin Van Vliet.
Inscreva-se para guardar sua biblioteca.
Com uma conta OverDrive, você pode salvar suas bibliotecas favoritas para obter informações instantâneas sobre a disponibilidade. Saiba mais sobre as contas OverDrive.
Nos próximos anos, as indústrias proprietárias de hedge funds e de negociação migrarão em grande parte para sistemas de seleção e execução de comércio automatizado. De fato, isso já está acontecendo. Embora vários livros de finanças forneçam código C ++ para derivativos de precificação e realizem cálculos numéricos, nenhum aborda o tópico de uma perspectiva de design do sistema. Este livro será dividido em duas seções? "Técnicas de programação e tecnologia de sistema automatizado de negociação (ATS)?" E ensinar projeto e desenvolvimento do sistema financeiro a partir do zero usando o Microsoft Visual C ++ 2005. MS Visual C ++ 2005 foi escolhido como a implementação principalmente porque a maioria das empresas de trading e grandes bancos desenvolveram e continuam a desenvolver seus algoritmos proprietários em ISO C ++ e Visual C ++ fornece a maior flexibilidade para incorporar esses algoritmos legados em sistemas operacionais. Além disso, o Framework e o ambiente de desenvolvimento fornecem as melhores bibliotecas e ferramentas para o rápido desenvolvimento dos sistemas de negociação.
A primeira seção do livro explica o Visual C ++ 2005 em detalhes e concentra-se no conhecimento de programação requerido para o desenvolvimento automatizado do sistema de negociação, incluindo design orientado a objetos, delegados e eventos, enumerações, geração aleatória de números, temporização e temporizadores e gerenciamento de dados com STL e coleções. Além disso, como a maioria dos códigos legados e de modelagem nos mercados financeiros é feita em ISO C ++, este livro analisa em profundidade vários tópicos avançados relacionados ao gerenciamento e interoperabilidade de memória gerenciada / não gerenciada / COM. Além disso, este livro fornece dezenas de exemplos que ilustram o uso da conectividade de banco de dados com o ADO e um tratamento extensivo de SQL e FIX e XML / FIXML. Tópicos avançados de programação, como encadeamento, soquetes, bem como o uso de C ++ para se conectar ao Excel também são discutidos extensivamente e são suportados por exemplos.
A segunda seção do livro explica preocupações tecnológicas e conceitos de design para sistemas de negociação automatizados. Especificamente, os capítulos são dedicados a lidar com feeds de dados em tempo real, gerenciando pedidos no livro de pedidos de câmbio, seleção de posição e gerenciamento de riscos. Um. dll está incluído no livro que irá emular a conexão com uma API da indústria amplamente utilizada (Trading Technologies, Inc.?™s XTAPI) e fornecerá maneiras de testar algoritmos de gerenciamento de posição e ordem. Padrões de projeto são apresentados para sistemas de tomada de mercado baseados em análises técnicas, bem como para sistemas de mercado usando spreads inter-mercado.
À medida que todos os capítulos giram em torno de programação de computadores para engenharia financeira e desenvolvimento de sistemas de negociação, este livro educará comerciantes, engenheiros financeiros, analistas quantitativos, estudantes de finanças quantitativas e até programadores experientes em questões tecnológicas que giram em torno do desenvolvimento de aplicações financeiras em uma Microsoft ambiente e construção e implementação de sistemas e ferramentas de negociação em tempo real.
Fornece dezenas de exemplos que ilustram as abordagens de programação no livro.
Os capítulos são suportados por capturas de tela, equações, planilhas de exemplo do Excel e código de programação.
Prós e contras de sistemas de negociação automatizados.
Traders e investidores podem transformar regras precisas de entrada, saída e gerenciamento de dinheiro em sistemas de negociação automatizados que permitem que os computadores executem e monitorem os negócios. Uma das maiores atrações da automação estratégica é que ela pode tirar um pouco da emoção do comércio, já que as negociações são feitas automaticamente quando certos critérios são atendidos. Este artigo irá apresentar aos leitores e explicar algumas das vantagens e desvantagens, bem como as realidades, dos sistemas de negociação automatizados. (Para leitura relacionada, consulte O poder das operações do programa.)
O que é um sistema de negociação automatizado?
Sistemas automatizados de negociação, também conhecidos como sistemas mecânicos de negociação, negociação algorítmica, negociação automatizada ou negociação de sistema, permitem que os negociadores estabeleçam regras específicas para entradas e saídas comerciais que, uma vez programadas, podem ser executadas automaticamente através de um computador. As regras de entrada e saída comercial podem ser baseadas em condições simples, como um crossover de média móvel, ou podem ser estratégias complicadas que exigem uma compreensão abrangente da linguagem de programação específica da plataforma de negociação do usuário ou a experiência de um programador qualificado. Os sistemas de negociação automatizados normalmente exigem o uso de software vinculado a um corretor de acesso direto, e quaisquer regras específicas devem ser escritas no idioma de propriedade dessa plataforma. A plataforma TradeStation, por exemplo, usa a linguagem de programação EasyLanguage; A plataforma NinjaTrader, por outro lado, utiliza a linguagem de programação NinjaScript. A Figura 1 mostra um exemplo de uma estratégia automatizada que acionou três negociações durante uma sessão de negociação. (Para leitura relacionada, consulte Comércio global e o mercado de moeda.)
[Os sistemas de negociação automatizada podem usar muitos indicadores técnicos diferentes para definir pontos de entrada e saída. O Curso de Análise Técnica da Investopedia fornece uma visão geral detalhada desses indicadores técnicos e padrões de gráficos que os comerciantes podem usar ao criar sistemas de negociação automatizados.]
Algumas plataformas de negociação têm "wizards" de construção de estratégias que permitem aos usuários fazerem seleções de uma lista de indicadores técnicos comumente disponíveis para construir um conjunto de regras que podem ser automaticamente negociadas. O usuário poderia estabelecer, por exemplo, que um longo comércio será inserido uma vez que a média móvel de 50 dias cruza acima da média móvel de 200 dias em um gráfico de cinco minutos de um instrumento comercial específico. Os usuários também podem inserir o tipo de pedido (mercado ou limite, por exemplo) e quando a negociação será acionada (por exemplo, no fechamento da barra ou abertura da próxima barra) ou usar as entradas padrão da plataforma. Muitos comerciantes, no entanto, optam por programar seus próprios indicadores e estratégias personalizados, ou trabalhar em estreita colaboração com um programador para desenvolver o sistema. Embora isso geralmente requer mais esforço do que usar o assistente da plataforma, ele permite um grau de flexibilidade muito maior e os resultados podem ser mais gratificantes. (Infelizmente, não existe uma estratégia de investimento perfeita que garanta o sucesso. Para mais, consulte Uso de indicadores técnicos para desenvolver estratégias comerciais.)
Uma vez estabelecidas as regras, o computador pode monitorar os mercados para encontrar oportunidades de compra ou venda com base nas especificações da estratégia de negociação. Dependendo das regras específicas, assim que uma transação for efetuada, quaisquer ordens para perdas de parada de proteção, paradas finais e metas de lucro serão automaticamente geradas. Em mercados de rápido movimento, essa entrada instantânea de pedidos pode significar a diferença entre uma pequena perda e uma perda catastrófica no caso de a negociação se mover contra o comerciante.
Vantagens dos Sistemas de Negociação Automatizada.
Há uma longa lista de vantagens em ter um computador monitorando os mercados para oportunidades de negociação e executando as negociações, incluindo:
Minimize Emoções. Sistemas automatizados de negociação minimizam as emoções durante todo o processo de negociação. Ao manter as emoções sob controle, os comerciantes normalmente têm um tempo mais fácil de aderir ao plano. Uma vez que as ordens de negociação são executadas automaticamente uma vez cumpridas as regras de negociação, os comerciantes não poderão hesitar ou questionar o negócio. Além de ajudar os operadores que têm medo de "puxar o gatilho", a negociação automatizada pode refrear aqueles que estão aptos a fazer overtrade - comprar e vender em todas as oportunidades percebidas.
Capacidade de backtest. O backtesting aplica regras de negociação a dados históricos do mercado para determinar a viabilidade da ideia. Ao projetar um sistema de negociação automatizada, todas as regras precisam ser absolutas, sem espaço para interpretação (o computador não pode fazer suposições - é preciso dizer exatamente o que fazer). Os comerciantes podem tomar esses conjuntos precisos de regras e testá-los em dados históricos antes de arriscar dinheiro em negociação ao vivo. Um backtesting cuidadoso permite que os traders avaliem e ajustem uma ideia de negociação e determinem a expectativa do sistema - a quantia média que um trader pode esperar ganhar (ou perder) por unidade de risco. (Oferecemos algumas dicas sobre esse processo que podem ajudar a refazer suas estratégias de negociação atuais. Para mais, consulte Backtesting: Interpreting the Past.)
Preserve Discipline. Como as regras comerciais são estabelecidas e a execução comercial é executada automaticamente, a disciplina é preservada mesmo em mercados voláteis. A disciplina é muitas vezes perdida devido a fatores emocionais, como o medo de sofrer uma perda, ou o desejo de obter um pouco mais de lucro de um comércio. A negociação automatizada ajuda a garantir que a disciplina seja mantida porque o plano de negociação será seguido exatamente. Além disso, o erro do piloto é minimizado e uma ordem para comprar 100 ações não será inserida incorretamente como uma ordem para vender 1.000 ações.
Alcançar Consistência. Um dos maiores desafios na negociação é planejar o comércio e negociar o plano. Mesmo que um plano de negociação tenha o potencial de ser lucrativo, os operadores que ignoram as regras estão alterando qualquer expectativa que o sistema teria. Não existe um plano de negociação que ganhe 100% do tempo - as perdas fazem parte do jogo. Mas as perdas podem ser psicologicamente traumatizantes, de modo que um operador que tenha dois ou três negócios perdedores seguidos pode decidir pular a próxima negociação. Se esta próxima negociação tiver sido um vencedor, o trader já destruiu qualquer expectativa que o sistema tivesse. Os sistemas de negociação automatizados permitem que os negociadores alcancem consistência negociando o plano. (É impossível evitar um desastre sem regras de negociação. Para mais, veja 10 passos para construir um plano de negociação vencedor).
Velocidade de entrada de pedido aprimorada. Como os computadores respondem imediatamente às mudanças nas condições de mercado, os sistemas automatizados são capazes de gerar pedidos assim que os critérios de negociação são atendidos. Entrar ou sair de uma negociação alguns segundos antes pode fazer uma grande diferença no resultado da negociação. Assim que uma posição é inserida, todos os outros pedidos são gerados automaticamente, incluindo perdas de parada de proteção e metas de lucro. Os mercados podem se mover rapidamente, e é desmoralizante ter uma negociação atingindo a meta de lucro ou ultrapassar um nível de stop loss - antes que os pedidos possam ser inseridos. Um sistema de negociação automatizado impede que isso aconteça.
Desvantagens e Realidades dos Sistemas de Negociação Automatizada.
Os sistemas de negociação automatizados possuem muitas vantagens, mas existem algumas quedas e realidades às quais os investidores devem estar cientes.
Falhas mecânicas. A teoria por trás da negociação automatizada faz com que pareça simples: configurar o software, programar as regras e assisti-lo ao comércio. Na realidade, porém, a negociação automatizada é um método sofisticado de negociação, mas não infalível. Dependendo da plataforma de negociação, uma ordem de negociação pode residir em um computador - e não em um servidor. O que isso significa é que, se uma conexão com a Internet for perdida, um pedido pode não ser enviado ao mercado. Também pode haver uma discrepância entre os "negócios teóricos" gerados pela estratégia e o componente da plataforma de entrada de pedidos que os transforma em transações reais. A maioria dos traders deve esperar uma curva de aprendizado ao usar sistemas de negociação automatizados, e geralmente é uma boa ideia começar com pequenos tamanhos de negociação enquanto o processo é refinado.
Monitorização Embora seja ótimo ligar o computador e sair para o dia, os sistemas de negociação automatizados exigem monitoramento. Isso ocorre devido ao potencial de falhas mecânicas, como problemas de conectividade, perdas de energia ou falhas no computador, além de peculiaridades do sistema. É possível que um sistema de negociação automatizado enfrente anomalias que possam resultar em pedidos incorretos, pedidos ausentes ou pedidos duplicados. Se o sistema for monitorado, esses eventos podem ser identificados e resolvidos rapidamente.
Os comerciantes têm a opção de executar seus sistemas de negociação automatizados através de uma plataforma de negociação baseada em servidor, como o Strategy Runner. Essas plataformas freqüentemente oferecem estratégias comerciais para venda, um assistente para que os comerciantes possam projetar seus próprios sistemas ou a capacidade de hospedar sistemas existentes na plataforma baseada no servidor. Por uma taxa, o sistema de negociação automatizado pode pesquisar, executar e monitorar negócios - com todos os pedidos que residem em seu servidor, resultando em entradas de pedidos potencialmente mais rápidas e confiáveis.
Embora apelando para uma variedade de fatores, os sistemas de negociação automatizados não devem ser considerados substitutos para negociações executadas com cautela. Falhas mecânicas podem acontecer e, como tal, esses sistemas exigem monitoramento. As plataformas baseadas em servidor podem fornecer uma solução para os comerciantes que desejam minimizar os riscos de falhas mecânicas. (Para leitura relacionada, veja Day Trading Strategies For Beginners.)
Construindo Sistemas de Negociação Automatizada.
1ª edição.
Com uma introdução ao Visual C ++ 2005.
Acesso institucional.
Secure Checkout.
Frete grátis.
Nenhuma ordem mínima.
Índice.
Capítulo 1 Introdução.
Seção I: Introdução ao Visual C ++ 2005.
Capítulo 2 O quadro.
Capítulo 3 Referências de rastreamento.
Capítulo 4 Classes e Objetos.
Capítulo 5 Tipos de referência.
Capítulo 6 Tipos de valor.
Capítulo 7 Objetos não gerenciados.
Capítulo 8 Composição.
Capítulo 9 Propriedades.
Capítulo 10 Estruturas e enumerações.
Capítulo 11 Herança.
Capítulo 12 Conversão e fundição.
Capítulo 13 Sobrecarga do operador.
Capítulo 14 Delegados e Eventos.
Capítulo 15 Arrays.
Capítulo 16 Gerando Números Aleatórios.
Capítulo 17 Tempo e Temporizadores.
Capítulo 18 Fluxos de entrada e saída.
Capítulo 19 Manipulação de Exceções.
Capítulo 20 Coleções.
Capítulo 21 STL / STL.
Capítulo 22 DataSets.
Capítulo 23 Conexão a bancos de dados.
Capítulo 24 Linguagem de consulta estruturada.
Capítulo 26 Protocolo de troca de informações financeiras.
Capítulo 27 Serialização.
Capítulo 28 Serviços do Windows.
Capítulo 29 Configuração e Pacotes de Instalação.
Seção II: Concorrência.
Capítulo 30 Threading.
Capítulo 31 Classes de Sincronização.
Capítulo 32 Sockets.
Seção III: interoperabilidade e conectividade.
Capítulo 33 Marshaling.
Capítulo 34 Ponteiros Internos e de Fixação.
Capítulo 35 Conectando-se a DLLs gerenciadas.
Capítulo 36 Conectando às DLLs do Componenet Object Model (COM) com Interoperabilidade COM.
Capítulo 37 Conexão a DLLs C ++ com Serviços de Invocação de Plataforma.
Capítulo 38 Conexão ao Excel.
Capítulo 39 Conexão ao TraderAPI.
Capítulo 40 Conexão ao XTAPIConnection_Example.
Seção IV: Sistemas de Negociação Automatizada.
Capítulo 41 Building Trading Systems.
Capítulo 42 K "V Metodologia de Desenvolvimento do Sistema de Negociação.
Capítulo 43 Classes do Sistema de Negociação Automatizado.
Capítulo 44 Single-Threaded, Technical Analysis System.
Capítulo 45 Padrão de Design do Produtor / Consumidor.
Capítulo 46 Multithreaded, Statistical Arbitrage System.
Descrição.
Nos próximos anos, as indústrias proprietárias de hedge funds e de negociação migrarão em grande parte para sistemas de seleção e execução de comércio automatizado. De fato, isso já está acontecendo. Embora vários livros de finanças forneçam código C ++ para derivativos de precificação e realizem cálculos numéricos, nenhum aborda o tópico de uma perspectiva de design do sistema. Este livro será dividido em duas seções: técnicas de programação e tecnologia de sistema de negociação automatizada (ATS) e ensinar o design e o desenvolvimento de sistemas financeiros de forma absoluta usando o Microsoft Visual C ++ 2005. O MS Visual C ++ 2005 foi escolhido como o idioma de implementação principalmente porque a maioria das empresas de trading e grandes bancos desenvolveram e continuam a desenvolver seus algoritmos proprietários em ISO C ++ e Visual C ++ fornece a maior flexibilidade para incorporar esses algoritmos legados em sistemas operacionais. Além disso, o Framework e o ambiente de desenvolvimento fornecem as melhores bibliotecas e ferramentas para o rápido desenvolvimento dos sistemas de negociação. A primeira seção do livro explica o Visual C ++ 2005 em detalhes e concentra-se no conhecimento de programação requerido para o desenvolvimento automatizado do sistema de negociação, incluindo design orientado a objetos, delegados e eventos, enumerações, geração aleatória de números, temporização e temporizadores e gerenciamento de dados com STL e coleções. Além disso, como a maioria dos códigos legados e de modelagem nos mercados financeiros é feita em ISO C ++, este livro analisa em profundidade vários tópicos avançados relacionados ao gerenciamento e interoperabilidade de memória gerenciada / não gerenciada / COM. Além disso, este livro fornece dezenas de exemplos que ilustram o uso da conectividade de banco de dados com o ADO e um tratamento extensivo de SQL e FIX e XML / FIXML. Tópicos avançados de programação, como encadeamento, soquetes, bem como o uso de C ++ para se conectar ao Excel também são discutidos extensivamente e são suportados por exemplos. A segunda seção do livro explica preocupações tecnológicas e conceitos de design para sistemas de negociação automatizados. Especificamente, os capítulos são dedicados a lidar com feeds de dados em tempo real, gerenciando pedidos no livro de pedidos de câmbio, seleção de posição e gerenciamento de riscos. Um. dll está incluído no livro que irá emular a conexão com uma API da indústria amplamente utilizada (XTAPI da Trading Technologies, Inc.) e fornecerá maneiras de testar algoritmos de gerenciamento de posição e ordem. Padrões de projeto são apresentados para sistemas de tomada de mercado baseados em análises técnicas, bem como para sistemas de mercado usando spreads inter-mercado. À medida que todos os capítulos giram em torno de programação de computadores para engenharia financeira e desenvolvimento de sistemas de negociação, este livro educará comerciantes, engenheiros financeiros, analistas quantitativos, estudantes de finanças quantitativas e até programadores experientes em questões tecnológicas que giram em torno do desenvolvimento de aplicações financeiras em uma Microsoft ambiente e construção e implementação de sistemas e ferramentas de negociação em tempo real.
Características principais.
Ensina concepção e desenvolvimento de sistemas financeiros desde o início usando o Microsoft Visual C ++ 2005.
Fornece dezenas de exemplos que ilustram as abordagens de programação no livro.
Leituras.
Audiência primária: engenheiros financeiros, analistas quantitativos, programadores em empresas comerciais; pós-graduandos em cursos e programas de engenharia financeira e mercados financeiros.
Rever.
"Construir sistemas automatizados de negociação é uma leitura obrigatória para qualquer pessoa que esteja desenvolvendo sistemas de negociação algorítmica profissional. Ele traz todos os aspectos do design, funcionalidade e implementação do sistema em tempo real em um foco passo a passo claro. Este livro será um manual de referência de primeira escolha para o programador profissional sério no desenvolvimento do sistema de negociação ". - Russell Wojcik, Membro da CME e CBOT, Chefe da Concentração de Estratégia de Negociação, Illinois Institute of Technology "Este livro é um excelente guia para quem está interessado no desenvolvimento de aplicativos comerciais automáticos ou semi-automáticos. Ben cobre o conhecimento de programação necessário para desenvolver o sucesso É necessário que os traders entrem na programação e que os programadores entrem na negociação, além de servir como uma referência útil para o desenvolvimento de ferramentas de negociação mais sofisticadas. " - Sagy P. Mintz, Vice-Presidente, Trading Technologies, Inc.
Classificações e Comentários.
Sobre os autores.
Benjamin Van Vliet Autor.
Ben Van Vliet é professor no Instituto de Tecnologia de Illinois (IIT), onde também atua como diretor associado do M. S. Programa de Mercados Financeiros. No IIT, ele ministra cursos de finanças quantitativas, C ++ e programação, além de design e desenvolvimento automatizado de sistemas de negociação. Ele é vice-presidente do Instituto de Tecnologia de Mercado, onde preside o conselho consultivo do programa do Certificado de Sistema de Negociação (CTSD). Ele também atua como editor de série da série Financial Markets Technology da Elsevier / Academic Press e consulta extensivamente na indústria de mercados financeiros.
O Sr. Van Vliet é também o autor de "Modeling Financial Markets" com Robert Hendry (2003, McGraw Hill) e "Building Automated Trading Systems" (2007, Academic Press. Além disso, ele publicou vários artigos nas áreas de finanças e tecnologia e apresentou sua pesquisa em várias conferências acadêmicas e profissionais.
Afiliações e especialidades.
Professor Titular e Diretor Associado do Programa de Mestrado em Mercados Financeiros, Stuart School of Business, Instituto de Tecnologia de Illinois, EUA.
Solicitar cotação.
Isenção de imposto.
Produtos e amp; Soluções R & D Soluções Clínicas Plataformas de Pesquisa Pesquisa Inteligência Serviços de Educação Autores Editores Revisores Bibliotecários Shop & amp; Descubra Livros e revistas Autor Webshop Sobre a Elsevier Sobre nós Elsevier Connect Carreiras Como podemos ajudar? Centro de Apoio.
Como podemos ajudar?
Como podemos ajudar?
Direitos autorais e cópia; 2018 Elsevier, exceto certos conteúdos fornecidos por terceiros.
Os cookies são usados por este site. Para recusar ou aprender mais, visite nossa página Cookies.
Pesquisa de visitantes da Elsevier.
Estamos sempre procurando maneiras de melhorar a experiência do cliente no Elsevier.
Gostaríamos de pedir-lhe um momento do seu tempo para preencher um breve questionário, no final da sua visita.
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 em negociações quantitativas, 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 utilizar 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. 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 oferecem.
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?
Compartilhar isso:
Compartilhe esta entrada.
Você pode gostar também.
Bom artigo. Eu gostaria de ter cerca de 6 meses atrás. Eu uso QuantConnect porque eu sou um programador C #. Eu achei muito conveniente para poder baixar o teste de Lean e voltar localmente. Vasculhar seu código também é valioso. Eles também fizeram um acordo com a Tradier para negociações de US $ 1. Isso ajuda muito. Eu não sou tão saliente sobre os spreads e a execução do Tradier. O IB pode ser melhor para isso.
Vou dar uma olhada no curso que você mencionou.
Você não mencionou Quantocracy ou RBloggers. Ambos são recursos muito valiosos.
O que você usa para mapear os resultados dos testes de volta? Eu registro OHLC e valores de indicador para csv do evento OnData e estou realmente cansado de usar o Excel para traçar resultados. Eu gostaria de poder apontar um pacote de gráficos para um arquivo de dados e tê-lo apenas ir.
Você já tem um fornecedor de fluxo de ticks?
Eu tenho um pensamento sobre sistemas orientados a eventos. O problema com os eventos é que eles são assíncronos e latentes. Parece que eles são inevitáveis assim que você começa uma corretora envolvida, então eu tenho sonhado com um sistema mais streaming seguindo os princípios da programação funcional.
& # 8211; Injest um fluxo de carrapato ou bar.
& # 8211; Execute-o através de um processo de cálculo de indicadores, execução de análise ou ML e assim por diante.
& # 8211; Receba de volta um sinal.
& # 8211; Envie para o corretor para executar.
Então, em um fluxo separado.
& # 8211; Receba de volta uma resposta do corretor.
O problema, claro, é o estado. Eu tenho margem suficiente para fazer o trade? O que tem no meu portfólio? Como está se saindo? Geralmente, o broker api pode ser consultado para descobrir essas coisas, mas isso leva tempo e é assíncrono. Eu também estou olhando para extensões de Rx. Dessa forma, o sistema pode reagir a mudanças no sistema através do padrão observável.
Eventos são ótimos para cliques do mouse. Não é tão bom para processamento transacional de alto volume.
Esta é exatamente a abordagem que eu fiz com minhas próprias coisas. Essencialmente eu tenho um & # 8216; normal & # 8217; programa que envolve uma pequena parte que é acionada por eventos para falar com o intermediário (IB API). Agora, para o problema do estado. Você tem duas escolhas; obter estado do corretor, ou armazená-lo internamente atualizá-lo quando você receber um preenchimento de volta. Isso significa que há momentos em que você não conhece seu estado ou quando as duas fontes de estado estão potencialmente em conflito (dados incorretos ou atrasos). Parte disso depende da rapidez com que você negocia. A menos que você esteja negociando muito rapidamente, em seguida, pausar se você tiver um conflito de estado, ou você está incerto do estado, é melhor do que prosseguir sem conhecer o seu estado. Eu uso um banco de dados & # 8216; lock & # 8217; paradigma para lidar com isso.
Em relação a quase tudo o que você pediu, você está próximo da resposta em Reative Extension (Rx).
Com Rx indo de carrapatos para velas é trivial.
Indo de velas para indicadores é trivial.
Compor indicadores de outros indicadores é trivial.
Compor posições de indicadores é trivial.
Compor portfólios (como realizados ao longo do tempo) a partir de posições é trivial.
Simular o Modelo de Risco é trivial.
Voltar teste ou negociação ao vivo é simplesmente decidir entre uma transmissão ao vivo de dados ou uma repetição simulada de dados do banco de dados.
A execução é trivial.
A implementação é possível em tudo, de C # a F #, a JavaScript e C ++ em código quase idêntico.
A otimização é feita rapidamente porque o Rx puramente funcional é amplamente paralisável para a GPU.
É verdade que a otimização e a alimentação do efeito da otimização contínua de volta ao back-test não é trivial, mas, dado que é não-trivial de qualquer maneira, eu vou deixar que isso deslize 😉
Puramente Funcional (ou próximo a ele) Rx é, na minha opinião, a única maneira de lidar com a infra-estrutura desse problema.
Eu conheço o sistema que quero negociar. Eu não quero programar ou aprender algo que alguém já conhece. Então, quem posso contratar para pegar o sistema que eu quero usar e automatizá-lo. Ao automatizá-lo, quero dizer, não quero olhar para ele. Vou dar uma olhada nos resultados uma vez por semana e os negócios serão executados sem a minha atenção. Parece estranho para mim que, em 2016, seja preciso muito esforço para tomar um conjunto de regras e executar essas regras no meu corretor.
Eu sugiro inscrever-se com o Quantopian e, em seguida, encontrar alguém dentro da comunidade para construir a estratégia para você. Eles serão capazes de construí-lo para você dentro da plataforma de corretores IB e serão totalmente automatizados.
Deixe-me dizer, porém, que eu acho que você deve monitorá-lo de perto, e não apenas esquecê-lo para o & # 8221 ;.
Construindo Sistemas de Negociação Automatizada: Com uma Introdução ao Visual C ++ 2005.
A primeira seção do livro explica o Visual C ++ 2005 em detalhes e concentra-se no conhecimento de programação requerido para o desenvolvimento automatizado do sistema de negociação, incluindo design orientado a objetos, delegados e eventos, enumerações, geração aleatória de números, temporização e temporizadores e gerenciamento de dados com STL e coleções. Além disso, como a maioria dos códigos legados e de modelagem nos mercados financeiros é feita em ISO C ++, este livro analisa em profundidade vários tópicos avançados relacionados ao gerenciamento e interoperabilidade de memória gerenciada / não gerenciada / COM. Além disso, este livro fornece dezenas de exemplos que ilustram o uso da conectividade de banco de dados com o ADO e um tratamento extensivo de SQL e FIX e XML / FIXML. Tópicos avançados de programação, como encadeamento, soquetes, bem como o uso de C ++ para se conectar ao Excel também são discutidos extensivamente e são suportados por exemplos.
A segunda seção do livro explica preocupações tecnológicas e conceitos de design para sistemas de negociação automatizados. Especificamente, os capítulos são dedicados a lidar com feeds de dados em tempo real, gerenciando pedidos no livro de pedidos de câmbio, seleção de posição e gerenciamento de riscos. Um. dll está incluído no livro que irá emular a conexão com uma API da indústria amplamente utilizada (XTAPI da Trading Technologies, Inc.) e fornecerá maneiras de testar algoritmos de gerenciamento de posição e ordem. Padrões de projeto são apresentados para sistemas de tomada de mercado baseados em análises técnicas, bem como para sistemas de mercado usando spreads inter-mercado.
À medida que todos os capítulos giram em torno de programação de computadores para engenharia financeira e desenvolvimento de sistemas de negociação, este livro educará comerciantes, engenheiros financeiros, analistas quantitativos, estudantes de finanças quantitativas e até programadores experientes em questões tecnológicas que giram em torno do desenvolvimento de aplicações financeiras em uma Microsoft ambiente e construção e implementação de sistemas e ferramentas de negociação em tempo real.
* Fornece dezenas de exemplos ilustrando as abordagens de programação no livro.
* Os capítulos são suportados por capturas de tela, equações, planilhas de amostra do Excel e código de programação.
Отзывы - Написать отзыв.
Избранные страницы.
Содержание.
Другие издания - Просмотреть все.
Недоступно для просмотра - 2007.
Асто встречающиеся слова и выражения.
Популярные отрывки.
Об авторе (2007)
Ben Van Vliet é professor no Instituto de Tecnologia de Illinois (IIT), onde também atua como diretor associado do M. S. Programa de Mercados Financeiros. No IIT, ele ministra cursos de finanças quantitativas, C ++ e programação, além de design e desenvolvimento automatizado de sistemas de negociação. Ele é vice-presidente do Instituto de Tecnologia de Mercado, onde preside o conselho consultivo do programa do Certificado de Sistema de Negociação (CTSD). Ele também atua como editor de série da série Financial Markets Technology da Elsevier / Academic Press e consulta extensivamente na indústria de mercados financeiros.
O Sr. Van Vliet é também o autor de "Modeling Financial Markets" com Robert Hendry (2003, McGraw Hill) e "Building Automated Trading Systems" (2007, Academic Press. Além disso, ele publicou vários artigos nas áreas de finanças e tecnologia e apresentou sua pesquisa em várias conferências acadêmicas e profissionais.
Codificação de Sistemas de Negociação.
Por Justin Kuepper.
Como os sistemas de negociação automatizados são criados?
Este tutorial se concentrará na segunda e na terceira partes deste processo, onde suas regras são convertidas em um código que seu software de negociação pode entender e usar.
Vantagens e desvantagens.
Um sistema automatizado tira a emoção e o trabalho ocupado da negociação, o que permite que você se concentre em melhorar suas regras de estratégia e gerenciamento de dinheiro. Uma vez que um sistema lucrativo é desenvolvido, ele não requer nenhum trabalho de sua parte até que ele quebre, ou as condições do mercado exigem uma mudança. Desvantagens:
Se o sistema não estiver corretamente codificado e testado, grandes perdas podem ocorrer muito rapidamente. Às vezes é impossível colocar certas regras no código, o que dificulta o desenvolvimento de um sistema de negociação automatizado. Neste tutorial, você aprenderá como planejar e projetar um sistema de negociação automatizado, como converter esse design em código que seu computador entenderá, como testar seu plano para garantir o desempenho ideal e, finalmente, como colocar seu sistema em uso.
Комментарии
Отправить комментарий