Introdução geral
O Abu Quantitative Trading System é uma plataforma de código aberto baseada em Python. Foi criada pelo usuário "bbfamily" para ajudar os investidores a implementar estratégias de negociação quantitativas por meio de código. O sistema suporta backtesting e negociação de uma ampla gama de produtos financeiros, como ações, opções, futuros e bitcoin. Ele incorpora a tecnologia de aprendizado de máquina para fornecer análise de dados e otimização de estratégias. Em 25 de março de 2025, esse projeto tinha mais de 12 mil estrelas e 3,8 mil bifurcações no GitHub, o que mostra um grande número de seguidores na comunidade. O objetivo de Abu é tornar as decisões de investimento mais fáceis para os usuários por meio de automação e inteligência.
Lista de funções
- Oferece suporte à negociação em vários mercados: pode lidar com dados de cotações das bolsas de valores de Xangai e Shenzhen, ações dos EUA, futuros e moedas digitais.
- Função de backtest: fornece análise de dados históricos para testar a eficácia das estratégias de negociação.
- Seleção de ações e tempo: várias estratégias integradas de seleção de ações e tempo para facilitar aos usuários a triagem de ações e decidir o momento de comprar e vender.
- Integração de aprendizado de máquina: combinação de algoritmos de aprendizado de máquina para otimizar modelos de negociação.
- Altamente personalizável: os usuários podem modificar o código e ajustar as políticas e os parâmetros de acordo com suas necessidades.
- Gerenciamento de dados: suporta a coleta e o processamento paralelo de dados financeiros de séries temporais.
- Execução comercial: conecte-se a interfaces de mercado para automatizar as operações de compra e venda.
Usando a Ajuda
O Abu Quantitative Trading System é um projeto de código aberto e os usuários precisam de algumas habilidades básicas de programação para começar. Ele não tem uma interface gráfica pronta para uso, mas é executado por meio do código Python. Abaixo estão as etapas detalhadas de instalação e uso:
Processo de instalação
- Preparação do ambiente
- Certifique-se de que seu computador tenha o Python 3.x instalado (recomenda-se o 3.7 ou superior).
- Faça download e instale a ferramenta Git para extrair código do GitHub.
- Opcional: instale o Anaconda para facilitar o gerenciamento do ambiente Python e dos pacotes dependentes.
- Código de clonagem
- Abra um terminal ou uma linha de comando e digite o seguinte comando para extrair o projeto Abu:
git clone https://github.com/bbfamily/abu.git
- Quando terminar, vá para a pasta do projeto:
cd abu
- Abra um terminal ou uma linha de comando e digite o seguinte comando para extrair o projeto Abu:
- Instalação de dependências
- O projeto requer algum suporte à biblioteca Python, que é instalada executando o seguinte comando no terminal:
pip install -r requirements.txt
- Se você não tiver um arquivo , poderá instalar as bibliotecas principais manualmente, por exemplo
numpy
epandas
responder cantandosklearn
::pip install numpy pandas scikit-learn
- O projeto requer algum suporte à biblioteca Python, que é instalada executando o seguinte comando no terminal:
- Verificar a instalação
- No terminal, digite
python
, entre no ambiente Python. - estar em movimento
import abupy
Se nenhum erro for relatado, a instalação foi bem-sucedida.
- No terminal, digite
Uso
O núcleo do sistema Abu é executar estratégias de negociação quantitativas por meio de código. Abaixo está um fluxo detalhado de como as principais funções funcionam:
1. coleta e preparação de dados
- O Abu suporta a obtenção de dados históricos de vários mercados, como os mercados de ações de Xangai e Shenzhen ou ações dos EUA.
- Defina o tipo de mercado no código, por exemplo:
from abupy import ABuEnv ABuEnv.g_market_target = 'us' # 设置为美股市场
- Execute a função de coleta de dados:
from abupy import all_symbol symbols = all_symbol() # 获取所有股票代码
2. backtesting de estratégias de negociação
- Defina estratégias de compra e venda. Por exemplo, use uma estratégia de fuga:
buy_factors = [{'xd': 60, 'class': 'AbuFactorBuyBreak'}] sell_factors = [{'stop_loss_n': 0.5, 'class': 'AbuFactorAtrNStop'}]
- Defina o financiamento inicial e o tempo de backtesting:
from abupy import run_loop_back result = run_loop_back( read_cash=1000000, # 初始资金100万 buy_factors=buy_factors, sell_factors=sell_factors, n_folds=2, # 回测2年数据 start='2023-01-01', # 开始时间 end='2025-01-01' # 结束时间 )
- Exibir resultados: Após a execução, o sistema retornará os lucros/perdas e as estatísticas da negociação.
3. seleção de ações e tempo
- Use o seletor de ações embutido para selecionar ações. Por exemplo, selecione por preço:
from abupy import AbuPickStockPriceMinMax stock_picks = [{'class': 'AbuPickStockPriceMinMax', 'threshold_price_min': 50.0}]
- Combinado com execuções de backtesting:
result = run_loop_back(read_cash=1000000, buy_factors=buy_factors, sell_factors=sell_factors, stock_picks=stock_picks)
4. otimização de aprendizado de máquina
- Abu integra recursos de aprendizado de máquina para otimizar os parâmetros da estratégia. Exemplo:
from abupy import AbuMLGrid best_params = AbuMLGrid.grid_search_mul_init_kwargs(...) # 优化参数
- Aplique os parâmetros otimizados ao backtest.
5. operação e comissionamento
- Salve o código como
.py
arquivos, comotrade.py
. - É executado no terminal:
python trade.py
- Se algo der errado, verifique a saída do registro e ajuste o código ou os parâmetros.
Operação da função em destaque
- Suporte a vários mercados: através de
ABuEnv.g_market_target
Mercados de comutação, como'cn'
(Xangai e Shenzhen),'us'
(ações dos EUA) ou'btc'
(Bitcoin). - processamento paralelo: Configurações
n_process_kl
responder cantandon_process_pick
usando CPUs com vários núcleos para acelerar o processamento de dados e o backtesting. - Estratégias personalizadasOs usuários podem escrever sua própria lógica de compra e venda para colocar no
buy_factors
talvezsell_factors
.
Mais tutoriais podem ser encontrados na pasta do projeto, que contém a documentação detalhada do IPython Notebook.
cenário do aplicativo
- Investimentos quantitativos individuais
Os investidores individuais podem usar o Abu para testar suas ideias de negociação, como, por exemplo, verificar se uma estratégia de breakout é lucrativa por meio de dados históricos. - Pesquisa financeira
Os pesquisadores podem usá-lo para analisar tendências de mercado e extrair padrões de dados em conjunto com o aprendizado de máquina. - Negociação automatizada
Os programadores podem se conectar a interfaces de dados em tempo real para operações de compra e venda totalmente automatizadas.
QA
- Quais mercados são compatíveis com o Abu?
Ele oferece suporte a uma ampla variedade de mercados, como os mercados de ações de Xangai e Shenzhen, ações dos EUA, futuros e Bitcoin, e os usuários podem alternar livremente. - Precisa de uma base de programação?
Sim, o Abu é executado em Python e requer que o usuário seja capaz de escrever códigos simples. - Como posso obter ajuda?
Você pode conferir o arquivo no GitHub ou seguir o tutorial no WeChat "abu_quant".