Sunday 27 August 2017

Design De Sistema De Comércio Algorítmico


Sistema de comércio algorítmico: design e aplicações Cite este artigo como: Wang, F. Dong, K. Deng, X. Frente. Comput. Sci. China (2009) 3: 235. doi: 10.1007s11704-009-0030-6 Este artigo fornece uma visão geral da pesquisa e desenvolvimento em negociação algorítmica e discute questões-chave envolvidas no esforço atual em sua melhoria, o que seria de grande valor para Comerciantes e investidores. Alguns sistemas atuais de negociação algorítmica são introduzidos, juntamente com algumas ilustrações de suas funcionalidades. Em seguida, apresentamos a nossa plataforma chamada FiSim e discutimos o seu design geral, bem como alguns resultados experimentais nas comparações da estratégia do usuário. Otimização de portfólio de negociação algorítmica Recuperação de notícias Sistema de tomada de decisão Design Referências Eriksson S, Roding C. A negociação algorítmica descobriu impactos em uma troca eletrônica de automação crescente na negociação de futuros. Royal Institute of Technology, Estocolmo, 2007 Google Scholar Market Risk e Algorithmic Trading. Livro Branco da AMD Berkowitz S, Logue D, Noser E. O custo total das transações na NYSE. Journal of Finance, 1988, 41: 97112 CrossRef Google Acadêmico MacKinlay A C, Ramaswamy K. Index-Futures Arbitrage eo Comportamento de Preços de Futuros de Índice de Stock. The Review of Financial Studies, 1988, 1 (2): 137158 CrossRef Google Scholar Hogan S, Jarrow R, Warachka M. Arbitragem estatística e testes de eficiência de mercado. Documento de trabalho, 2002 Hogan S, Jarrow R, Teo M. Testar a eficiência do mercado usando a arbitragem estatística com aplicação para estratégias de valor e impulso. Journal of Financial Economics, 2004, 73: 525565 CrossRef Google Acadêmico Gordon Baker, Shashi Tiwari. Comércio Algoritmo: Percepções e Desafios. Working Paper, 2004 Leigh Tesfatsion. Introdução à questão especial sobre economia computacional baseada em agentes. Journal of Economic Dynamics and Control, 2001 Leigh Tesfatsion. Economia computacional baseada em agentes: economias de modelos como sistemas adaptativos complexos. Ciências da Informação, 2003, 149 (4): 263269 Google Scholar Shu-Heng Chen. Inteligência computacional em economia computacional baseada em agente. Inteligência computacional: A Compendium, 2008, 517594 Blake LeBaron. Finanças computacionais baseadas em agentes: leituras sugeridas e pesquisas iniciais. Journal of Economic Dynamics and Control, 1998, 24: 679702 Google Scholar Aki-Hiro Sato. Análise de frequência de cotações de tiras no mercado de câmbio e modelagem baseada em agente: uma abordagem de distância espectral. Physica A: Mecânica estatística e suas aplicações, 2007, 382: 258270 CrossRef Google Scholar Dempster M A H, Romahi Y S. Intraday FX Trading: uma abordagem de aprendizagem de reforço evolutivo, 2002 Christopher Neely, Paul Weller e Rob Dittmar. A análise técnica no mercado de câmbio é rentável Uma abordagem de programação genética. Jornal de análise financeira e quantitativa, 1997, 32 (4): 405426 CrossRef Google Scholar Shu-Heng Chen e Chia-Hsuan Yeh, Programação genética no mercado de ações Artificial Baseado em Agentes. Em: Procedimentos do Congresso de 1999 sobre Cálculo Evolutivo-CEC99, 1999, 2: 834841 CrossRef Google Scholar Shu-Heng Chen. Tendências na modelagem computacional baseada em Agnet da macroeconomia. New Generation Comput, 2004, 23 (1) Christopher J, Neely, Paul A, Weller. Previsão da Volatilidade da Taxa de Câmbio: Programação Genética vs. GARCH e RiskMetrics. Documento de trabalho do Federal Reserve Bank of ST. Louis, 2001 Hendershott T. Trading Eletrônico em Mercados Financeiros. Profissional de TI, 2003, 5 (4): 1014 CrossRef Google Scholar Michael J. Kearns, Luis E. Ortiz, The Penn-Lehman Automated Trading Project. IEEE Intelligent Systems, 2003, 18 (6): 2231 CrossRef Google Scholar Holland J e Miller J. Agentes de adaptação artificial na teoria econômica. American Economic Review: Papers and Proceedings, 1991, 81 (2): 365370 Google Scholar Palmer G, Arthur B, Holland J, LeBaron B e Tayler P. Vida econômica artificial: um modelo simples do mercado de ações. Physica D, 1994, 75: 264274 MATH CrossRef Google Scholar Bolsa de Valores de Xangai. NGTS Part Tech Guide SSE D0602, 56 Bolsa de Valores de Xangai. NGTS Report Trading Model, 610 Informações sobre direitos autorais Higher Education Press e Springer-Verlag GmbH 2009 Autores e Afiliações Feng Wang 1 Keren Dong 2 Xiaotie Deng 2 Email autor 1. Estado Key Lab of Software Engineering Wuhan University Wuhan China 2. Departamento de Ciência da Computação Cidade Universidade de Hong Kong Kowloon, Hong Kong China Sobre este artigo Imprimir ISSN 1673-7350 Online ISSN 1673-7466 Nome do editor SP Educação superior PressAlgorithmic Trading System Architecture Anteriormente neste blog eu escrevi sobre a arquitetura conceitual de um sistema de negociação algorítmico inteligente também Como os requisitos funcionais e não funcionais de um sistema de negociação algorítmica de produção. Desde então, criei uma arquitetura de sistema que, acredito, poderia satisfazer esses requisitos arquitetônicos. Nesta publicação, descreverei a arquitetura seguindo as diretrizes do sistema ISOIECIEEE 42010 e padrão de descrição da arquitetura de engenharia de software. De acordo com este padrão, uma descrição de arquitetura deve: Conter várias visualizações arquitetônicas padronizadas (por exemplo, em UML) e Manter a rastreabilidade entre decisões de design e requisitos arquitetônicos. Definição de arquitetura de software Ainda não existe consenso sobre o que é uma arquitetura de sistemas. No contexto deste artigo, é definida como a infra-estrutura dentro da qual os componentes do aplicativo que satisfazem os requisitos funcionais podem ser especificados, implantados e executados. Os requisitos funcionais são as funções esperadas do sistema e seus componentes. Os requisitos não funcionais são medidas através das quais a qualidade do sistema pode ser medida. Um sistema que satisfaça plenamente seus requisitos funcionais ainda pode deixar de atender às expectativas se os requisitos não funcionais forem deixados insatisfeitos. Para ilustrar este conceito, considere o seguinte cenário: um sistema de negociação algorítmico que você acabou de comprar construído faz excelentes decisões de negociação, mas é completamente inoperável com os sistemas de gerenciamento de riscos e de gestão das organizações. Esse sistema atenderá às suas expectativas Arquitetura conceitual Uma visão conceitual descreve conceitos e mecanismos de alto nível que existem no sistema no mais alto nível de granularidade. Neste nível, o sistema de negociação algorítmica segue uma arquitetura orientada a eventos (EDA) dividida em quatro camadas e dois aspectos arquitetônicos. Para cada camada e referência de aspecto arquiteturas e padrões são usados. Padrões arquitetônicos são estruturas comprovadas e genéricas para alcançar requisitos específicos. Os aspectos arquitetônicos são preocupações transversais que abrangem múltiplos componentes. Arquitetura orientada a eventos - uma arquitetura que produz, detecta, consome e reage a eventos. Os eventos incluem movimentos do mercado em tempo real, eventos ou tendências complexas e eventos comerciais, e. Enviando um pedido. Este diagrama ilustra a arquitetura conceitual do sistema de negociação algorítmica Referência Arquiteturas Para usar uma analogia, uma arquitetura de referência é semelhante aos planos para uma parede de suporte de carga. Esta impressão em azul pode ser reutilizada para vários projetos de construção independentemente do edifício que está sendo construído, pois satisfaz um conjunto de requisitos comuns. Da mesma forma, uma arquitetura de referência define um modelo contendo estruturas genéricas e mecanismos que podem ser usados ​​para construir uma arquitetura de software concreta que satisfaça os requisitos específicos. A arquitetura para o sistema de negociação algorítmica usa uma arquitetura baseada em espaço (SBA) e um controlador de exibição de modelo (MVC) como referências. São também utilizadas boas práticas, como o armazenamento de dados operacionais (ODS), o padrão de transformação e carregamento de extratos (ETL) e um data warehouse (DW). Controle de exibição de modelo - um padrão que separa a representação de informações da interação dos usuários com ela. Arquitetura baseada em espaço - especifica uma infra-estrutura onde as unidades de processamento acopladas vagamente interagem entre si através de uma memória associativa compartilhada chamada espaço (mostrado abaixo). Visão estrutural A visão estrutural de uma arquitetura mostra os componentes e subcomponentes do sistema de negociação algorítmica. Ele também mostra como esses componentes são implantados em infra-estrutura física. Os diagramas UML utilizados nesta visão incluem diagramas de componentes e diagramas de implantação. Abaixo está a galeria dos diagramas de implantação do sistema de negociação algorítmico geral e as unidades de processamento na arquitetura de referência SBA, bem como diagramas de componentes relacionados para cada uma das camadas. Táticas arquitetônicas De acordo com o instituto de engenharia de software, uma tática arquitetônica é um meio de satisfazer um requisito de qualidade, manipulando algum aspecto de um modelo de atributo de qualidade através de decisões de design arquitetônico. Um exemplo simples usado na arquitetura do sistema de negociação algorítmica é manipular uma loja de dados operacional (ODS) com um componente de consulta contínua. Este componente analisaria continuamente o ODS para identificar e extrair eventos complexos. As seguintes táticas são usadas na arquitetura: o padrão de disruptor nas filas de eventos e pedidos Memória compartilhada para as filas de eventos e pedidos Linguagem de consulta contínua (CQL) no ODS Filtragem de dados com o padrão de design de filtro em dados recebidos Algoritmos de evitação de congestionamentos em todos Conexões de entrada e saída Gerenciamento de fila ativa (AQM) e notificação de congestionamento explícito Recursos de computação de commodities com capacidade de atualização (escalável) Redundância ativa para todos os pontos de falha únicos Indicação e estruturas de persistência otimizadas no backup regular de dados e scripts de limpeza do ODS Schedule ODS Histórico de transações em todos os bancos de dados Súmrios para todas as ordens para detectar falhas Anotar eventos com timestamps para ignorar eventos obsoletos Regras de validação de pedidos, por exemplo, Quantidades de comércio máximo Componentes de comerciante automatizado usam um banco de dados em memória para análise Autenticação em dois estágios para interfaces de usuário conectando-se à ATs Criptografia em interfaces de usuário e conexões ao padrão de design ATs Observer para o MVC para gerenciar visualizações. A lista acima é apenas alguns design Decisões que identifiquei durante o desenho da arquitetura. Não é uma lista completa de táticas. À medida que o sistema está sendo desenvolvido, táticas adicionais devem ser empregadas em vários níveis de granularidade para atender aos requisitos funcionais e não funcionais. Abaixo estão três diagramas que descrevem o padrão de design do disruptor, o padrão de design do filtro e o componente de consulta contínua. Visão comportamental Esta visão de uma arquitetura mostra como os componentes e camadas devem interagir um com o outro. Isso é útil ao criar cenários para testar projetos de arquitetura e para entender o sistema de ponta a ponta. Essa visão consiste em diagramas de seqüência e diagramas de atividades. Diagramas de atividades que mostram o processo interno dos sistemas de negociação algorítmica e como os operadores devem interagir com o sistema de negociação algorítmica são mostrados abaixo. Tecnologias e estruturas O passo final na concepção de uma arquitetura de software é identificar possíveis tecnologias e estruturas que possam ser utilizadas para realizar a arquitetura. Como princípio geral, é melhor aproveitar as tecnologias existentes, desde que satisfaçam adequadamente os requisitos funcionais e não funcionais. Uma estrutura é uma arquitetura de referência realizada, e. JBoss é uma estrutura que realiza a arquitetura de referência JEE. As seguintes tecnologias e frameworks são interessantes e devem ser consideradas na implementação de um sistema de negociação algorítmica: CUDA - A NVidia possui uma série de produtos que suportam modelagem de finanças computacionais de alto desempenho. Pode-se alcançar até 50x melhorias de desempenho na execução de simulações de Monte Carlo na GPU em vez da CPU. Rio Apache - Rio é um kit de ferramentas usado para desenvolver sistemas distribuídos. Ele foi usado como uma estrutura para a construção de aplicativos com base no padrão SBA Apache Hadoop - no caso de registro invasivo ser um requisito, então o uso do Hadoop oferece uma solução interessante para o problema dos grandes dados. O Hadoop pode ser implantado em um ambiente em cluster que suporta tecnologias CUDA. AlgoTrader - uma plataforma de negociação algorítmica de código aberto. O AlgoTrader poderia ser implantado no lugar dos componentes do comerciante automatizado. FIX Engine - um aplicativo autônomo que aceita os protocolos do Financial Information Exchange (FIX), incluindo FIX, FAST e FIXatdl. Embora não seja uma tecnologia ou uma estrutura, os componentes devem ser criados com uma interface de programação de aplicativos (API) para melhorar a interoperabilidade do sistema e seus componentes. Conclusão A arquitetura proposta foi projetada para satisfazer requisitos muito genéricos identificados para sistemas de negociação algorítmica. De um modo geral, os sistemas de negociação algorítmica são complicados por três fatores que variam de acordo com cada implementação: Dependências em sistemas externos de negócios e de intercâmbio Desafio de requisitos não funcionais e Evolução de restrições arquitetônicas A arquitetura de software proposta deveria, portanto, ser adaptada caso a caso para Para satisfazer requisitos organizacionais e regulatórios específicos, bem como para superar restrições regionais. A arquitetura do sistema de negociação algorítmica deve ser vista como apenas um ponto de referência para indivíduos e organizações que desejam projetar seus próprios sistemas de negociação algorítmica. Para uma cópia completa e fontes usadas, baixe uma cópia do meu relatório. Obrigado. Como puramente cientista da computação, você está na posição perfeita para começar a negociação algorítmica. Isso foi algo que testemunhamos em primeira mão na Quantiacs 1. onde cientistas e engenheiros conseguem saltar diretamente para negociação automatizada sem qualquer experiência prévia. Em outras palavras, as costeletas de programação são o principal ingrediente necessário para começar. Para obter uma compreensão geral do que os desafios esperam depois de durar a criação de um sistema de negociação algorítmico, confira esta publicação do Quora. Construir um sistema de negociação desde o início exigirá algum conhecimento de fundo, uma plataforma de negociação, dados de mercado e acesso ao mercado. Embora não seja um requisito, a escolha de uma única plataforma de negociação que forneça a maioria desses recursos o ajudará a acelerar rapidamente. Dito isto, as habilidades que você desenvolverá serão transferíveis para qualquer linguagem de programação e praticamente qualquer plataforma. Acredite ou não, construir estratégias de negociação automatizadas não se baseia em ser um especialista em mercado. No entanto, aprender mecânica de mercado básica irá ajudá-lo a descobrir estratégias comerciais lucrativas. Opções, Futuros e Outros Derivados por John C. Hull - Grande primeiro livro para entrar em financiamento quantitativo, e abordando-o do lado da Matemática. Negociação quantitativa por Ernie Chan - Ernie Chan fornece o melhor livro introdutório para negociação quantitativa e orienta você no processo de criação de algoritmos de negociação em MATLAB e Excel. Comércio Algoritmo de Futuros via Aprendizado de Máquinas - Uma quebra de 5 páginas da aplicação de um modelo simples de aprendizado de máquina aos indicadores de análise técnica comumente usados. Heres uma lista de leitura agregada PDF com uma quebra total de livros, vídeos, cursos e fóruns de negociação. A melhor maneira de aprender é fazer, e no caso de negociação automatizada que se resume a gráficos e codificação. Um bom ponto de partida são exemplos existentes de sistemas de negociação e exposições existentes de técnicas de análise técnica. Além disso, um cientista informático qualificado tem a vantagem adicional de poder aplicar a aprendizagem de máquinas para negociação algorítmica. Aqui estão alguns desses recursos: TradingView - Uma fantástica plataforma de gráficos visuais por conta própria, o TradingView é um ótimo parque infantil para ficar confortável com a análise técnica. Tem o benefício adicional de permitir estratégias de negociação de scripts e navegar em outras idéias de comércio de pessoas. Fórum Automatizado de Negociação - Grande comunidade on-line para postar perguntas para iniciantes e encontrar respostas para problemas comuns quando é apenas começar. Quantos fóruns são um ótimo lugar para mergulhar em estratégias, ferramentas e técnicas. Seminário do YouTube sobre idéias comerciais com exemplos de código de trabalho no Github. Aprendizado de máquinas: mais apresentações sobre negociação automatizada podem ser encontradas no Quantiacs Quant Club. A maioria das pessoas de base científica (seja ciência da computação ou engenharia) tiveram exposição a Python ou MATLAB, que são linguagens populares para financiamento quantitativo. A Quantiacs criou uma caixa de ferramentas de código aberto que fornece backtesting e 15 anos de histórico do mercado de dados gratuitamente. A melhor parte é que tudo é construído tanto no Python quanto no MATLAB, o que lhe permite escolher o que desenvolver o seu sistema. Tem uma tendência de exemplo - estratégia de negociação seguinte no MATLAB. Este é todo o código necessário para executar um sistema de negociação automatizado, mostrando tanto o poder do MATLAB quanto o Quantiacs Toolbox. Quantiacs permite que você negocie 44 futuros e todos os estoques do SampP 500. Além disso, uma variedade de bibliotecas adicionais, como o TensorFlow, são suportadas. (Disclaimer: Eu trabalho em Quantiacs) Uma vez que você esteja pronto para ganhar dinheiro como um quant, você pode participar do mais recente concurso de negociação automatizado da Quantiacs, com um total de 2.250.000 em investimentos disponíveis: Você pode competir com os melhores quants 22.9k Visualizações middot View Upvotes Middot Não para reprodução Esta resposta foi completamente reescrita Aqui estão 6 bases de conhecimento principais para a construção de sistemas de negociação algorítmica. Você deve estar familiarizado com todos eles para construir sistemas de negociação eficazes. Alguns dos termos utilizados podem ser um pouco técnicos, mas você deve ser capaz de compreendê-los pelo Google. Nota: (A maior parte) estes não se aplicam se você quiser fazer negociação de alta freqüência 1. Teorias de mercado Você precisa entender como o mercado funciona. Mais especificamente, você deve entender as ineficiências do mercado, as relações entre diferentes produtos de ativos e o comportamento dos preços. As idéias comerciais decorrem de ineficiências do mercado. Você precisará saber como avaliar as ineficiências do mercado que lhe dão uma vantagem comercial versus as que não. Projetar robôs efetivos implica entender como funcionam os sistemas de negociação automatizados. Essencialmente, uma estratégia de negociação algorítmica consiste em 3 componentes principais: 1) Entradas, 2) Saídas e 3) Dimensionamento da posição. Você precisará projetar esses 3 componentes em relação à ineficiência do mercado que você está capturando (e não, este não é um processo direto). Você não precisa saber matemática avançada (embora ajude se você pretende construir estratégias mais complexas). As boas habilidades de pensamento crítico e uma compreensão decente sobre as estatísticas o levarão muito longe. O design envolve backtesting (teste de vantagem comercial e robustez) e otimização (maximizando o desempenho com ajuste de curva mínimo). Você também precisa saber como gerenciar um portfólio de estratégias de negociação algorítmica. As estratégias podem ser complementares ou conflitantes, o que pode levar a aumentos não planejados na exposição ao risco ou hedging indesejados. A alocação de capital também é importante, você divide o capital igualmente durante intervalos regulares ou recompensa os vencedores com mais capital. Se você sabe quais produtos você quer negociar, encontre plataformas de negociação adequadas para esses produtos. Então, aprenda a API de linguagem de programação desta plataforma. Se você começar, eu recomendaria a Quantopian (ações somente), Quantconnect (ações e FX) ou Metatrader 4 (FX e CFDs em índices de ações, ações e commodities). As linguagens de programação utilizadas são Python, C e MQL4, respectivamente. 4. Gerenciamento de dados Lixo no lixo. Dados imprecisos levam a resultados de teste imprecisos. Precisamos de dados razoavelmente limpos para testes precisos. Os dados de limpeza são um trade-off entre custo e precisão. Se quiser dados mais precisos, você precisa gastar mais tempo (dinheiro no tempo) para limpá-lo. Alguns problemas que causam dados sujos incluem dados em falta, dados duplicados, dados errados (carrapatos ruins). Outras questões que levam a dados enganosos incluem dividendos, divisões de ações e rolamentos de futuros, etc. 5. Gerenciamento de risco Existem dois principais tipos de risco: risco de mercado e risco operacional. O risco de mercado envolve riscos relacionados à sua estratégia de negociação. Considera os cenários do pior caso. E se um evento de cisne negro como a Segunda Guerra Mundial acontecer? Você já escondeu o risco indesejado? O seu tamanho de posição é muito alto. Além de gerenciar o risco de mercado, você precisa olhar para o risco operacional. Choque do sistema, perda de ligação à Internet, algoritmo de execução fraca (levando a preços mal executados ou negócios perdidos devido à incapacidade de lidar com atrasos de alta exigência) e roubo de hackers são problemas muito reais. 6. Execução ao vivo Os backtesting e as negociações ao vivo são muito diferentes. Você precisará selecionar intermediários adequados (MM vs STP vs ECN). Forex Market News com Forex Trading Forums amp Forex Brokers Reviews é o seu melhor amigo, leia comentários do corretor lá. Você precisa de infra-estrutura adequada (VPN segura e gerenciamento de tempo de inatividade, etc.) e procedimentos de avaliação (monitorar o desempenho de seus robôs e analisá-los em relação às melhorias de ineficiência do mercado) para gerenciar seu robô ao longo de sua vida útil. Você precisa saber quando intervir (modificar a atualização de seus robôs) e quando não. Avaliação e Otimização de Estratégias de Negociação Pardo (Grandes idéias sobre métodos para construir e testar estratégias de negociação) Troque seu caminho para a Liberdade Financeira Van K Tharp (Ridiculous-Click isqueiro lado a lado, este livro é uma ótima visão geral dos sistemas de negociação mecânica) Quantitative Trading Ernest Chan (Grande introdução a algo trading em um nível de varejo). Negociação e intercâmbios: Microstructure de mercado para praticantes Larry Harris (A microestrutura de mercado é a ciência de como os intercâmbios funcionam e o que realmente acontece quando um comércio é colocado. É importante conhecer esta informação Mesmo que você esteja apenas começando) Algorithmic Trading amp DMA Barry Johnson (Shed luz sobre os algoritmos de execução dos bancos. Isso não é diretamente aplicável o seu algo trading, mas é bom saber) The Quants Scott Patterson (Histórias de guerra de alguns quants superiores. Como uma hora de dormir ler) Quantopian (Código, pesquisa e discutir idéias com a comunidade. Usa Python) Fundamentos da Algo Trading Algo Trading101 (Disclaimer: Eu possuo este sitecourse. Aprenda teorias de design de robôs, teorias de mercado e codificação. Usa o MQL4) - Junte-se ao desafio (Aprenda os conceitos de negociação e as teorias de backtesting. Recentemente, desenvolveram sua própria plataforma de backtesting e trading, então esta parte ainda é novidade para mim. Mas a base de conhecimento sobre os conceitos de negociação é boa.) Blogs recomendadosForuns , Fóruns de trading e algo trading): Linguagens de programação recomendadas: se você sabe quais produtos você quer negociar, encontre plataformas de negociação adequadas para esses produtos. Então, aprenda a API de linguagem de programação desta plataforma. Se você começar, eu recomendaria a Quantopian (ações somente), Quantconnect (ações e FX) ou Metatrader 4 (FX e CFDs em índices de ações, ações e commodities). As linguagens de programação utilizadas são Python, C e MQL4, respectivamente. 15k Visualizações middot View Upvotes middot Não para reprodução Eu tenho um plano de fundo como programador e configurando equipes agilescrum antes de começar a olhar para negociação algorítmica. O mundo do comércio algorítmico me fascina, no entanto, pode ser um tanto irresistível. Comecei a ter alguma perspectiva mergulhando na plataforma de Quantopian, observando as séries de palestras e executando meus sistemas de troca de negócios baseados em comunidades adaptadas em seu ambiente. Como o que está abaixo: então, percebi para me aprofundar mais rápido, tenho que conhecer pessoas que gostam de criar estratégias de negociação, mas não podem programar - combinar-me como um gerente de equipe ágil e programador de sistemas de negociação. Então eu escrevi um livro sobre como criar uma equipe para implementar seus algoritmos de negociação. Construindo Sistemas de Negociação O Caminho Ágil: Como Construir Sistemas de Negociação de Algoritmos Vencedores como Equipe. Na comunidade de Quantopian, vi pessoas com experiência financeira à procura de pessoas para implementar suas estratégias comerciais, mas onde tem medo de pedir aos programadores que implementem suas idéias. Como eles potencialmente podem começar a executar suas idéias comerciais sem elas. Eu abordo esta questão no meu livro. Para evitar que os programadores escapem com suas idéias: crie uma especificação para sua idéia comercial que use uma estrutura de codificação adaptada ao tipo de estratégia que deseja desenvolver. Isso pode parecer difícil, mas quando você conhece todos os passos do bebê e como eles se encaixam, é bastante direto e divertido de gerenciar Se você gostou dessa resposta, por favor vote e siga. 1.9k Visualizações middot View Upvotes middot Não é para reprodução Embora este seja um tópico muito amplo com referências a algoritmos de construção, configuração de infra-estrutura, alocação de ativos e gerenciamento de riscos, mas vou focar apenas na primeira parte de como deve ser o trabalho na construção de nosso próprio algoritmo , E fazendo as coisas certas. 1. Estratégia de construção. Alguns dos principais pontos a serem observados aqui são: Catch Big Trends - Uma boa estratégia deve, em todos os casos, ganhar dinheiro quando o mercado está em tendência. Os mercados vão com uma boa tendência que dura apenas 15-20 do tempo, mas esse é o momento em que todos os gatos e cachorros (comerciantes de todo o time-frame, intradiário, diário, semanal, longo prazo) estão fora de compras e todos Tem um tema comum. Muitos comerciantes também criam estratégias de reversão médias em que eles tentam julgar as condições quando o preço se afastou da média e negociar contra a tendência, mas eles devem ser construídos quando você criou e negociou com sucesso uma boa tendência seguindo os sistemas . Probabilidades de empilhamento - Muitas vezes, as pessoas trabalham na tentativa de construir um sistema que tenha um excelente índice de sucesso, mas isso não é a abordagem certa. Por exemplo, um algo com um vencedor de 70 com um lucro médio de 100 por troca e perda média de 200 por comércio apenas fará 100 por 10 transações (10trade net). Mas um algo com um vencedor de 30 com lucro médio de 500 por troca e perda de 100 por comércio fará um lucro líquido de 800 para 10 negócios (80trade). Portanto, não é necessário que o índice de ganhos seja bom, e sim as chances de empilhamento, o que deve ser melhor. Isto diz dizendo quotKeep perdas pequenas, mas deixe seus vencedores executarem. Quando investir, o que é confortável raramente é lucrativo. - Robert Arnott Drawdown - Drawdown é inevitável, se você estiver seguindo qualquer tipo de estratégia. Então, ao projetar um algo don039t, tente reduzir a redução ou faça alguma condição personalizada específica para cuidar dessa redução. Esta condição específica pode, no futuro, funcionar como um bloqueio na captura de uma grande tendência e seu algo pode apresentar um desempenho fraco. Gerenciamento de Riscos - Ao construir uma estratégia, você sempre deve ter um portão de saída, o que o mercado opte por fazer. O mercado é um lugar de probabilidades e você deve projetar um algo para tirá-lo de um comércio o mais rápido possível, se isso não corresponder ao seu apetite de risco. Normalmente, argumenta-se que você deve arriscar 1-2 de capital em cada comércio e é otimizado de muitas maneiras, mesmo que você obtenha arnd 10 negociações falsas em sucessão, seu capital irá diminuir apenas 20. Mas isso não é o Caso no cenário de mercado real. Algumas negociações em perdas serão entre 0 a 1, enquanto algumas podem chegar a 3-4, por isso é melhor definir o valor médio de perda de capital por troca e o capital máximo que você pode perder em um comércio, pois os mercados são completamente aleatórios e podem ser julgados . QuotEvery de vez em quando, o mercado faz algo tão estúpido, tira o fôlego. Jim Cramer 2. Testando e otimizando um Slippage Estratégico. Quando estamos testando uma estratégia em dados históricos, estamos sob o pressuposto de que a ordem será executada no preço predefinido chegado pelo algo. Mas isso nunca será o caso, pois temos que lidar com os criadores de mercado e os algoritmos de HFT agora. Seu pedido no mundo de hoje039 nunca será executado no preço desejado, e haverá uma derrapagem. Isso deve ser incluído no teste. Impacto do mercado: o volume negociado pelo algo é outro fator importante a ser considerado enquanto faz back-testing e coletando resultados históricos. À medida que o volume aumenta, as encomendas feitas por algo terão um considerável impacto no mercado e o preço médio da ordem preenchida será muito diferente. O seu algo pode produzir resultados diferentes completos nas condições reais do mercado, se você não estudar a dinâmica do volume que seu algo possui. Otimização: a maioria dos comerciantes sugere que você não faça ajustes de curva e sobre otimização e eles são corretos, pois os mercados são uma função de variáveis ​​aleatórias e nenhuma das duas situações será igual. Portanto, otimizar parâmetros para situações particulares é uma má idéia. Eu sugiro que você vá para a Otimização Zonal. É uma técnica que eu acompanho, compre zonas de identificação que tenham características semelhantes em termos de volatilidade e volume. Otimize essas áreas separadamente, ao invés de otimizar todo o período. Os itens acima são alguns dos passos mais básicos e mais importantes que eu acompanho, ao converter um pensamento básico em um algoritmo e verificando a validade do mesmo. Quase todos têm a força intelectual para seguir o mercado acionário. Se você conseguiu através da matemática de quinto grau, você pode fazê-lo. QuotPeter Lynch 16.4k Views middot View Upvotes middot Não é para reprodução Para começar com o básico, apague-se de Amibroker (AmiBroker - Download). Amibroker tem uma linguagem fácil de aprender e um poderoso mecanismo de backtest onde você pode prototipar suas idéias. Também obtenha o livro Howard Bandy 039s Quantitative Trading Systems. Este livro é uma introdução muito boa aos conceitos de desenvolvimento de quant. Você também precisa de pelo menos um conhecimento básico de estatísticas. Há uma abundância de bons cursos MOOC disponíveis para isso gratuitamente. Tal como este, Statistics One - Princeton University Coursera It039s também vale a pena seguir The Whole Street. Que é um mashup de todos os quant blogs, muitos dos quais publicam código Amibroker com suas idéias. A partir daí, vale a pena aprender Python (aprender python - Pesquisa do Google), e também fazer o excelente curso de Aprendizado de Máquinas Universitárias Stanford da Andrew Ng039, que é gratuito na Coursera. Se você quiser colocar seus próprios algoritmos no teste, bons sites para isso são Quantconnect ou Quantopian. Finalmente, esse cara tem alguns bons conselhos para transformá-lo em sua carreira. Quantstart. Boa sorte com a jornada. Tomada parcialmente da resposta de Alan Clement039s. Como pode um desenvolvedor de software em finanças se tornar um desenvolvedor quântico. 15.9k Vistas middot View Upvotes middot Não para reprodução O que é Sua revisão de Algorithmic Trading O que corretor posso usar para iniciar o comércio de papel meu algoritmo de forma gratuita Como faço para iniciar uma empresa de negociação algorítmica Devo construir um sistema de negociação algorítmica usando Julia ou Scala Como posso encontrar um mentor de negociação algorítmica Como posso construir an Order Routing System for an algorithmic trading platform How do trading algorithms work Can a single person actually profitably engage in algorithmic trading I have a solid understanding of stocksderivatives amp have Python skills. I want to develop an automated algorithmic trading system. Where do I start Is Minance based on algorithmic trading

No comments:

Post a Comment