Construção De Sistemas De Negociação


Como 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ê está 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 quads 24k Vistas 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. 15.4k 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. 2k Vistas 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 de construção de nosso próprio algoritmo, E fazer 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.5k Vistas 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 um bom conselho 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 q 16k Vistas middot View Upvotes middot Não para reprodução Como é que um Arquitetura de sistema de comércio algorítmico parece com o que são alguns bons algoritmos de negociação Qual é a sua análise de Algorithmic Trading O corretor que posso usar para começar o comércio de documentos meu algoritmo de forma gratuita Eu deveria construir um sistema de negociação algorítmica usando Julia ou Scala Como posso construir um roteamento de pedidos Sistema para uma plataforma de negociação algorítmica Como funcionam os algoritmos de negociação Como os algoritmos de negociação são projetados? Uma pessoa única pode realmente se engajar na negociação algorítmica. Tenho uma sólida compreensão de stocksderivatives. O amplificador possui habilidades Python. Eu quero desenvolver um sistema de negociação algorítmica automatizado. Onde eu começo É Minance com base em negociação algorítmica Educação gratuita Obrigado especial aos nossos amigos no SharkIndicators para a seguinte postagem de convidado em sistemas de negociação From Scratch, Step by Step Trading com sucesso geralmente significa contrariar suas tendências psicológicas naturais para reagir ao medo e à ganância. Você provavelmente já ouviu muitas vezes que os comerciantes de sucesso usam uma abordagem sistemática para a negociação. Isso está estabelecendo critérios estritos para entradas e saídas. Somente criando um conjunto de regras, você pode começar a perceber algum tipo de consistência com seu desempenho comercial. Caso contrário, negociar apenas disparando no quadril não é realmente diferente do jogo. Quando você coloca um conjunto de regras concretas (critérios de negociação), isto é conhecido como um sistema de negociação. Por que criar seu próprio sistema de comércio Se você quer se tornar um profissional em tempo integral, ou manter seu emprego no dia, mas deseja gerenciar seu próprio dinheiro, um sistema comercial é fundamental para o sucesso. Isso também se aplica a você se você trocar várias vezes por dia (daytrader) ou trocar posições de longo prazo por muitos meses. Mas por que criar o seu próprio Existem vários motivos para fazer isso. Um sistema de comércio é altamente pessoal. Ele deve se adequar ao seu estilo de negociação e perfil de risco. Um sistema comercial bem sucedido é tão bom quanto a sua capacidade de trocar, e sua capacidade de trocar depende da sua confiança nela. A melhor maneira de negociá-lo com sucesso é confiar exatamente nisso, porque quando você está olhando para baixo uma perda desagradável após 5 negociações perdidas diretas, a única maneira de levar esse 6º comércio vencedor é se você tem confiança inabalável no desempenho de seus sistemas como um todo . Confirmação é adquirida em seu sistema de negociação quando você pesquisou, testou-o, testou-o e você fez o seu próprio. É realmente tão fácil. Id ser enganando você se eu dissesse que criar um sistema de negociação bem-sucedido (e depois negociá-lo) é um pedaço de bolo. Demora muitas horas de tentativa e erro, estudando os gráficos, iterando e sim trading. Mas antes disso, você precisa aprender o básico. Neste artigo e futuros a serem seguidos, vou abordar os conceitos básicos de criação de um sistema de negociação. Será orientado para o início dos comerciantes intermédios e assumirá que você possui alguma compreensão básica de indicadores técnicos e acesso a software de gráficos (como o NinjaTrader). Vamos começar com alguns conceitos básicos Os sistemas de negociação funcionam de forma variável em termos da infinita variedade de formas de comércio. Você provavelmente já ouviu falar que existem comerciantes de tendências e comerciantes de contra tendência. Os comerciantes da tendência tendem a ir com o fluxo, e os comerciantes contra tendência tendem a pensar contra o grão. O estilo que você realmente envolve realmente depende da sua personalidade. Há uma infinidade de sistemas de comércio em qualquer categoria, mas uma coisa que eles têm em comum é que eles precisam de algo para identificar definitivamente a tendência atual, seja ela alta ou baixa. Balanços de preços Os preços tendem a flutuar em um padrão oscilante, criando prateleiras e calhas enquanto se balançam para cima e para baixo. Então, isso nos leva à primeira lição: usando indicadores para determinar a direção da tendência. Vamos começar simples e olhar para o que chamamos de padrões de balanço de preços em um gráfico: Usando o BloodHound para NinjaTrader, temos aqui um gráfico de preços típico com os balanços de preços identificados em linhas verdes e vermelhas desenhadas em cima das barras de preços. À medida que o preço aumenta, temos uma linha verde subindo, e à medida que o preço flui, uma linha vermelha. Quando o balanço muda de direção, você pode ver que o preço pareceu saltar de um piso invisível ou atingir um teto. Se esse andar imaginário continue movendo-se, como aconteceu entre 11:28 e 11:36 no gráfico, chamamos isso de maior. Esse é o preço do ponto baixo recente mais alto do que o último (neste caso o baixo feito logo após as 10:38). Da mesma forma, o teto mudou-se, bem como o preço estabelecido o que chamamos de maior alta logo depois das 11:27 às 11:33. Este padrão de preços, em que o preço mantém níveis maiores, e níveis mais baixos são identificados como uma tendência de alta alta. Da mesma forma, se esse teto parece ser progressivamente mais baixo (e também o chão), o mercado diz estar fazendo baixas baixas e baixos altos. Esta é uma tendência geral de baixa. Você pode ver claramente que o BloodHound também marcou as áreas com zonas verdes (de alta) e vermelhas (baixas) no gráfico para o que a tendência geral está acontecendo. Então, agora, o que agora você tem a tendência identificada, você pode levar essas informações para ir contra ela ou com ela, dependendo se você estiver criando um sistema de negociação de tendências ou sistema de negociação contra-tendência. A tendência geral pode ser usada como permissivo geral (filtro comercial) para ir longo ou curto. Embora possa servir como um grande pedaço do quebra-cabeça, é apenas um bloco de construção para iniciar seu sistema. Um sistema de negociação completo exigirá pelo menos algum tipo de sinal de entrada. Vamos cobrir isso em um futuro artigo. Fique atento Se você estiver interessado em construir seu próprio sistema comercial, confira - Sharkindicators One Response to Building a Trading SystemSlideshare usa cookies para melhorar a funcionalidade e o desempenho e fornecer publicidade relevante. Se continuar a navegar no site, você concorda com o uso de cookies neste site. Veja o nosso Contrato de Usuário e Política de Privacidade. O Slideshare usa cookies para melhorar a funcionalidade e o desempenho, e fornecer publicidade relevante. Se continuar a navegar no site, você concorda com o uso de cookies neste site. Consulte nossa Política de Privacidade e Contrato de Usuário para obter detalhes. Explore todos os seus tópicos favoritos no aplicativo SlideShare Obtenha o aplicativo SlideShare para Salvar para Mais tarde, mesmo em off-line Continuar para o site móvel Fazer o upload de login Assinar Duplo toque para diminuir o zoom Como criar um sistema de negociação Compartilhe este SlideShare LinkedIn Corporation copy 2017

Comments