Этот проект предоставляет универсальную основу для анализа настроений на данных фондового рынка, проведения бэктестинга с помощью Backtrader и использования генеративных моделей искусственного интеллекта, таких как конвейер OpenAI, Llama и Transformers, для анализа данных о настроениях. Он включает в себя функциональные возможности для загрузки данных об акциях из Yahoo Finance, получения данных о новостях фондового рынка с использованием API-интерфейсов Alpaca, предварительной обработки данных о настроениях и проведения бэктестов с настраиваемыми стратегиями. Интеграция расширенных языковых моделей улучшает процесс анализа настроений, позволяя более детально понять настроения рынка.
Целью этого проекта является обеспечение оптимизированного рабочего процесса для анализа настроений на фондовом рынке и тестирования торговых стратегий. Он использует 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. Не размещайте их в общедоступных репозиториях и не делитесь ими без надлежащих мер безопасности.
Не стесняйтесь включать эту информацию в свой README для получения подробных инструкций по настройке.
main.py: содержит основной скрипт для проведения бэктестов и определения стратегии.
data: каталог для хранения файлов данных, включая данные об акциях и настроениях.
вывод: каталог для сохранения результатов и графиков бэктестов.
llms: содержит клиенты OpenAI и Llama для анализа настроений.
процессор: Содержит процессор биржевых данных для предварительной обработки биржевых новостей и данных о настроениях.
runner: Содержит класс бэктестера для бэктестинга с использованием cerebro и backtrader.
сентимент_анализ: Содержит конвейер преобразователей для анализа настроений в новостных данных.
стратегии: Содержит код только для технической стратегии и технической стратегии со стратегией анализа настроений.
.gitignore: указывает файлы и каталоги, которые будут игнорироваться системой контроля версий.
README.md: Документация проекта.
требования.txt: список зависимостей Python.
Вклады приветствуются! Пожалуйста, следуйте Правилам внесения взносов.
Этот проект лицензируется по лицензии MIT — подробности см. в файле LICENSE.