Executando verificação de segurança...
1

Os melhores pacotes Python para negociação algorítmica

Foto de Markus Spiske em Unsplash.com

Escrevi mais de 100 postagens sobre negociação algorítmica e, durante minha pesquisa, encontrei alguns pacotes Python incríveis que tornam a negociação automática muito fácil.

Neste post listei pacotes que são úteis para codificar as diferentes áreas funcionais de um sistema de negociação automática.

Naturalmente, esta não é uma lista exaustiva. Existem milhares de bibliotecas Python disponíveis para diferentes finalidades, dependendo das bolsas, provedores, estilos de negociação, complexidade de implementação e estratégias de negociação específicas que você preferir. No entanto, se você quiser descobrir quais pacotes Python eu uso, confira este post.

Esta história é apenas para fins de informação geral e não deve ser utilizada para recomendações de negociação ou aconselhamento financeiro. O código-fonte e as informações são fornecidos apenas para fins educacionais e não devem ser considerados para tomar uma decisão de investimento. Por favor, reveja toda a minha orientação preventiva antes de continuar.

Processamento e manipulação de dados

numpy

numpy é uma biblioteca Python essencial para lidar com matrizes multidimensionais, funções matemáticas, geradores de números aleatórios, álgebra linear e muito mais.

pandas

pandas é um pacote de processamento e análise de dados para DataFrames (pense em planilhas do Excel) que pode ser usado para processar dados de séries temporais, como dados de preços OHLC.

Web Scraping e extração de dados

BeautifulSoup

BeautifulSoup é um pacote para analisar dados HTML e XML, essencial para raspar e processar páginas do site.

Requests

Requests é uma classe Python integrada para enviar solicitações HTTP e manipular respostas em formato JSON ou HTML.

Scrapy

Scrapy é uma biblioteca popular que fornece web spider e funcionalidade de extração de dados.

Selenium

O Selenium é uma estrutura de automação da Web que funciona em conjunto com navegadores como Chrome ou Firefox para automatizar a navegação no site e a coleta de dados.

Urllib

Urllib é um pacote com funções de conveniência para leitura e processamento de URLs e arquivos robots.txt.

Preço, informações da empresa e importação de dados fundamentais

Muitas corretoras, como binance, coinbase e alpaca, oferecem suas próprias APIs para dados de precificação, portanto, se você usar uma delas, não há necessidade de pagar por dados financeiros. Aqui estão algumas bibliotecas para provedores adicionais de dados financeiros gratuitos e pagos:

coingecko

coingecko é uma biblioteca wrapper para as APIs da Coingecko , que fornecem acesso gratuito a informações de preços de criptomoedas, taxas de câmbio e informações gerais sobre moedas.

data-link

data-link é um pacote Python que usa a API Nasdaq Data Link, que fornece acesso a uma grande variedade de dados diferentes em classes de ativos, estimativas, motivos geográficos, setores, etc.

eod-data

O pacote eod-data fornece acesso ao vasto provedor de informações financeiras EOD Historical Data, por exemplo, preços de ações, dividendos, desdobramentos e dados financeiros fundamentais.

finviz

finviz é um pacote Python que fornece acesso à grande quantidade de dados financeiros do FinViz, como preços de ações, avaliações de fundamentos, negociações privilegiadas.

norgatedata

O pacote norgatedata https://pypi.org/project/norgatedata/ fornece acesso ao banco de dados local da Norgate Data, abrangendo dados do mercado de ações da Austrália, Canadá e EUA, além de futuros, commodities, forex e dados fundamentais. Para backtesting, as assinaturas de dados de nível superior fornecem acesso aos constituintes do índice histórico e ações excluídas, o que elimina o viés de sobrevivência no backtesting.

tiingo

O Tiingo SDK oferece acesso às APIs do provedor de dados financeiros Tiingo, como dados de preços de criptomoedas, dados de preços de ações, dados de preços forex, notícias e informações financeiras fundamentais da empresa.

simfin

simfin é um pacote que fornece acesso aos dados financeiros do simfin, que incluem preços de ações, índices financeiros da empresa e fundamentos financeiros.

ultrafinance

ultrafinance é um pacote para coleta de preços e dados fundamentais, análise de dados e backtesting.

tia

tia oferece acesso à API de dados da Bloomberg e fornece utilitários como geração de PDF, indicadores técnicos e backtesting.

yahoo_fin

O yahoo_fin fornece uma riqueza de dados gratuitos, como dados de preços, dados de capitalização de mercado, declarações de renda, balanços e informações sobre quais ativos estão disponíveis em quais bolsas.

yfinance

yfinance é outro pacote Python que oferece acesso conveniente aos dados da API do Yahoo Finance.

Notícias e mídias sociais e sentimento de notícias

SDK do Facebook

O SDK do Facebook fornece acesso e recurso de consulta para a plataforma de mídia social do Facebook.

flair

flair é um modelo NLP para análise de sentimento de texto.

keybert

keybert é uma biblioteca para extração de palavras-chave de informações de texto, postagens ou notícias.

praw

praw fornece acesso à plataforma de mídia social ' Reddit ' e permite que você pesquise subreddits e postagens.

pygooglenews

pygooglenews é um pacote Python para consultar o Google Notícias gratuitamente. No entanto, aplicam-se limites de taxa.

textblob

textblob é uma biblioteca de processamento de dados de texto compatível com NLP para extração de frases, marcação de partes da fala e análise de sentimentos.

tiingo

O Tiingo SDK oferece acesso às APIs do provedor de dados financeiros Tiingo, como dados de preços de criptomoedas, dados de preços de ações, dados de preços forex e informações financeiras fundamentais da empresa. Eles também têm uma API de notícias especificamente para notícias financeiras.

tweepy

tweepy é um pacote Python para acessar e consultar a plataforma de mídia social Twitter.

Análise de dados e estatísticas

numpy

Embora o numpy seja mais conhecido por seus recursos de manipulação de array, ele também oferece uma ampla gama de funções matemáticas, álgebra linear, randomização e funções de Transformação de Fourier.

pandas

pandas não é apenas a biblioteca para manipulação de dados de séries temporais, mas também contém uma grande seleção de funções estatísticas matemáticas e descritivas para operar nos DataFrames.

scipy

scipy fornece um grande número de funções de otimização, interpolação, transformação de Fourier e álgebra linear

statistics

statistics é um conjunto integrado de funções da linguagem Python para estatísticas como média, correlação, desvios padrão e regressão linear.

statsmodels

statsmodels fornece um grande número de classes e funções para modelos estatísticos, testes e exploração de dados.

Indicadores técnicos e padrões de velas

finta

finta implementa mais de 80 indicadores técnicos, alguns deles menos comuns como Stop-and-Reverse ou Fractal Adaptive Moving Average.

pandas-ta

O pandas-ta fornece uma grande variedade de indicadores técnicos e padrões de velas e pode ser facilmente usado com DataFrames.

TA-Lib

TA-Lib é uma biblioteca de indicadores técnicos com mais de 150 indicadores e padrões de velas.

ta

ta é outra biblioteca de indicadores técnicos construída sobre numpy e pandas para calcular os indicadores técnicos mais comuns.

Visualização de dados e gráficos de preços

matplotlib

matplotlib é uma biblioteca de visualização abrangente para gráficos estáticos e interativos.

ploty

plotly é uma biblioteca de visualização de código aberto que fornece muitos gráficos diferentes, como gráficos de linha, gráficos de dispersão, gráficos de área, gráficos de barras, barras de erro, gráficos de caixa, histogramas, mapas de calor, subplots, eixos múltiplos, gráficos polares e gráficos de bolhas.

seaborn

seaborn é um pacote de visualização construído sobre o matplotlib para criar gráficos estatísticos atraentes.

Análise de desempenho e risco

ffn

ffn é uma biblioteca financeira quantitativa que fornece avaliação de desempenho e gráficos relacionados.

finmarketpy

finmarketpy é um pacote para analisar dados de mercado e analisar a lucratividade das estratégias de negociação e visualizar os resultados.

pyfin

pyfin é um pacote para avaliação de opções usando modelos como Black-Scholes, treliça de simulação de Monte-Carlo.

pyfolio

pyfolio é uma biblioteca Python para análise de desempenho e risco de carteiras financeiras desenvolvida pela Quantopian Inc.

QuantPy

QuantyPy é uma biblioteca financeira quantitativa no estado Alpha que oferece cálculo de retornos, rações de risco, fronteira eficiente, etc.

QuantStats

QuantStats é uma biblioteca Python que realiza a criação de perfis de portfólio, permitindo que quants e gerentes de portfólio entendam melhor seu desempenho, fornecendo-lhes análises detalhadas e métricas de risco.

thepassiveinvestor

thepassiveinvestor é um pacote Python para criar vários relatórios de fundos mútuos no formato Excel.

vollib

vollib é uma biblioteca python para calcular preços de opções, volatilidade implícita e gregos usando Black, Black-Scholes e Black-Scholes-Merton.

Inteligência artificial

keras

keras é uma biblioteca que fornece utilitários para tensorflow para simplificar a construção, treinamento e otimização de modelos.

prophet

prophet é uma biblioteca suportada por IA desenvolvida pelo Facebook especificamente para análise preditiva de séries temporais.

pytorch

pytorch é outra estrutura avançada de aprendizado de máquina de código aberto para prototipagem rápida.

Scikit Learn

Skikit Learn é uma biblioteca que fornece ferramentas preditivas de aprendizado de dados e é construída sobre numpy, Skipy e matplotlib.

tensorflow

tensorflow é uma das estruturas de IA mais populares para processamento de ML, NLP, visão e áudio desenvolvido pelo Google.

TensorTrade

TensorTrade é uma biblioteca Python para criar, treinar e executar algoritmos de negociação usando aprendizado de reforço profundo.

Backtesting

backtesting.py

backtesting.py é minha estrutura de backtesting favorita porque é simples de implementar, mas muito poderosa, oferecendo gráficos dinâmicos e otimização.

backtrader

backtrader é uma estrutura de backtesting que suporta desenvolvimento de estratégia, backtesting, otimização e negociação ao vivo.

bt

bt é uma estrutura de backtesting flexível para testar estratégias de negociação quantitativas. Atualmente está na fase Alfa.

lean

lean é um mecanismo de negociação algorítmica para pesquisa de estratégia, backtesting e negociação ao vivo.

pybacktest

pybacktest é uma estrutura de backtesting simples, mas poderosa, que cria estatísticas e visualizações de desempenho.

QuantRocket

QuantRocket é uma plataforma de negociação que oferece acesso a dados, desenvolvimento e otimização de estratégias, backtesting, etc.

zipline

zipline é uma biblioteca de backtesting desenvolvida pela Quantopian para backtesting orientado a eventos e negociação ao vivo.

Negociação ao vivo

Muitas trocas oferecem suas próprias APIs e SDKs REST, por exemplo, Binance, Alpaca, Coinbase, etc. Listá-los todos iria além do escopo deste post. Verifique na seção 'Desenvolvimento' de sua bolsa quais ferramentas de desenvolvimento estão disponíveis. Aqui estão alguns pacotes que suportam múltiplas trocas.

cctx

cctx é uma biblioteca que simplifica o acesso à API para muitas trocas de criptomoedas e serviços de processamento de pagamentos, fornecendo uma API comum. Atualmente suporta 115 trocas.

cex-io-api-python

O pacote cex-io -api-python fornece uma interface de API ridiculamente simples para a troca de moeda criptográfica cex-io . Na verdade, é a API de corretora mais simples que já vi.

FreqTrade

FreqTrade é um bot de negociação que fornece acesso a muitas trocas de criptografia e pode ser controlado via Telegram ou Web UI. Ele também fornece plotagem, gerenciamento de dinheiro, backtesting e otimização.

HummingBot

O HummingBot é um Python Framework de código aberto que ajuda a criar bots fornecendo conectores para mais de 30 trocas centralizadas e descentralizadas.

Pyalgotrade

Pyalgotrade é uma biblioteca para negociação algorítmica e backtesting usando a troca de criptografia Bitstamp .

QuantRocket

QuantRocket é uma plataforma de negociação que oferece acesso a dados, desenvolvimento e otimização de estratégias, backtesting, etc.

Tradelogics

Tradelogics é uma plataforma de negociação em nuvem com recursos para acesso a dados e pesquisa de estratégia que suporta várias linguagens de programação e muitas trocas.

Até mais

Neste post, listei pacotes Python úteis em diferentes áreas funcionais, como processamento de dados, análise técnica, desempenho e análise de risco, backtesting e negociação ao vivo que podem ser usados para construir um sistema de negociação automática.

Espero que você tenha achado este post digno de seu tempo.