Ce projet fournit un cadre polyvalent pour l'analyse des sentiments sur les données boursières, en effectuant des backtests avec Backtrader et en tirant parti de modèles d'IA génératifs tels que le pipeline OpenAI, Llama et Transformers pour l'analyse des données de sentiment. Il englobe des fonctionnalités permettant de télécharger des données boursières à partir de Yahoo Finance, de récupérer des données d'actualité boursière à l'aide des API Alpaca, de prétraiter les données de sentiment et d'exécuter des backtests avec des stratégies personnalisables. L'intégration de modèles linguistiques avancés améliore le processus d'analyse des sentiments, permettant une compréhension plus nuancée des sentiments du marché.
Ce projet vise à fournir un flux de travail rationalisé pour analyser le sentiment du marché boursier et tester les stratégies de trading. Il exploite Backtrader pour les backtests et yfinance pour le téléchargement de données boursières.
requirements.txt
Clonez le dépôt :
git clone https://github.com/your-username/stock-sentiment-backtesting.git
cd stock-sentiment-backtesting
Créez un environnement virtuel (facultatif mais recommandé) :
python -m venv venv
Activez l'environnement virtuel :
Sous Windows :
venv S cripts a ctivate
Sous macOS/Linux :
source venv/bin/activate
Installer les dépendances :
pip install -r requirements.txt
Modifiez les paramètres de configuration dans main.py
pour personnaliser le stock, la plage de dates et d'autres paramètres pour votre analyse.
STOCK_TICKER = 'AAPL'
START_DATE = '2022-03-21'
END_DATE = '2022-12-31'
SENTIMENT_DATA_PATH = 'data/stock_sentiment_data.csv'
Exécutez le script principal pour exécuter le backtest :
python main.py
Les résultats du backtest, y compris les mesures de performances, seront affichés dans la 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/
└── ...
Installez la bibliothèque Alpaca Python :
pip install alpaca-trade-api
Utilisez la clé API dans votre code :
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 )
Installez la bibliothèque officielle OpenAI :
pip install openai
Définissez votre clé API comme variable d'environnement :
export OPENAI_API_KEY= " YOUR_API_KEY "
Vous pouvez également le fournir directement dans votre code :
import openai
openai . api_key = "YOUR_API_KEY"
Installez les bibliothèques nécessaires :
pip install transformers
Définissez votre jeton Hugging Face comme variable d'environnement :
export HF_ACCESS_TOKEN= " YOUR_TOKEN "
Soyez prudent lorsque vous manipulez les clés et les jetons API. Évitez de les exposer dans des référentiels publics ou de les partager sans mesures de sécurité appropriées.
N'hésitez pas à inclure ces informations dans votre README pour obtenir des instructions de configuration complètes.
main.py : contient le script principal pour exécuter des backtests et définir la stratégie.
data : répertoire pour stocker les fichiers de données, y compris les données boursières et sentimentales.
sortie : répertoire pour enregistrer les résultats et les tracés du backtest.
llms : contient les clients OpenAI et Llama pour l'analyse des sentiments.
processeur : contient un processeur de données boursières pour le prétraitement des actualités boursières et des données de sentiment.
runner : contient la classe de backtest runner pour les backtests à l'aide de cerebro et backtrader.
sentiment_analysis : contient un pipeline de transformateur pour l'analyse des sentiments sur les données d'actualité.
stratégies : contient du code pour la stratégie technique uniquement et la stratégie technique avec analyse des sentiments.
.gitignore : Spécifie les fichiers et répertoires à ignorer par le contrôle de version.
README.md : documentation du projet.
exigences.txt : liste des dépendances Python.
Les contributions sont les bienvenues ! Veuillez suivre les directives de contribution.
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.