スクリプトの役割分類 - stockautoflow/stockautov3 GitHub Wiki

スクリプトの役割分類

現在のシステムは、バックテストとリアルタイムトレードで役割が明確に分かれているスクリプトと、両方で共通して使用されるスクリプトで構成されています。

1. バックテスト用のみに使用

これらのスクリプトは、過去のデータを用いて戦略の有効性を検証・分析する目的でのみ使用されます。

ファイル/モジュール名 役割と分類理由
run_all_strategies.py strategies.yml に定義された全戦略のバックテストを連続実行するマスターコントローラー。
run_backtrader.py 単一の戦略定義 (strategy.yml) に基づき、バックテストを実行するコアスクリプト。
config_backtrader.py バックテスト時の初期資金や手数料などを定義する専用の設定ファイル。
report_generator.py バックテスト結果を集計し、サマリーレポート (summary_*.csv) などを生成する。
app.py, chart_generator.py, templates/index.html バックテスト結果をチャートで可視化・分析するためのWebアプリケーション。
create_project_files.py 上記を含む、バックテスト環境全体を生成するためのスクリプト。

2. リアルタイム用のみに使用

これらのスクリプトは、実際の市場データに接続し、取引を実行する目的でのみ使用されます。

ファイル/モジュール名 役割と分類理由
run_realtrade.py リアルタイムトレードの起動、監視、停止を行うメインコントローラー。
config_realtrade.py ライブ取引のモード(SBI/Yahoo/Mock)やAPIキーなどを定義する専用の設定ファイル。
realtrade/state_manager.py ポジションの状態をSQLiteデータベースに永続化・管理する。
realtime/analyzer.py backtraderエンジン内で取引イベントを監視し、StateManagerを呼び出す。
realtrade/live/* SBI証券やYahoo Financeなど、外部のライブデータソース/APIとの接続を担うモジュール群。
realtrade/mock/* ライブ取引のロジックを、外部接続なしでテストするためのモックデータを提供する。
create_project_files_realtime.py 上記を含む、リアルタイムトレード環境の骨格を生成するためのスクリプト。

3. 両方に使用

これらのスクリプトは、バックテストとリアルタイムトレードの両方のプロセスで共通して利用される、システムの中核的なコンポーネントです。

ファイル/モジュール名 役割と分類理由
btrader_strategy.py 戦略ロジックの本体。live_tradingフラグによって、決済方法をバックテスト用のネイティブ注文とリアルタイム用の成行注文に切り替えるため、両方で必須となる最重要コンポーネント。
logger_setup.py ログ出力設定を共通化するためのモジュール。両方の実行スクリプトから利用される。
strategies.yml エントリー戦略のパターンを定義したカタログ。バックテスト(run_all_strategies.py)とリアルタイム(run_realtrade.py)の両方で読み込まれる。
strategy.yml 個別バックテスト時のベース設定ファイル。また、run_all_strategies.pyが動的に戦略を上書きする際のテンプレートとしても利用される。
all_recommend_*.csv バックテスト(run_all_strategies.py)の結果として生成され、リアルタイム取引(run_realtrade.py)でどの銘柄にどの戦略を適用するかのインプットとして利用される。
notifier.py, email_config.yml メール通知機能。両方のプロセスから呼び出し可能。