четверг, 5 апреля 2018 г.

Estratégias de negociação usando python


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.

Estratégias comerciais usando python
P: Este curso está atualizado?
R: A última atualização principal foi realizada em 2016, quando o material do curso foi estendido e atualizado para a versão Python 3. Atualmente, estou trabalhando em uma versão completamente retrabalhada que será lançada em algum lugar em 2017. Claro que os assinantes atuais terão acesso à nova versão.
P. Quanto custa este curso?
A. A taxa do curso é de US $ 95 ou € 90.
P. Este conteúdo do curso é pesado? (por exemplo, prazos de atribuição, codificação, materiais de leitura, etc.)
UMA . Não há prazos, você pode fazer o curso em seu próprio ritmo. Quatro semanas devem ser suficientes para completar as primeiras três partes do curso com base no estudo de 16 horas / semana. A última parte é mais complexa e exigirá diferentes quantidades de tempo dependendo da sua experiência de programação. Haverá vídeo e / ou material de leitura com código de exemplo. Aproveite o tempo para entender o código e usar os conceitos para suas próprias tarefas.
P. Você estará passando por algumas estratégias de negociação?
UMA . Sim, várias estratégias de negociação típicas serão usadas como exemplos. Vamos dar uma olhada em uma média móvel (impulso), reversão média e troca de pares.
A: Abaixo está uma lista completa de cadernos incluídos.
twp_301 métricas de desempenho.
Ao lado disso, existem vários exemplos de integração com a Interactive Brokers API.
P. As estratégias apresentadas serão lucrativas no comércio real?
UMA . Provavelmente não. Muitos não serão rentáveis ​​em backtest. O objetivo do curso é aprender a desenvolver suas próprias estratégias.
P. Será que haverá algum tipo de apoio (após o curso)?
A. Atualmente, o curso é oferecido sem suporte, mas é possível providenciar suporte extra. Por favor, entre em contato para mais detalhes.
P. Você poderia escrever um exemplo para minha estratégia comercial ou algo não incluído no material do curso?
A. Somente se você se inscreveu em uma versão suportada do curso.
P. I codificou esta estratégia e é executado sem erros. Ainda não tenho certeza de que todos os cálculos estão corretos. Você pode verificar meu código para a correção?
A. Infelizmente, esta é uma tarefa muito difícil, envolvendo compreender e repetir todos os cálculos passo a passo, o que é essencialmente o mesmo que reescrever o código a partir do zero. Isso está além do suporte abrangente do curso.
P. Posso baixar e manter os materiais do curso? (por exemplo, notas, palestras de vídeo, códigos, etc.)
R. Sim, você pode manter tudo. Você também terá acesso vitalício ao material do curso no site. Um pedido gentil para manter o conteúdo premium para seu próprio uso.
Q. Existe alguma coisa que você possa sugerir que eu faça para maximizar os benefícios de aprendizagem?
A. Eu acredito que aprender fazendo é a maneira mais eficaz. Decida quais são os seus próprios aplicativos (construindo um banco de dados, testando uma idéia, obtendo dados da web, etc.) e reserve tempo suficiente para experimentar.

Estratégias comerciais usando python
Obter através da App Store Leia esta publicação em nosso aplicativo!
Idioma de script para o desenvolvimento da estratégia de negociação.
Atualmente, estou trabalhando em um componente de um produto comercial que permitirá que um desenvolvedor da quantidade ou da estratégia escreva suas próprias estratégias personalizadas. Obviamente, não posso fazê-los escrever essas estratégias em linguagens nativamente compiladas (ou mesmo um idioma que compila um bytecode para ser executado em um vm), pois seus ciclos dev / test devem estar na ordem dos minutos.
Eu olhei lua, python, ruby ​​até agora e realmente gostei de todos até agora, mas ainda achei um pouco de "baixo nível" para os meus usuários-alvo. Eu precisaria, de alguma forma, escrever meu próprio analisador + intérprete para suportar um idioma com um mínimo de suporte para looping, simples aritmática, avaliação de expressão lógica ou há outra recomendação que algum de vocês possa ter? Desde já, obrigado.
11 Respostas.
Mark-Jason Dominus, o autor do módulo Perl's Text :: Template, tem algumas idéias que podem ser relevantes:
Quando as pessoas fazem um módulo de modelo como esse, eles quase sempre começam inventando uma sintaxe especial para substituições. Por exemplo, eles o compram para que uma seqüência de caracteres como %% VAR %% seja substituída pelo valor de $ VAR. Então eles percebem a necessidade de formatação extra, então eles colocam alguma sintaxe especial para formatação. Então eles precisam de um loop, então eles inventam uma sintaxe de loop. Em breve, eles têm uma nova e pequena linguagem de modelo.
Essa abordagem tem dois problemas: primeiro, seu pequeno idioma está paralisado. Se você precisa fazer algo que o autor não pensou, você perderá. Segundo: Quem quer aprender outro idioma?
Se você escreve seu próprio mini-idioma, você pode acabar na mesma situação - mantendo uma gramática e um analisador para uma ferramenta paralisada pelo design.
Se uma linguagem de programação real parece um pouco muito baixa, a solução pode não ser abandonar o idioma, mas sim fornecer aos usuários finais funções de utilidade de nível superior, para que possam operar com conceitos familiares sem ficar atolados no ervas daninhas da linguagem subjacente.
Isso permite que os usuários iniciantes operem em um nível alto; no entanto, você e todos os usuários finais com um talento para ele - seus super-usuários - ainda podem aproveitar o poder total de Ruby ou Python ou o que for.
Parece que você precisará criar algum tipo de linguagem específica do domínio (DSL) para seus usuários que possam ser construídos vagamente em cima do idioma de destino. Ruby, Python e Lua têm suas várias peculiaridades em relação à sintaxe e, até certo ponto, algumas delas podem ser massageadas com definições de funções inteligentes.
Um exemplo de uma DSL bastante robusta é o Pepino, que implementa uma estratégia interessante de converter a verbergem especificada pelo usuário para o código executável atual através de uma série de expressões regulares aplicadas aos dados de entrada.
Outro candidato pode ser JavaScript, ou algum tipo de DSL para JavaScript bridge, pois isso permitiria que a estratégia fosse executada tanto do lado do cliente quanto do lado do servidor. Isso pode ajudar a dimensionar seu aplicativo, pois as máquinas cliente geralmente possuem maior poder de computação em comparação com um servidor altamente carregado.
Módulos personalizados serão necessários, independentemente do que você escolher, que definem as construções de alto nível da empresa.
Aqui estão algumas das necessidades que eu imagino - você pode ter alguns desses já cobertos: uma maneira de obter posições atuais, citações atuais e históricas, dados de desempenho anteriores, etc. no aplicativo. Define / backtest / envie vários tipos de pedidos (limite / mercado / parada, que troca, desencadeia) ou parâmetros de opções, etc. Você provavelmente vai precisar de várias caixas de areia para testes, bem como a coisa real.
Quants quer ser capaz de fazer operações matriciais, cálculos estocásticos, PDEs.
Se você quisesse fazê-lo em python, carregar NumPy seria um começo.
Você também pode começar com um sistema proprietário projetado para fazer pesquisas financeiras matemáticas, como algo construído no topo da Mathematica ou Matlab.
Eu tenho trabalhado em uma biblioteca de negociação algorítmica Python (na verdade, para backtesting, não para negociação real). Você pode querer dar uma olhada nela: gbeced. github / pyalgotrade /
Confira o tadeveloper para uma estrutura de backtesting usando MATLAB como uma linguagem de script. MATLAB tem a vantagem de ser muito poderoso, mas você não precisa ser um programador para usá-lo.
Isso pode ser um pouco simplista, mas muitos usuários quant são usados ​​para trabalhar com Excel & amp; Macros VBA. Algum tipo de VBSCript pode ser usado, pois eles podem ter alguma experiência nesta área.
Os idiomas existentes são "um pouco" baixo nível "para os meus usuários-alvo".
No entanto, tudo o que você precisa é "um mínimo de suporte para looping, simples aritmática, avaliação de expressão lógica"
Eu não começo o problema. Você só quer alguns recursos. O que há de errado com a lista de idiomas que você forneceu? Eles realmente oferecem esses recursos?
Qual é a desconexão? Sinta-se à vontade para atualizar sua pergunta para expandir o problema.
Eu usaria Common Lisp, que suporta desenvolvimento rápido (você tem uma imagem em execução e pode compilar / recompilar funções individuais) e adaptar o idioma ao seu domínio. Você forneceria funções e macros como blocos de construção para expressar estratégias, e toda a linguagem estaria disponível para o usuário para combiná-las.
Alguma coisa ao longo do processamento do nível de complexidade para o qual você está filmando? O processamento é um bom exemplo de tirar uma linguagem completa (Java) e reduzir / simplificar a sintaxe disponível em apenas um subconjunto aplicável ao domínio do problema (domínio problemático = visualização no caso de Processamento).
Aqui está uma pequena comparação lado-a-lado dos documentos de processamento.
Como outros sugeriram, você pode simplesmente escrever suficientes funções de alto nível, de modo que a maior parte da complexidade esteja escondida do usuário, mas você ainda mantém a capacidade de fazer mais coisas de baixo nível quando necessário. A linguagem de fiação para Arduino segue esta estratégia de usar uma camada fina de funções de alto nível em cima de C para torná-lo mais acessível para não programadores e hobbyists.
Definir o idioma primeiro - se possível, use a pseudo-linguagem chamada EBN, é muito simples (veja a entrada da Wikipedia).
Então, uma vez que você tenha isso, escolha o idioma. Quase certamente você quer usar um DSL. Ruby e Lua são realmente bons nisso, IMO.
Uma vez que você começar a trabalhar nela, você pode achar que você retorna à sua definição e altere-a. Mas essa é a ordem certa para fazer as coisas, penso eu.

Estratégias comerciais usando python
Se você é um comerciante ou um investidor e gostaria de adquirir um conjunto de habilidades de negociação quantitativas, você está no lugar certo.
O curso Trading With Python irá fornecer-lhe as melhores ferramentas e práticas para pesquisa de negociação quantitativa, incluindo funções e scripts escritos por comerciantes quantitativos especializados. O curso dá o máximo impacto para o seu tempo investido e dinheiro. Ele se concentra na aplicação prática da programação ao comércio e não à informática teórica. O curso irá pagar por si mesmo rapidamente, economizando tempo no processamento manual de dados. Você passará mais tempo pesquisando sua estratégia e implementando negócios lucrativos.
Visão geral do curso.
Parte 1: princípios Você vai aprender por que a Python é uma ferramenta ideal para negociação quantitativa. Começaremos pela criação de um ambiente de desenvolvimento e, em seguida, apresentaremos as bibliotecas científicas.
Parte 2: Manipulação dos dados Saiba como obter dados de várias fontes gratuitas, como Yahoo Finance, CBOE e outros sites. Leia e escreva vários formatos de dados, incluindo arquivos CSV e Excel.
Parte 3: estratégias de pesquisa Aprenda a calcular o P & L e as métricas de desempenho acompanhantes, como Sharpe e Drawdown. Desenvolva uma estratégia de negociação e otimize seu desempenho. Múltiplos exemplos de estratégias são discutidos nesta parte.
Parte 4: Indo ao vivo! Esta parte é centrada em torno da Interactive Brokers API. Você aprenderá como obter dados em estoque em tempo real e colocar ordens ao vivo.
Muitos códigos de exemplo.
O material do curso consiste em "cadernos" que contêm texto junto com um código interativo como este. Você poderá aprender interagindo com o código e modificando-o para seu próprio gosto. Será um excelente ponto de partida para escrever suas próprias estratégias.
Embora alguns tópicos sejam explicados em grande detalhe para ajudá-lo a entender os conceitos subjacentes, na maioria dos casos você nem precisa escrever seu próprio código de baixo nível, devido ao suporte de bibliotecas de código aberto existentes:
A biblioteca TradingWithPython combina uma grande parte da funcionalidade discutida neste curso como uma função pronta para usar e será usada ao longo do curso. Pandas irá fornecer-lhe todo o poder de levantamento pesado necessário no trituração de dados.
Todo o código é fornecido sob a licença BSD, permitindo seu uso em aplicações comerciais.
Classificação do curso.
Um piloto do curso foi realizado na primavera de 2013, é o que os alunos conseguiram dizer:
Matej curso bem projetado e bom treinador. Definitivamente valeu o preço e meu tempo, Lave Jev, obviamente, conhecia suas coisas. A profundidade de cobertura foi perfeita. Se Jev executar algo assim novamente, serei o primeiro a se inscrever. John Phillips Seu curso realmente me fez começar a pensar em python para a análise do sistema de estoque.

Комментариев нет:

Отправить комментарий