Python Algorithmic Trading Library.
PyAlgoTrade é uma Biblioteca de Negociação Algorítmica Python com foco em backtesting e suporte para negociação de papel e negociação ao vivo. Digamos que você tenha uma idéia de uma estratégia de negociação e que você gostaria de avaliá-la com dados históricos e ver como ela se comporta. PyAlgoTrade permite que você faça isso com um esforço mínimo.
Principais características.
Totalmente documentado. Evento conduzido. Suporta pedidos Market, Limit, Stop e StopLimit. Suporta Yahoo! Finanças, Google Finance e NinjaTrader CSV. Suporta qualquer tipo de dados da série temporal no formato CSV, por exemplo, Quandl. Suporte comercial Bitcoin através do Bitstamp. Indicadores técnicos e filtros como SMA, WMA, EMA, RSI, Bandas Bollinger, Expositores Hurst e outros. Métricas de desempenho como a taxa de Sharpe e análise de redução. Manipulação de eventos do Twitter em tempo real. Perfil de eventos. Integração TA-Lib.
Muito fácil de dimensionar horizontalmente, ou seja, usando um ou mais computadores para testar uma estratégia.
PyAlgoTrade é gratuito, de código aberto e está licenciado sob a Licença Apache, Versão 2.0.
Começando: Construindo um Sistema de Negociação Totalmente Automatizado.
Nos últimos 6 meses, fiquei focado no processo de construção da pilha de tecnologia completa de um sistema de negociação automatizado. Eu encontrei muitos desafios e aprendi muito sobre os dois métodos diferentes de backtesting (Vectorizado e Evento conduzido). Na minha jornada de construção de um backtester dirigido por um evento, surpreendi que o que você acabasse fosse perto da pilha de tecnologia completa necessária para construir uma estratégia, testá-la e executar a execução ao vivo.
O meu maior problema ao abordar o problema foi a falta de conhecimento. Olhei em muitos lugares para uma introdução à construção da tecnologia ou um blog que me guiaria. Encontrei alguns recursos que vou compartilhar com você hoje.
Para iniciantes:
Para os leitores novos para negociação quantitativa, eu recomendaria o livro de Ernie P. Chan intitulado: Negociação Quantitativa: como construir seu próprio negócio de negociação algorítmica. Este livro é o básico. Na verdade, é o primeiro livro que eu li em negociação quantitativa e, mesmo assim, achei muito básico, mas há algumas notas que você deveria 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-automáticas e totalmente automatizadas.
Um sistema semi-automatizado é adequado se você deseja fazer alguns negócios por semana. Ernie recomenda o uso de Matlab, R ou mesmo do Excel. Utilizei todas as 3 plataformas e este é o meu conselho:
Saltei Matlab, custou muito dinheiro e eu só consegui acesso aos laboratórios universitários. Não há muito material de treinamento como blogs ou livros que irão ensinar-lhe como codificar uma estratégia usando o Matlab. R tem toneladas de recursos que você pode usar para aprender a construir uma estratégia. Meu blog favorito abordando o tópico é: QuantStratTradeR executado por Ilya Kipnis. O Microsoft Excel é provavelmente o local onde você iniciará se você não tiver experiência de programação. Você pode usar o Excel para negociação semi-automatizada, mas não vai fazer o truque quando se trata de construir a pilha de tecnologia completa.
Quadro semi-automático pg 81.
Sistemas de negociação totalmente automatizados são para quando você deseja colocar negócios automaticamente com base em um feed de dados ao vivo. Eu codifiquei o meu em C #, QuantConnect também usa C #, QuantStart anda pelo leitor através da construção dele em Python, Quantopian usa Python, HFT provavelmente usará C ++. Java também é popular.
Estrutura de negociação totalmente automatizada pg 84.
Passo 1: Obter uma vantagem.
Faça o Programa Executivo em Negociação Algorítmica oferecido pela QuantInsti. Acabei de começar o curso e o primeiro conjunto de palestras foi na arquitetura do sistema. Isso me salvaria cerca de 3 meses de pesquisa se eu tivesse começado aqui. As palestras me acompanharam por cada componente que eu precisaria, bem como uma descrição detalhada do que cada componente precisa fazer. Abaixo está uma captura de tela de uma das suas lâminas utilizadas na apresentação:
Você também pode usar esse quadro geral ao avaliar outros sistemas de negociação automática.
No momento da escrita, estou apenas na terceira semana de palestras, mas estou confiante de que um profissional poderá construir uma estratégia de negociação totalmente automatizada que, com um pouco de polonês, possa ser transformada em um hedge fund 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.
O blog de Michael Hallsmore e o quantstart & amp; livro "Negociação Algorítmica de Sucesso"
Este livro possui seções dedicadas à construção de um backtester dirigido por eventos robustos. Ele dirige o leitor através de uma série de capítulos que irão explicar sua escolha de linguagem, os diferentes tipos de backtesting, a importância do backtesting dirigido a eventos e como codificar o backtester.
Michael apresenta o leitor às diferentes classes necessárias em um design orientado a objetos. Ele também ensina o leitor a construir um banco de dados mestre de valores mobiliários. É aqui que você verá como a arquitetura do sistema da QuantInsti se encaixa.
Nota: Você precisará comprar seu livro: "Successful Algorithmic Trading", seu blog deixa para fora muita informação.
Passo 3: Vire a TuringFinance.
O programa EPAT Leitura "Successful Algorithmic Trading" & amp; codificando um backtester em um idioma diferente da sua escolha.
Você deve se mudar para um blog chamado TuringFinance e ler o artigo intitulado "Algorithmic Trading System Architecture" Por: Stuart Gordon Reid. Em sua publicação, ele descreve a arquitetura seguindo as diretrizes dos padrões ISO / IEC / IEEE 42018 e padrão de descrição de arquitetura de engenharia de software.
Eu achei esta publicação muito técnica e tem algumas ótimas idéias que você deve incorporar na sua própria arquitetura.
Uma captura de tela de sua postagem.
Passo 4: Estudar sistemas de comércio aberto.
4.1) Quantopian.
Escusado será dizer que Quantopian deve ser adicionado a esta lista e estou com vergonha de dizer que não passei muito tempo usando sua plataforma (devido à minha escolha de linguagem). Quantopian tem muitas vantagens, mas as que melhoram 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 adoro como eles hospedam QuantCon!
Quantopian é líder de mercado neste campo e é amado por quants por toda parte! Seu projeto de código aberto está sob o nome de código Zipline e isso é um pouco sobre isso:
"Zipline é o nosso motor de código aberto que alimenta o backtester no IDE. Você pode ver o repositório de códigos no Github e contribuir com solicitações de envio para o projeto. Existe 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 a QuantConnect, eles fornecem um mecanismo de troca algorítmica de código aberto completo. Aqui está um link.
Você deve dar uma olhada em seu código, estudá-lo, & amp; dar-lhes elogios. Eles são competição de Quantopians.
Gostaria de aproveitar esta oportunidade para agradecer a equipe da QuantConnect por me deixar escolher seu cérebro e pelo brilhante serviço que eles fornecem.
Aqui está um link para sua documentação:
Observações finais:
Espero que este guia ajude os membros da comunidade. Eu queria ter essa visão 6 meses atrás, quando comecei a codificar nosso sistema.
Gostaria de chegar à comunidade e perguntar: "Quais bons cursos de negociação algorítmica você conhece?" Eu gostaria de escrever uma publicação que analisa o tópico e fornece uma classificação. Existem recomendações para a construção de um sistema de negociação totalmente automatizado que você gostaria de adicionar a esta publicação?
Compartilhar isso:
Compartilhe essa entrada.
Você pode gostar também.
Bom artigo. Eu gostaria de ter tido cerca de 6 meses atrás. Eu uso QuantConnect porque sou um programador C #. Achei muito conveniente poder fazer o download do teste Lean e back test localmente. Rummaging através do seu código também é valioso. Além disso, eles cortaram um acordo com a Trader por negócios de US $ 1. Isso ajuda muito. Não sou tão saliente sobre spreads e execução da Trader. O IB pode ser melhor para isso.
Vou dar uma olhada no curso que você mencionou.
Você não mencionou a Quantocracy ou RBloggers. Ambos são recursos muito valiosos.
O que você usa para traçar resultados de testes de volta? Eu logro os valores do OHLC e do indicador para csv do evento OnData e estou realmente cansado de usar o Excel para traçar os resultados. Gostaria de apontar um pacote de gráficos para um arquivo de dados e simplesmente ir.
Você ainda possui um fornecedor de caixas de seleção?
Tenho um pensamento sobre os sistemas dirigidos 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ê obtém uma corretora envolvida, então eu tenho sonhado com um sistema de streaming mais seguindo os princípios da programação funcional.
& # 8211; Injeste um fluxo de tiquetaque ou barra.
& # 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; Retornar um sinal.
& # 8211; Envie-o para o corretor para executar.
Em seguida, em um fluxo separado.
& # 8211; Receba uma resposta do corretor.
O problema, é claro, é o estado. Tenho margem suficiente para fazer o comércio? O que está no meu portfólio? Como está funcionando? Normalmente, o corretor api pode ser consultado para descobrir essas coisas, mas leva tempo e é assíncrono. Eu também estou olhando extensões Rx. Dessa forma, o sistema pode reagir às mudanças no sistema através do padrão observável.
Os eventos são ótimos para cliques no mouse. Não é tão bom para processamento transacional de alto volume.
Esta é exatamente a abordagem que tomei com minhas próprias coisas. Essencialmente, eu tenho um & # 8216; normal & # 8217; programa que envolve uma pequena parte que é conduzida a eventos para falar com o corretor (IB API). Agora, para o problema do estado. Você tem duas escolhas; obter o estado do corretor, ou armazená-lo internamente, atualizando-o quando você receber um preenchimento. 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 ruins ou atrasos). Parte disso depende da rapidez com que você troca. A menos que você esteja negociando com muita rapidez, então, pausando se você tiver um conflito de estado, ou você está incerto de estado, é melhor do que prosseguir sem saber o seu estado. Eu uso um banco de dados & # 8216; lock & # 8217; paradigma para lidar com isso.
Quanto a quase tudo o que você pediu, você está perto da resposta em Reactive Extension (Rx).
Com Rx indo de tiques para velas é trivial.
Passar de Velas para Indicadores é trivial.
Indicadores de composição de outros indicadores é trivial.
Escrever Posições de Indicadores é trivial.
Composição de Portfolios (como realizada ao longo do tempo) das Posições é trivial.
Simular o modelo de risco é trivial.
Back testing ou trading live é simplesmente decidir entre uma transmissão ao vivo de dados ou uma repetição simulada de dados do banco de dados.
Executar é trivial.
A implementação é possível em tudo, desde C # até F # para JavaScript para C ++ em código quase idêntico.
A otimização é feita rapidamente porque o Rx puramente funcional é massivamente paralisável ao GPU.
É certo que a otimização e a alimentação do efeito da otimização contínua de volta ao teste de back-back não é trivial, mas dado que não é trivial de qualquer maneira, eu irei deixar esse slide 😉
Puramente funcional (ou perto dela) A Rx é, na minha opinião, a única maneira de abordar a infraestrutura desse problema.
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 levar o sistema que eu quero usar e automatizá-lo. Por automatizar isso, quero dizer, eu não quero olhar para ele. Eu vou olhar os resultados uma vez por semana e os negócios serão executados sem a minha atenção. Parece estranho para mim que, em 2018, tanto esforço precisa tomar um conjunto de regras e ter essas regras executadas no meu corretor.
Eu sugeriria inscrever-se com o Quantopian e depois encontrar alguém dentro da comunidade lá para construir a estratégia para você. Eles serão capazes de construí-lo para você dentro da plataforma IB Brokers e ser totalmente automatizado.
Deixe-me dizer, porém, que acho que você deve monitorá-lo de perto, e não apenas "esqueça-o para" # 8221 ;.
QUANTLABS.
Quant Resources for Traders.
Melhor sistema de negociação automatizado com o curso Python?
Melhor forma de construir sistema de negociação automatizado com o Python?
Ontem, publiquei um artigo sobre um curso sobre como criar sistemas de negociação automatizados com o Python. Soa familiar? Pessoalmente, acho que também foi gratuito. À medida que o comércio automatizado se torna mais popular, também está se tornando o movimento Sheeple, eu permaneço longe de. Eu sempre me lembro sobre esse jogo chamado Lemmings.
Quando você olha para todas as soluções em nuvem, todos os cursos no mundo, você perceberá rapidamente as severas restrições com as quais elas vieram. Por exemplo, alguns dos meus amigos passaram anos desenvolvendo plataformas percebendo o quão lento eles acabam sendo. Tenho certeza de que eles ficaram um pouco desapontados.
Ao longo dos anos, encontrei os melhores projetos de código aberto mais rápidos e menos restritivos que podem ser usados para negociação de alta velocidade. Matlab é uma ótima plataforma para isso, mas todos nós não podemos pagar. Esta é uma das razões pelas quais eu virei para o Python, que é fonte aberta, que todos podemos pagar. Infelizmente, também tem algumas restrições, bem como com algumas maneiras estranhas e heterogêneas de multithread, pacotes de corretores fracos, e assim por diante, eu poderia ir. Isso não significa que o Python não seja utilizável, mas você precisa aplicar os casos de uso correto para isso.
Depois, há a complexidade do backend onde você poderá separar os meninos dos homens que realmente sabem como arquitetar plataformas de negociação de alta velocidade. Descartei todos os principais idiomas legados capazes de incluir C ++, Java e C-sharp no Windows.
Aqui é a coisa. Você precisará passar por uma lição dolorosa e severa para realmente fazê-lo da maneira certa. Isso significa aprendizado profundo com provavelmente anos de experiência para retirá-lo. Sério ... Você sabe como paralisar uma série de Algos em um fluxo de dados do Market tick? Ou você está vendo tudo em uma única mentalidade enfiada? Oh, garoto, todo o potencial que você está perdendo. Mas, espero, este exemplo irá cortar claramente o BS normal que você vê online. Isto é especialmente verdadeiro quando é grátis.
Ok, o suficiente disso.
Como você sabe com o meu & # 8220; negócio comercial independente com o Python & # 8221; série de cursos, estou nas últimas duas semanas da primeira fase, denominada blocos de construção da infra-estrutura. Isso foi especialmente concebido para novatos que estão enfrentando esse muro maciço. Então, em três semanas começamos. nossa primeira estratégia simples focada em qualquer patrimônio ou estoque no mundo que seja rastreável com o Yahoo Finance. Se você estivesse na lição ao vivo da noite passada, você saberia exatamente algumas das gemas altamente valorizadas que eu revelei.
Mas, infelizmente, você precisa ser um membro Quant Elite para participar dos benefícios para começar rapidamente a aprender!
Agora, eu vou adicionar um pequeno incentivo para você. É o que chamamos de iluminar um fogo debaixo do seu traseiro. Estarei removendo um monte de código de estratégia, aulas de video e outros itens nos próximos meses. Depois disso, todo o segredo do código de estratégia será removido para sempre nesse ponto!
OBSERVAÇÃO Eu agora posto minhas ALERTAS DE NEGOCIAÇÃO na minha conta pessoal de FACEBOOK e TWITTER. Não se preocupe porque não publico vídeos de gato estúpidos ou o que eu como!
Desenvolvendo um sistema de negociação automatizado com o Python.
AVISO LEGAL! O comércio de Forex traz uma grande quantidade de risco. Qualquer e tudo descrito neste código é apenas para fins educacionais. Eu não sou responsável por nenhuma das suas perdas ou dificuldades que você pode enfrentar como resultado do uso deste código. Novamente, isso deve ser usado apenas para fins educacionais.
Este código está licenciado sob a GNU Public License. Consulte Mais informação.
A idéia de escrever este post veio da grande quantidade de pessoas no r / Forex que estavam interessadas em automatizar suas estratégias de negociação Forex. Espero manter esta publicação curta, simples e informativa, por favor, aguarde comigo.
Se você não tem pelo menos uma compreensão intermediária de Python, sugiro que leia sobre isso. Existem inúmeros recursos que o farão, eu recomendo a codecademy.
Certifique-se de configurar uma conta de demonstração com o Oanda e gerar uma chave api.
Ok, vamos lá!
Em primeiro lugar, recomendo usar um IDE que lhe permita executar o seu código Python ou usar Linux / OSX para que você possa testar com o terminal. Pessoalmente, uso o Spyder IDE que vem no pacote da Anaconda. Você pode baixar isso aqui.
Você precisará instalar duas bibliotecas principais de python: oandapyV20 & amp; solicitações de.
Esta será a nossa estrutura de arquivos final:
O primeiro arquivo em que nos concentraremos é __init__.py:
Neste arquivo, criamos nossas variáveis para serem usadas no restante desta estratégia. Eu vou usar uma 2 estratégia de cross-over média simples, então, para o meu SMAbig, usei 50 períodos de dados, e meu SMAsmall usava 25 períodos de dados. a variável de contagem é a quantidade de dados que você retorna da API de Oanda. Quanto maior o número, mais lento o sistema será executado. Coloque a sua chave api na variável "chave". Coloque o ID da sua conta na variável "accountID". Você também pode definir o tipo de dados de vela que deseja usar. Eu estou usando o gráfico de 4 horas, então, sob params, eu coloquei "H4". Uma lista de dados que você pode obter da Oanda pode ser encontrada aqui.
Tudo bem agora estamos no nosso próximo arquivo, candles. py:
Agora em nosso próximo arquivo, strategy. py.
Agora, nosso arquivo final, app. py:
Eu recomendo Olhar para o resto do código em Github aqui, uma vez que a formatação de Medium é bastante terrível. O arquivo final da aplicação. py é onde declaramos nossos condicionais e decidimos se o bot deve ou não ser comercializado.
Full Github Repo: Aqui.
Avançando, há muito que você pode fazer depois de ter seus dados iniciais de vela. Tudo a partir desse ponto é apenas uma questão de realizar equações matemáticas simples para decidir se o seu bot deve ou não trocar. Algumas coisas que podem ser facilmente implementadas são retratos Fibonacci, RSI, Heiken Ashi. As possibilidades são infinitas.
Ao bater palmas mais ou menos, você pode nos indicar quais são as histórias que realmente se destacam.
O'Reilly.
Em nosso radar.
Em nosso radar.
Negociação algorítmica em menos de 100 linhas de código Python.
Se você está familiarizado com o comércio financeiro e conhece o Python, você pode começar com o comércio algorítmico básico em nenhum momento.
Se você quiser saber mais sobre a análise de dados financeiros com o Python, confira Python for Finance pela Yves Hilpisch.
Negociação Algorítmica.
A negociação algorítmica refere-se à negociação automatizada e automatizada de instrumentos financeiros (com base em algum algoritmo ou regra) com pouca ou nenhuma intervenção humana durante as horas de negociação. Quase qualquer tipo de instrumento financeiro - sejam ações, moedas, commodities, produtos de crédito ou volatilidade - pode ser negociado de tal forma. Não só isso, em certos segmentos de mercado, os algoritmos são responsáveis pela maior parte do volume comercial. Os livros The Quants de Scott Patterson e Mais dinheiro do que Deus por Sebastian Mallaby pintam uma imagem vívida dos começos do comércio algorítmico e das personalidades por trás do seu aumento.
As barreiras à entrada para negociação algorítmica nunca foram menores. Não muito tempo atrás, apenas investidores institucionais com orçamentos de TI em milhões de dólares poderiam participar, mas hoje mesmo indivíduos equipados apenas com um notebook e uma conexão com a Internet podem começar em poucos minutos. Algumas tendências principais estão por trás desse desenvolvimento:
Software de código aberto: cada pedaço de software que um comerciante precisa para começar na negociação algorítmica está disponível na forma de código aberto; especificamente, Python tornou-se o idioma e o ecossistema de escolha. Abrir fontes de dados: cada vez mais valiosos conjuntos de dados estão disponíveis a partir de fontes abertas e gratuitas, fornecendo uma grande quantidade de opções para testar hipóteses e estratégias de negociação. Plataformas de negociação on-line: existe um grande número de plataformas de negociação on-line que fornecem acesso fácil e padronizado aos dados históricos (através de APIs RESTful) e dados em tempo real (através de APIs de streaming de soquete) e também oferecem recursos comerciais e de portfólio (por meio de APIs programáticas ).
Este artigo mostra como implementar um projeto de negociação algorítmica completo, desde testar a estratégia até realizar negócios automatizados em tempo real. Aqui estão os principais elementos do projeto:
Estratégia: escolhi uma estratégia de impulso de séries temporais (ver Moskowitz, Tobias, Yao Hua Ooi e Lasse Heje Pedersen (2018): "Time Series Momentum". Journal of Financial Economics, Vol. 104, 228-250.), Que basicamente, pressupõe que um instrumento financeiro que tenha funcionado bem / mal continuará a fazê-lo. Plataforma: escolhi Oanda; Isso permite que você troque uma variedade de contratos de alavancagem por diferenças (CFDs), que essencialmente permitem apostas direcionais em um conjunto diversificado de instrumentos financeiros (por exemplo, moedas, índices de ações, commodities). Dados: obteremos todos os nossos dados históricos e dados de transmissão da Oanda. Software: Usaremos o Python em combinação com os poderosos pandas da biblioteca de análise de dados, além de alguns pacotes Python adicionais.
O seguinte pressupõe que você tenha uma instalação Python 3.5 disponível com as principais bibliotecas de análise de dados, como NumPy e pandas, incluídas. Caso contrário, você deve, por exemplo, baixar e instalar a distribuição do Anaconda Python.
Conta Oanda.
No oanda, qualquer pessoa pode se inscrever para uma demonstração de demonstração gratuita ("paper trading") em poucos minutos. Depois de ter feito isso, para acessar a API Oanda por meio de programação, você precisa instalar o pacote Python relevante:
Para trabalhar com o pacote, você precisa criar um arquivo de configuração com o nome do arquivo oanda. cfg que possui o seguinte conteúdo:
Substitua as informações acima com o ID e o token que você encontra em sua conta na plataforma Oanda.
A execução deste código o equipa com o objeto principal para trabalhar programaticamente com a plataforma Oanda.
Backtesting.
Nós já criamos tudo o que é necessário para começar com a análise da estratégia de impulso. Em particular, podemos recuperar dados históricos da Oanda. O instrumento que utilizamos é EUR_USD e é baseado na taxa de câmbio EUR / USD.
O primeiro passo no backtesting é recuperar os dados e convertê-lo em um objeto DataFrame de pandas. O conjunto de dados é para os dois dias 8 e 9 de dezembro de 2018, e tem uma granularidade de um minuto. A saída no final do seguinte bloco de código fornece uma visão geral detalhada do conjunto de dados. Ele é usado para implementar o backtesting da estratégia de negociação.
Em segundo lugar, formalizamos a estratégia de impulso ao dizer a Python que obtenha o retorno de registro médio nas últimas barras de 15, 30, 60 e 120 minutos para derivar a posição no instrumento. Por exemplo, o retorno do log médio para as últimas barras de 15 minutos dá o valor médio das últimas 15 observações de retorno. Se esse valor for positivo, vamos / ficamos longos o instrumento negociado; Se é negativo, vamos / ficamos curtos. Para simplificar o código que se segue, apenas confiamos nos valores closeAsk que recuperamos através do nosso bloco anterior de código:
Em terceiro lugar, para derivar o desempenho absoluto da estratégia momentum para os diferentes intervalos de momentum (em minutos), você precisa multiplicar os posicionamentos derivados acima (deslocados por um dia) pelos retornos do mercado. Veja como fazer isso:
A inspeção da parcela acima revela que, ao longo do período do conjunto de dados, o próprio instrumento negociado tem um desempenho negativo de cerca de -2%. Entre as estratégias de impulso, a baseada em 120 minutos é melhor com um retorno positivo de cerca de 1,5% (ignorando a propagação / oferta). Em princípio, essa estratégia mostra "alfa real": ele gera um retorno positivo mesmo quando o próprio instrumento mostra um negativo.
Negociação automatizada.
Depois de decidir qual estratégia de negociação implementar, você está pronto para automatizar a operação de negociação. Para acelerar as coisas, estou implementando a negociação automatizada com base em doze barras de cinco segundos para a estratégia de momentum da série temporal, em vez de barras de um minuto, como usadas para testes anteriores. Uma única e bastante concisa classe o truque:
O código abaixo permite que a classe MomentumTrader faça seu trabalho. O comércio automatizado ocorre no impulso calculado em 12 intervalos de comprimento cinco segundos. A classe automaticamente interrompe a negociação após 250 carrapatos de dados recebidos. Isso é arbitrário, mas permite uma demonstração rápida da classe MomentumTrader.
A saída acima mostra os negócios únicos executados pela classe MomentumTrader durante uma execução de demonstração. A captura de tela abaixo mostra a aplicação de área de trabalho fxTradePractice da Oanda, onde uma negociação da execução da classe MomentumTrader em EUR_USD está ativa.
Todos os exemplos de resultados apresentados neste artigo são baseados em uma conta demo (onde apenas o dinheiro do papel é usado em vez do dinheiro real) para simular o comércio algorítmico. Para mudar para uma operação comercial ao vivo com dinheiro real, você simplesmente precisa configurar uma conta real com a Oanda, fornecer fundos reais e ajustar o ambiente e os parâmetros da conta usados no código. O próprio código não precisa ser alterado.
Conclusões.
Este artigo mostra que você pode iniciar uma operação básica de negociação algorítmica com menos de 100 linhas de código Python. Em princípio, todas as etapas de um projeto desse tipo são ilustradas, como recuperar dados para fins de backtesting, testar uma estratégia momentum e automatizar a negociação com base em uma especificação estratégica momentum. O código apresentado fornece um ponto de partida para explorar muitas direções diferentes: usando estratégias alternativas de negociação algorítmica, trocando instrumentos alternativos, trocando múltiplos instrumentos ao mesmo tempo, etc.
A popularidade do comércio algorítmico é ilustrada pelo aumento de diferentes tipos de plataformas. Por exemplo, a Quantopian - uma plataforma de teste back-test baseada em web e Python para estratégias de negociação algorítmica - informou no final de 2018 que atraiu uma base de usuários de mais de 100.000 pessoas. As plataformas de negociação on-line como a Oanda ou aquelas para criptografia como o Gemini permitem que você comece em mercados reais em poucos minutos e atenda a milhares de comerciantes ativos ao redor do globo.
Se você quiser saber mais sobre a análise de dados financeiros com o Python, confira Python for Finance pela Yves Hilpisch.
Yves Hilpisch.
O Dr. Yves J. Hilpisch é fundador e sócio-gerente da The Python Quants (tpq. io), um grupo que se concentra no uso de tecnologias de código aberto para ciência de dados financeiros, negociação algorítmica e finanças computacionais. Ele é o autor dos livros Python for Finance (O'Reilly, 2018), Derivatives Analytics com Python (Wiley, 2018) e Volatilidade e Derivados de Variância (Wiley, 2017). Yves palestras em finanças computacionais no Programa CQF (cqf), na ciência dos dados na Universidade de Ciências Aplicadas (htws.
Como posso passar parâmetros para um comando em C #?
Saiba como passar dados para um comando sem violar o padrão de comando em C #.
Como uso o padrão singleton em C #?
Saiba como criar instâncias thread-safe com o padrão singleton em C #.
Como eu deveria formatar consultas Transact-SQL?
Aprenda as possibilidades de formatação para consultas Transact-SQL e desenvolva sua própria estrutura de código.
Como localizar dados em minhas tabelas do SQL Server usando os diagramas do SQL Server Management Studio?
Localize os dados de forma rápida e fácil com a ferramenta de diagrama do SQL Server Management Studio.
No comments:
Post a Comment