суббота, 16 июня 2018 г.

Biblioteca de forex em python


Biblioteca de Negociação Algorítmica Python.
O PyAlgoTrade é uma Biblioteca de Negociação Algorítmica Python com foco em backtesting e suporte para negociação de papéis e negociação ao vivo. Digamos que você tenha uma ideia para uma estratégia de negociação e gostaria de avaliá-la com dados históricos e ver como ela se comporta. O PyAlgoTrade permite que você faça isso com o mínimo de esforço.
Principais características.
Totalmente documentado. Evento dirigido. Suporta ordens Market, Limit, Stop e StopLimit. Suporta o Yahoo! Arquivos Finanças, Google Finance e NinjaTrader CSV. Suporta qualquer tipo de dados de séries temporais no formato CSV, por exemplo, o Quandl. Suporte de negociação Bitcoin através do Bitstamp. Indicadores técnicos e filtros como SMA, WMA, EMA, RSI, Bandas de Bollinger, expoente de Hurst e outros. Métricas de desempenho como a taxa de Sharpe e a análise de rebaixamento. Manipulando eventos do Twitter em tempo real. Criador de perfil de eventos. Integração TA-Lib.
Muito fácil de dimensionar horizontalmente, isto é, usando um ou mais computadores para fazer backtest de uma estratégia.
O PyAlgoTrade é gratuito, de código aberto e está licenciado sob a Licença Apache, Versão 2.0.

Biblioteca forex do Python
A biblioteca TradingWithPython é uma coleção de funções e classes para negociação quantitativa. Ele inclui ferramentas para obter dados de fontes como YahooFinance, CBOE e InteractiveBrokers e frequentemente usa as funções de benchmarking P & amp; L.
Esta biblioteca será usada durante todo o curso e você aprenderá a usá-la conforme formos.
Instalação.
Instalação automática.
O pacote pode ser encontrado no PyPi. Para instalar automaticamente com pip, abra o prompt de comando e execute pip install tradingWithPython.
Instalação manual no Windows.
Obtenha o instalador do PyPi e execute-o.
Instalação manual.
1. Obtenha o arquivo zip do PyPi, descompacte em um diretório.

Negociação com Python.
Sábado, 20 de maio de 2017.
Yahoo está morto, viva o Yahoo!
Nota: os dados fornecidos parecem ser ajustados para divisões, mas não para dividendos.
Sábado, 20 de fevereiro de 2016.
Uma borda estatística simples no SPY.
Ocorreu-me que na maioria das vezes que há muita conversa na mídia sobre a queda do mercado (depois de grandes perdas ao longo de vários dias de intervalo), uma recuperação bastante significativa às vezes acontece.
No passado cometi alguns erros ao fechar minhas posições para reduzir as perdas, apenas para perder uma recuperação nos dias seguintes.
Após um período de perdas consecutivas, muitos comerciantes liquidarão suas posições com medo de perdas ainda maiores. Muito desse comportamento é governado pelo medo, e não pelo risco calculado. Comerciantes mais espertos entram então para as barganhas.
Depois de 3 ou mais perdas consectivas, vá muito longe. Saia no próximo feche.
Isso não parece nada mau! Observando as taxas de sharpe, a estratégia obtém uma descida de 2,2 versus 0,44 para os B & amp; Na verdade, isso é muito bom! (não fique muito empolgado, pois não contei com custos de comissão, derrapagem, etc.).
Embora a estratégia acima não seja algo que eu gostaria de negociar simplesmente por causa do longo período de tempo, a própria teoria provoca pensamentos adicionais que poderiam produzir algo útil. Se o mesmo princípio se aplica aos dados intradiários, uma forma de estratégia de escalpelamento poderia ser construída. No exemplo acima, simplifiquei um pouco o mundo contando apenas o * número * de dias de inatividade, sem prestar atenção à profundidade do rebaixamento. Além disso, a saída de posição é apenas um 'próximo dia de fechamento' básico. Há muito a melhorar, mas a essência na minha opinião é esta:
Segunda-feira, 17 de novembro de 2014.
Negociando o VXX com a previsão de vizinhos mais próximos.
Minha definição desses dois é:
prêmio de volatilidade = VIX-realizadoVol delta (inclinação da estrutura de prazo) = VIX-VXV.
Combinar tanto o prêmio quanto o delta em um modelo foi um desafio para mim, mas eu sempre quis fazer uma aproximação estatística. Em essência, para uma combinação de (delta, premium), gostaria de encontrar todos os valores históricos que estão mais próximos dos valores atuais e fazer uma estimativa dos retornos futuros com base neles. Algumas vezes comecei a escrever meus próprios algoritmos de interpolação de vizinhos mais próximos, mas toda vez tive que desistir. até me deparar com a regressão dos vizinhos mais próximos. Isso me permitiu construir rapidamente um preditor baseado em duas entradas e os resultados são tão bons que estou um pouco preocupado por ter cometido um erro em algum lugar.
criar um conjunto de dados de [delta, premium] - & gt; [Retorno do próximo dia VXX] (na amostra) cria um preditor do vizinho mais próximo com base no conjunto de dados acima da estratégia de negociação (fora da amostra) com as regras: go long if predicted return & gt; 0 vai curto se o retorno previsto & lt; 0.
Nos dois últimos gráficos, a estratégia parece realizar o mesmo dentro e fora da amostra. Relação de Sharpe é em torno de 2,3.
Estou muito satisfeito com os resultados e tenho a sensação de que só estive a arranhar a superfície do que é possível com esta técnica.
Quarta-feira, 16 de julho de 2014.
Módulo de backtesting simples.
Minha busca por uma ferramenta de backtesting ideal (minha definição de 'ideal' é descrita nos posts anteriores de 'dilemas de backtesting') não resultou em algo que eu pudesse usar imediatamente. No entanto, rever as opções disponíveis me ajudou a entender melhor o que eu realmente quero. Das opções que eu olhei, o pybacktest foi o que eu mais gostei por causa de sua simplicidade e velocidade. Depois de passar pelo código-fonte, tenho algumas ideias para simplificar e tornar um pouco mais elegante. A partir daí, foi apenas um pequeno passo para escrever meu próprio backtester, que agora está disponível na biblioteca TradingWithPython.
encontrar entrada e saídas - & gt; calcular pnl e fazer gráficos com backtester - & gt; dados de estratégia pós-processo.
Sábado, 7 de junho de 2014.
Aumentando o desempenho com o Cython.
5k amostras como dados de teste. Aí vem a versão original da minha função drawdown (como agora está implementada na biblioteca TradingWithPython)
Hmm 1,2 segundos não é muito rápido para uma função tão simples. Há algumas coisas aqui que podem ser uma ótima alternativa para o desempenho, como uma lista * highwatermark * que está sendo anexada em cada iteração de loop. Acessar Series por seu índice também deve envolver algum processamento que não seja estritamente necessário. Vamos dar uma olhada no que acontece quando esta função é reescrita para trabalhar com dados numpy.
Bem, isso é muito mais rápido que a função original, aproximadamente 40x de aumento de velocidade. Ainda há muito espaço para melhoria, movendo-se para código compilado com cython Agora eu reescrever a função dd de cima, mas usando dicas de otimização que eu encontrei no tutorial cython. Observe que esta é minha primeira tentativa de otimização de funções com o Cython.
Uau, esta versão corre em 122 micro segundos, tornando-a dez mil vezes mais rápida que a minha versão original! Devo dizer que estou muito impressionado com o que as equipes Cython e IPython conseguiram! A velocidade em comparação com a facilidade de uso é simplesmente incrível!
P. S. Eu costumava fazer otimizações de código no Matlab usando encapsulamento C e. mex puro, era tudo apenas uma dor na bunda em comparação com isso.
Terça-feira, 27 de maio de 2014.
Dilemas de backtesting: revisão de pyalgotrade.
Primeira impressão: ativamente desenvolvida, documentação muito boa, mais do que feautures suficiente (indicadores de TA, otimizadores etc). Parece bom, então eu continuei com a instalação que também correu bem.
O tutorial parece estar um pouco desatualizado, já que o primeiro comando yahoofinance. get_daily_csv () lança um erro sobre a função desconhecida. Não se preocupe, a documentação está atualizada e acho que a função ausente agora é renomeada para yahoofinance. download_daily_bars (símbolo, ano, csvFile). O problema é que essa função só faz o download de dados por um ano, em vez de tudo, desde aquele ano até a data atual. Tão bem inútil.
Depois que eu mesmo baixei os dados e os salvei no csv, eu precisei ajustar os nomes das colunas, porque aparentemente o pyalgotrade espera que Date, Adj Close, Close, High, Low, Open e Volume estejam no cabeçalho. Isso é tudo um pequeno problema.
Seguindo para o teste de desempenho em uma estratégia de SMA que é fornecida no tutorial. Meu conjunto de dados consiste em 5370 dias de SPY:
Isso é realmente muito bom para um framework baseado em eventos.
Mas tentei pesquisar a documentação para obter a funcionalidade necessária para fazer o backtest de spreads e vários portfólios de ativos e simplesmente não consegui encontrar nenhum. Então eu tentei encontrar uma maneira de alimentar pandas DataFrame como uma entrada para uma estratégia e acontece de não ser possível, o que é novamente uma grande decepção. Eu não o afirmei como um requisito no post anterior, mas agora chego à conclusão de que o suporte a pandas é obrigatório para qualquer framework que trabalhe com dados de séries temporais. Pandas foi uma razão para eu mudar de Matlab para Python e eu nunca mais quero voltar.
Conclusão A pyalgotrade não atende ao meu requisito de flexibilidade. Parece que foi projetado com o TA clássico em mente e negociação de instrumento único. Eu não vejo isso como uma boa ferramenta para estratégias de backtesting que envolvem vários ativos, hedge etc.
Segunda-feira, 26 de maio de 2014.
Dilemas de backtesting.
Seja boa aproximação do mundo real. Este é obviamente o requisito mais importante. Permitir flexibilidade ilimitada: o ferramental não deve ficar no caminho de testar ideias prontas para uso. Tudo o que pode ser quantificado deve ser utilizável. Seja fácil de implementar & amp; manter. É tudo sobre produtividade e poder testar muitas ideias para encontrar uma que funcione. Permitir varreduras de parâmetros, testes de avanço e otimizações. Isso é necessário para investigar o desempenho e a estabilidade da estratégia, dependendo dos parâmetros da estratégia. O problema em satisfazer todos os requisitos acima é que os números 2 e 3 são conflitantes. Não há ferramenta que possa fazer tudo sem o custo de alta complexidade (= baixa manutenção). Normalmente, uma ferramenta point-and-click de terceiros limitará severamente a liberdade de teste com sinais personalizados e portfólios ímpares, enquanto no outro extremo do espectro uma solução diy personalizada precisará de dezenas ou mais horas para ser implementada, com grandes chances de terminando com código desordenado e ilegível. Então, na tentativa de combinar o melhor dos dois mundos, vamos começar de alguma forma no meio: use uma estrutura de backtesting existente e adapte-a ao nosso gosto.
Nos posts a seguir, eu vou ver três candidatos possíveis que encontrei:
A tirolesa é amplamente conhecida e é o motor por trás do PyPlotex, que parece ser ativamente desenvolvido e o pybacktest bem documentado é uma estrutura leve baseada em vetor, que pode ser interessante devido à sua simplicidade e desempenho. Eu vou estar olhando para a adequação dessas ferramentas comparando-as com uma estratégia de negociação hipotética. Se nenhuma dessas opções se encaixa nos meus requisitos, terei que decidir se quero investir na criação do meu próprio framework (pelo menos, observando as opções disponíveis, eu sei o que não funciona) ou manter o código personalizado para cada uma delas. estratégia.
O primeiro para a avaliação é Zipline.
Minha primeira impressão de Zipline e Quantopian é positiva. O Zipline é apoiado por uma equipe de desenvolvedores e é testado em produção, então a qualidade (bugs) deve ser ótima. Existe uma boa documentação no site e um exemplo de caderno no github.
Para pegar um jeito, baixei o caderno do exame e comecei a brincar com ele. Para minha decepção, rapidamente me deparei com o primeiro exemplo do Algoritmo de Zipline mais Simples: Compre a Apple. O conjunto de dados tem apenas 3028 dias, mas a execução deste exemplo demorou uma eternidade. Aqui está o que eu medi:
Eu não esperava um desempenho estelar, já que o zipline é um backtester baseado em eventos, mas quase um minuto para 3000 samples é muito ruim. Esse tipo de desempenho seria proibitivo para qualquer tipo de varredura ou otimização. Outro problema surgiria quando se trabalha com conjuntos de dados maiores, como dados intradiários ou vários títulos, que podem conter facilmente centenas de milhares de amostras.
Infelizmente, eu terei que eliminar o Zipline da lista de backtesters utilizáveis, já que ele não atende ao meu requisito # 4 por uma margem de gordura.
No post seguinte, eu vou estar olhando para PyAlgotrade.
Nota: Meu sistema atual é um par de anos, rodando um AMD Athlon II X2 @ 2800MHZ com 3GB de RAM. Com backtesting baseado em vetor, eu estou acostumado a calcular tempos de menos de um segundo para um único backtest e um ou dois minutos para uma varredura de parâmetro. Um teste básico de caminhada com 10 passos e uma varredura de parâmetros para 20x20 resultaria em uma convulsiva 66 horas com tirolesa. Eu não sou tão paciente assim.

US Search Desktop.
Agradecemos seus comentários sobre como melhorar a Pesquisa do Yahoo. Este fórum é para você fazer sugestões de produtos e fornecer feedback atencioso. Estamos sempre tentando melhorar nossos produtos e podemos usar o feedback mais popular para fazer uma mudança positiva!
Se você precisar de assistência de qualquer tipo, visite nosso fórum de suporte à comunidade ou encontre ajuda individualizada em nosso site de ajuda. Este fórum não é monitorado por nenhum problema relacionado a suporte.
O fórum de comentários do produto do Yahoo agora exige um ID e uma senha válidos do Yahoo para participar.
Agora você precisa fazer login usando sua conta de e-mail do Yahoo para nos fornecer feedback e enviar votos e comentários para as ideias existentes. Se você não tiver um ID do Yahoo ou a senha do seu ID do Yahoo, inscreva-se para obter uma nova conta.
Se você tiver um ID e uma senha válidos do Yahoo, siga estas etapas se quiser remover suas postagens, comentários, votos e / ou perfil do fórum de comentários do produto do Yahoo.
Vote em uma ideia existente () ou publique uma nova ideia…
Idéias quentes Idéias superiores Novas ideias Categoria Status Meu feedback.
Trazer de volta o layout antigo com pesquisa de imagens.
Xnxx vedios.
Motor de busca no Yahoo Finance.
Um conteúdo que está no Yahoo Finance não aparece nos resultados de pesquisa do Yahoo ao pesquisar por título / título da matéria.
Existe uma razão para isso, ou uma maneira de reindexar?
Não consigo usar os idiomas ingleses no e-mail do Yahoo.
Por favor, me dê a sugestão sobre isso.
O que vocês pagam por boas sugestões que aumentam a receita porque eu tenho uma que é garantida para fazer $. Me avise se estiver interessado.
O que vocês pagam por boas sugestões que aumentam a receita porque eu tenho uma que é garantida para fazer $. Me avise se estiver interessado.
Por favor, envie para desindexação.
Por favor, envie o link '410' para desindexação. Obrigado.
diga trump a tempo de imposto todo o mundo doa 1 dólar como patos ilimitado e.
como eles fazem para patos ilimitados e os fundos quando eles correm para o escritório?
Pare de ser um traidor para o nosso país. Whoo nomeou você para ser Juiz e Júri re Trump.
Quem nomeou você como juiz e jurado do presidente Trump?
Não é fácil dar um comentário.
Mantenha a verdadeira notícia que é muito importante. Trunfos *** a vida antes de ele ser presidente não é importante hoje, quando ele nem estava no cargo. Rússia, China, militares, comércio, protegendo a fronteira que eu vivo precisando da parede etc é o que é importante. A mídia não achava que era importante quando outros presidentes estavam fazendo negócios enquanto estavam no cargo, como os Kennedy, Clinton e outros. Ele mostra que você está alvejando Trump, que não é isso que os relatórios devem fazer. Também você sabe que eu pareço lembrar quando Obama disse que ele usou o Facebook etc a máquina eletrônica para ajudá-lo a ser eleito e como eles eram espertos e eu pensei a mesma coisa, mas agora, quando é Trumps campanha usando isso que está errado. Você não consegue ver porque está perdendo os espectadores? Você não está sendo tarifa. Como sobre as coisas importantes nas notícias que afetam nossa segurança (defesa, proteção de nossas fronteiras, negócios para empregos, dinheiro em nossos livros de bolso, quem no congresso estava por trás deles recebendo um aumento, etc.) O que é coisas que queremos saber.
Mantenha a verdadeira notícia que é muito importante. Trunfos *** a vida antes de ele ser presidente não é importante hoje, quando ele nem estava no cargo. Rússia, China, militares, comércio, protegendo a fronteira que eu vivo precisando da parede etc é o que é importante. A mídia não achava que era importante quando outros presidentes estavam fazendo negócios enquanto estavam no cargo, como os Kennedy, Clinton e outros. Ele mostra que você está alvejando Trump, que não é isso que os relatórios devem fazer. Além disso, você sabe que eu me lembro quando Obama disse que ele usou o Facebook, etc o eletrônico ... mais.

Plataformas de negociação Python populares para negociação algorítmica.
Vamos cobrir as plataformas de negociação Python mais populares neste artigo. Em um de nossos artigos recentes, falamos sobre as plataformas de backtesting mais populares para negociação quantitativa. Aqui, estamos compartilhando a plataforma de negociação e as bibliotecas de Python mais usadas para negociação quantitativa.
O Python é uma linguagem livre e de plataforma aberta que possui uma biblioteca rica para quase todas as tarefas imagináveis ​​e especializadas no ambiente de pesquisa. O Python é uma excelente opção para negociação automatizada em caso de baixa / média frequência de negociação, ou seja, para negociações que não duram menos que alguns segundos. Ele tem várias APIs / Bibliotecas que podem ser vinculadas para torná-lo ideal, mais barato e permitir um maior desenvolvimento exploratório de várias ideias comerciais.
Bibliotecas relacionadas à Algo Trading disponíveis para Python.
PyAlgoTrade.
Uma biblioteca orientada a eventos que se concentra em backtesting e suporta negociação de papéis e negociação ao vivo. O PyAlgoTrade permite que você avalie suas ideias de negociação com dados históricos e veja como ela se comporta com o mínimo de esforço. Suporta backtesting acionado por eventos, acesso de dados do Yahoo Finance, Google Finance, CSVs Ninja Trader e qualquer tipo de dados de séries temporais em CSV. A documentação é boa e suporta a integração do TA-Lib (Technical Analysis Library). Ele supera outras bibliotecas em termos de velocidade e flexibilidade. No entanto, a maior desvantagem é que ele não oferece suporte a módulos Pandas-objeto e pandas.
Zipline (usado por Quantopian)
É um sistema baseado em eventos que suporta backtesting e live-trading. O Zipline é atualmente usado na produção pela Quantopian - uma plataforma hospedada e centrada na comunidade para a construção e execução de estratégias de negociação. Zipline é bem documentado, tem uma grande comunidade, suporta integração Interactive Broker e Pandas. Ao mesmo tempo, como o Quantopian é uma ferramenta baseada na Web, o ambiente de programação em nuvem é realmente impressionante. No entanto, o Zipline é mais lento em comparação com plataformas comerciais com funcionalidade de backtesting em um aplicativo compilado e não é muito conveniente para a negociação de vários produtos.
Você pode verificar o seguinte link para saber mais sobre o Zipline.
Pybacktest.
Estrutura de backtesting vetorizada em Python / pandas, projetada para tornar seu backtesting mais fácil - compacto, simples e rápido. Ele permite que o usuário especifique estratégias de negociação usando todo o poder dos pandas, ocultando todos os cálculos manuais para negociações, patrimônio, estatísticas de desempenho e criação de visualizações. Código de estratégia resultante é utilizável tanto em pesquisa e ambiente de produção. Atualmente, apenas suporta backtesting de segurança único. O teste de segurança múltipla pode ser implementado executando backtests de um segundo e combinando equidade. Os desenvolvedores estão trabalhando para incluir recursos de backtest de vários ativos.
Ultrafinance.
É um sistema vetorizado. Um projeto python para coleta de dados financeiros em tempo real, análise e backtesting de estratégias de negociação. Suporta acesso a dados do Yahoo Finance, Google Finance, HBade e Excel.
TWP (negociação com o Python)
A biblioteca TradingWithPython é novamente um sistema vetorizado. É uma coleção de funções e classes para negociação quantitativa. Ele inclui ferramentas para obter dados de fontes como o Yahoo Finance, CBOE e Interactive Brokers e muitas vezes usa as funções de benchmarking P & amp; L. A documentação e curso para esta biblioteca, no entanto, custa US $ 395.
Negociação em corretores interativos usando Python.
A Interactive Brokers é uma corretora eletrônica que fornece uma plataforma de negociação para se conectar a mercados ativos usando várias linguagens de programação, incluindo o Python. Ele fornece acesso a mais de 100 destinos do mercado em todo o mundo para uma ampla variedade de produtos comercializados eletronicamente, incluindo ações, opções, futuros, forex, títulos, CFDs e fundos. O IB não apenas tem taxas de comissão e margem muito competitivas, mas também possui uma interface muito simples e amigável. Aqui vamos discutir como podemos nos conectar ao IB usando o Python.
Existem algumas bibliotecas Python interessantes que podem ser usadas para conectar-se a mercados ativos usando o IB. É necessário primeiro ter uma conta com o IB para poder utilizar essas bibliotecas para negociar com dinheiro real.
É uma biblioteca python fácil de usar e flexível que pode ser usada para negociar com Interactive Brokers. É um invólucro da API do IB, que fornece uma solução muito simples de usar, ocultando as complexidades do IB. Para aprender a utilizar esta biblioteca, você pode conferir os seguintes links.
IBPy é outra biblioteca python que pode ser usada para negociar usando Interactive Brokers. Detalhes sobre como instalar e usar o IBPy podem ser encontrados aqui:
Como mencionado acima, cada biblioteca tem seus próprios pontos fortes e fracos. Com base na exigência da estratégia, você pode escolher a biblioteca mais adequada depois de pesar os prós e contras.
Plataformas Python Gratuitas e de Código Aberto.
Abaixo estão listadas algumas plataformas populares e gratuitas que podem ser usadas por entusiastas do Python em negociação algorítmica.
Quantiacs é uma plataforma Python de código aberto e livre, que pode ser usada para desenvolver e fazer backtest de ideias de negociação usando a caixa de ferramentas Quantiacs. A Quantiacs fornece dados do mercado financeiro livre e limpo para 49 futuros e ações da S & P 500 até 25 anos.
Você pode desenvolver quantas estratégias quiser e as estratégias lucrativas podem ser submetidas nas competições algorítmicas de negociação Quantiacs. Em Quantiacs você começa a possuir o IP da sua ideia de negociação. A Quantiacs investe nas 3 melhores estratégias de cada competição e você cobre metade das taxas de desempenho caso sua estratégia de negociação seja selecionada para investimento.
Você pode verificar os links a seguir para saber mais sobre a plataforma Quantiacs.
Quantopian.
Semelhante ao Quantiacs, o Quantopian é outra popular plataforma Python de código aberto para backtesting de ideias de negociação. A Quantopian oferece mais de 15 anos de nível minucioso para dados de precificação de ações dos EUA, dados fundamentais corporativos e futuros dos EUA. Quantopian aloca capital para algoritmos de negociação selecionados e você obtém uma parte dos lucros líquidos do seu algoritmo. O Quantopian também tem uma comunidade muito ativa em que problemas de codificação e idéias de negociação são discutidos entre os membros.
Também é possível conferir nosso curso interativo, "Python for Trading", você terá experiência prática em codificação Python. Você poderá codificar sua própria estratégia e fazer backtest, além de uma certificação conjunta da QuantInsti® e da MCX.
Percebemos que alguns usuários estão enfrentando desafios ao baixar os dados de mercado das plataformas Yahoo e Google Finance. Caso você esteja procurando uma fonte alternativa para dados de mercado, você pode usar o Quandl para o mesmo.

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

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