该项目为股市数据情绪分析提供了一个多功能框架,使用 Backtrader 进行回溯测试,并利用 OpenAI、Llama 和 Transformers pipeline 等生成式 AI 模型进行情绪数据分析。它包含从雅虎财经下载股票数据、使用 Alpaca API 获取股票市场新闻数据、预处理情绪数据以及使用可定制策略运行回测的功能。集成高级语言模型增强了情绪分析过程,从而可以更细致地了解市场情绪。
该项目旨在提供一个简化的工作流程来分析股市情绪和回测交易策略。它利用 Backtrader 进行回溯测试,并利用 yfinance 来下载股票数据。
requirements.txt
中列出的依赖项克隆存储库:
git clone https://github.com/your-username/stock-sentiment-backtesting.git
cd stock-sentiment-backtesting
创建虚拟环境(可选但推荐):
python -m venv venv
激活虚拟环境:
在 Windows 上:
venv S cripts a ctivate
在 macOS/Linux 上:
source venv/bin/activate
安装依赖项:
pip install -r requirements.txt
编辑main.py
中的配置参数以自定义股票、日期范围和分析的其他设置。
STOCK_TICKER = 'AAPL'
START_DATE = '2022-03-21'
END_DATE = '2022-12-31'
SENTIMENT_DATA_PATH = 'data/stock_sentiment_data.csv'
执行主脚本运行回测:
python main.py
回测结果(包括性能指标)将显示在控制台中。
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/
└── ...
安装 Alpaca Python 库:
pip install alpaca-trade-api
在代码中使用 API 密钥:
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 )
安装官方OpenAI库:
pip install openai
将您的 API 密钥设置为环境变量:
export OPENAI_API_KEY= " YOUR_API_KEY "
或者,直接在代码中提供它:
import openai
openai . api_key = "YOUR_API_KEY"
安装必要的库:
pip install transformers
将您的 Hugging Face 令牌设置为环境变量:
export HF_ACCESS_TOKEN= " YOUR_TOKEN "
处理 API 密钥和令牌时请务必小心。避免将它们暴露在公共存储库中或在没有适当安全措施的情况下共享它们。
请随意将此信息包含在您的自述文件中,以获取全面的设置说明。
main.py:包含运行回测和策略定义的主脚本。
data:存储数据文件的目录,包括股票和情绪数据。
输出:保存回测结果和绘图的目录。
llms:包含用于情绪分析的 OpenAI 和 Llama 客户端。
处理器:包含股票数据处理器,用于预处理股票新闻和情绪数据。
runner:包含回测运行器类,用于使用 cerebro 和 backtrader 进行回溯测试。
情感分析:包含用于新闻数据情感分析的变压器管道。
策略:包含纯技术策略和带有情绪分析策略的技术代码。
.gitignore:指定版本控制要忽略的文件和目录。
README.md:项目文档。
requirements.txt: Python 依赖项列表。
欢迎贡献!请遵循贡献指南。
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅许可证文件。