Este proyecto proporciona un marco versátil para el análisis de sentimiento sobre los datos del mercado de valores, realizando pruebas retrospectivas con Backtrader y aprovechando modelos generativos de IA como OpenAI, Llama y Transformers para el análisis de datos de sentimiento. Abarca funcionalidades para descargar datos bursátiles de Yahoo Finance, obtener datos de noticias del mercado de valores utilizando las API de Alpaca, preprocesar datos de sentimiento y ejecutar pruebas retrospectivas con estrategias personalizables. La integración de modelos de lenguaje avanzados mejora el proceso de análisis de sentimientos, lo que permite una comprensión más matizada de los sentimientos del mercado.
Este proyecto tiene como objetivo proporcionar un flujo de trabajo optimizado para analizar el sentimiento del mercado de valores y probar estrategias comerciales. Aprovecha Backtrader para realizar pruebas retrospectivas y yfinance para descargar datos de acciones.
requirements.txt
Clonar el repositorio:
git clone https://github.com/your-username/stock-sentiment-backtesting.git
cd stock-sentiment-backtesting
Cree un entorno virtual (opcional pero recomendado):
python -m venv venv
Activar el entorno virtual:
En Windows:
venv S cripts a ctivate
En macOS/Linux:
source venv/bin/activate
Instalar dependencias:
pip install -r requirements.txt
Edite los parámetros de configuración en main.py
para personalizar el stock, el rango de fechas y otras configuraciones para su análisis.
STOCK_TICKER = 'AAPL'
START_DATE = '2022-03-21'
END_DATE = '2022-12-31'
SENTIMENT_DATA_PATH = 'data/stock_sentiment_data.csv'
Ejecute el script principal para ejecutar el backtest:
python main.py
Los resultados de la prueba retrospectiva, incluidas las métricas de rendimiento, se mostrarán en la consola.
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 la biblioteca Alpaca Python:
pip install alpaca-trade-api
Utilice la clave API en su 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 la biblioteca oficial OpenAI:
pip install openai
Configure su clave API como una variable de entorno:
export OPENAI_API_KEY= " YOUR_API_KEY "
Alternativamente, proporciónelo directamente en su código:
import openai
openai . api_key = "YOUR_API_KEY"
Instale las bibliotecas necesarias:
pip install transformers
Configure su token Hugging Face como una variable de entorno:
export HF_ACCESS_TOKEN= " YOUR_TOKEN "
Tenga cuidado al manipular claves y tokens API. Evite exponerlos en repositorios públicos o compartirlos sin las medidas de seguridad adecuadas.
No dude en incluir esta información en su archivo LÉAME para obtener instrucciones de configuración completas.
main.py: contiene el script principal para ejecutar pruebas retrospectivas y definir estrategias.
datos: Directorio para almacenar archivos de datos, incluidos datos de acciones y opiniones.
salida: Directorio para guardar gráficos y resultados de pruebas retrospectivas.
llms: Contiene clientes OpenAI y Llama para análisis de sentimiento.
Procesador: contiene un procesador de datos bursátiles para preprocesar noticias bursátiles y datos de sentimiento.
runner: contiene una clase de backtest runner para realizar pruebas retrospectivas utilizando cerebro y backtrader.
sentiment_analysis: contiene un canal transformador para el análisis de sentimientos sobre datos de noticias.
estrategias: Contiene código para estrategia solo técnica y técnica con estrategia de análisis de sentimiento.
.gitignore: especifica archivos y directorios que el control de versiones ignorará.
README.md: documentación del proyecto.
requisitos.txt: Lista de dependencias de Python.
¡Las contribuciones son bienvenidas! Siga las pautas de contribución.
Este proyecto tiene la licencia MIT; consulte el archivo de LICENCIA para obtener más detalles.