Este projeto fornece uma estrutura versátil para análise de sentimento em dados do mercado de ações, conduzindo backtesting com Backtrader e aproveitando modelos generativos de IA, como OpenAI, Llama e pipeline de Transformers para análise de dados de sentimento. Abrange funcionalidades para baixar dados de ações do Yahoo Finance, buscar dados de notícias do mercado de ações usando APIs Alpaca, pré-processar dados de sentimento e executar backtests com estratégias personalizáveis. A integração de modelos de linguagem avançados aprimora o processo de análise de sentimento, permitindo uma compreensão mais sutil dos sentimentos do mercado.
Este projeto tem como objetivo fornecer um fluxo de trabalho simplificado para analisar o sentimento do mercado de ações e backtesting de estratégias de negociação. Ele aproveita o Backtrader para backtesting e o yfinance para baixar dados de ações.
requirements.txt
Clone o repositório:
git clone https://github.com/your-username/stock-sentiment-backtesting.git
cd stock-sentiment-backtesting
Crie um ambiente virtual (opcional, mas recomendado):
python -m venv venv
Ative o ambiente virtual:
No Windows:
venv S cripts a ctivate
No macOS/Linux:
source venv/bin/activate
Instale dependências:
pip install -r requirements.txt
Edite os parâmetros de configuração em main.py
para personalizar o estoque, o intervalo de datas e outras configurações para sua análise.
STOCK_TICKER = 'AAPL'
START_DATE = '2022-03-21'
END_DATE = '2022-12-31'
SENTIMENT_DATA_PATH = 'data/stock_sentiment_data.csv'
Execute o script principal para executar o backtest:
python main.py
Os resultados do backtest, incluindo métricas de desempenho, serão exibidos no console.
algotrading-sentimentanalysis-genai/
├── alpaca/
│ └── client.py
├── data/
│ └── stock_sentiment_data.csv
│ └── ...
├── llms/
│ └── llama_llm.py
│ └── openai_llm.py
├── processor/
│ └── stock_data_processor.py
├── runner/
│ └── backtest_runner.py
├── sentiment_analysis/
│ └── sentiment_analysis_pipeline.py
├── strategies/
│ └── technical_only_strategy/
│ └── technical_with_sentiment_strategy/
├── output/
│ └── ...
├── .gitignore
├── README.md
├── requirements.txt
├── main.py
└── venv/
└── ...
Instale a biblioteca Alpaca Python:
pip install alpaca-trade-api
Use a chave API em seu código:
from alpaca_trade_api import REST
alpaca_api_key = "YOUR_API_KEY"
alpaca_secret_key = "YOUR_SECRET_KEY"
rest_client = REST ( alpaca_api_key , alpaca_secret_key )
Instale a biblioteca oficial OpenAI:
pip install openai
Defina sua chave de API como uma variável de ambiente:
export OPENAI_API_KEY= " YOUR_API_KEY "
Como alternativa, forneça-o diretamente em seu código:
import openai
openai . api_key = "YOUR_API_KEY"
Instale as bibliotecas necessárias:
pip install transformers
Defina seu token Hugging Face como uma variável de ambiente:
export HF_ACCESS_TOKEN= " YOUR_TOKEN "
Tenha cuidado ao manusear chaves e tokens de API. Evite expô-los em repositórios públicos ou compartilhá-los sem as devidas medidas de segurança.
Sinta-se à vontade para incluir essas informações em seu README para obter instruções de configuração abrangentes.
main.py: Contém o script principal para execução de backtests e definição de estratégia.
data: Diretório para armazenar arquivos de dados, incluindo dados de ações e sentimentos.
saída: Diretório para salvar resultados e gráficos de backtest.
llms: Contém clientes OpenAI e Llama para análise de sentimento.
processador: Contém processador de dados de ações para pré-processar notícias de ações e dados de sentimento.
runner: Contém a classe backtest runner para backtesting usando cerebro e backtrader.
sentiment_análise: Contém pipeline de transformador para análise de sentimento em dados de notícias.
estratégias: Contém código apenas para estratégia técnica e técnica com estratégia de análise de sentimento.
.gitignore: Especifica arquivos e diretórios a serem ignorados pelo controle de versão.
README.md: Documentação do projeto.
requisitos.txt: Lista de dependências do Python.
Contribuições são bem-vindas! Por favor, siga as Diretrizes de Contribuição.
Este projeto está licenciado sob a licença MIT - consulte o arquivo LICENSE para obter detalhes.