このプロジェクトは、株式市場データのセンチメント分析のための多用途のフレームワークを提供し、Backtrader でバックテストを実施し、OpenAI、Llama、Transformers パイプラインなどの生成 AI モデルをセンチメント データ分析に活用します。これには、Yahoo Finance からの株式データのダウンロード、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
ハグフェイス トークンを環境変数として設定します。
export HF_ACCESS_TOKEN= " YOUR_TOKEN "
API キーとトークンを扱うときは注意してください。適切なセキュリティ対策を講じずに公開リポジトリに公開したり、共有したりしないようにしてください。
包括的なセットアップ手順については、この情報を README に自由に含めてください。
main.py:バックテストと戦略定義を実行するためのメイン スクリプトが含まれています。
data:株式データやセンチメント データなどのデータ ファイルを保存するディレクトリ。
出力:バックテスト結果とプロットを保存するためのディレクトリ。
llms:センチメント分析用の OpenAI および Llama クライアントが含まれています。
プロセッサ:株式ニュースとセンチメント データを前処理するための株式データ プロセッサが含まれています。
runner: cerebro と backtrader を使用したバックテスト用のバックテスト ランナー クラスが含まれています。
センチメント分析:ニュース データのセンチメント分析のためのトランスフォーマー パイプラインが含まれています。
戦略:テクニカルのみの戦略とセンチメント分析を伴うテクニカル戦略のコードが含まれます。
.gitignore:バージョン管理によって無視されるファイルとディレクトリを指定します。
README.md:プロジェクトのドキュメント。
requirements.txt: Python の依存関係のリスト。
貢献は大歓迎です!投稿ガイドラインに従ってください。
このプロジェクトは MIT ライセンスに基づいてライセンスされています。詳細については、LICENSE ファイルを参照してください。