決算などの“根拠”からエントリーを設計し、同じ手順で淡々と検証する——。
動画⇩
https://youtu.be/OPU-GAQY7OI
今回は、決算日を起点に40営業日分の銘柄コードを自動で流し込み、日次で一括シミュレーションを回すための考え方と手順をわかりやすくまとめます。
私の失敗・改善の積み重ねから生まれた、現実的で再現性のあるワークフローです。
この記事でやること
- 決算などのイベント日を起点にする
- **空のデータマップ(日付→銘柄コードのリスト)**を用意
- 翌営業日から40営業日分、その銘柄コードを日付に自動アサイン
- 日付ごとに対応する銘柄リストを取得→シミュレーションを一括実行
- 日次でループし、全期間を同一ロジックで検証
ステップ1:空のデータマップをつくる
まずはベースになる**「日付→銘柄コードの空リスト」**を用意します。変数名は何でもOK。ここが“器”になります。
例)2025-08-01
のような営業日キーに、最初は空の []
を割り当てておきます。
ステップ2:決算日から40営業日に銘柄を流し込む
次に、決算発表の翌営業日を起点に、40営業日ぶんだけその銘柄コードを順番に入れていきます。
- 例1:8/1に決算 → 翌営業日から40営業日にわたってその銘柄コードを挿入
- 例2:8/6に決算 → 同様に翌営業日から40営業日分挿入
イメージとしては、マップ内で**「日付1→日付40」までスライドしながら、対象コードを空のリストにappend**していく感じです。
決算が複数あれば、その分だけ同じ処理を重ねます。
ステップ3:日付で回す日次ループ(シミュレーションの心臓部)
ここが重要。**“日付でforループ”→“その日付に紐づく銘柄コードのリストを取得”→“リストの中身をさらにforで回して売買ロジックを実行”**という二段構えです。
- 当日の日付を取得(DBやカレンダー、どちらでもOK)
- データマップから一致する日付のコードリストを取得
- そのリストをforで回し、個別に自動売買のシミュレーションを実行
- 結果を保存したら次の日付へ——これを期間分まわし切る
この仕組みの良さは、検証の粒度を「日付単位」に落とし込めること。イベント起点(決算)→翌営業日からの値動き、という“狙いどころ”をブレさせずに評価できます。
ステップ4:結果の見方(予告)
本記事では設計と流れまで。次回は、ファンダメンタルズを考慮したシミュレーション結果を具体例とともにお見せします。イベント起点の強み・弱み、改善ポイントまで解説予定です。
まとめ
- 決算→翌営業日→40営業日という“時間の型”を固定
- 日付×銘柄リストをマップ化して一括管理
- 日付ループ→コードループで機械的に検証
- 主観を排し、同一ルールで比較可能なデータをつくる
関連キーワード(ハッシュタグ)
#ファンダメンタルズ #システムトレード #自動売買 #日本株 #決算 #40営業日 #シミュレーション #Python #データフレーム #イベントドリブン #バックテスト #検証設計 #リスク管理
あなたのブログ内の関連記事(おすすめ)
XGBoostの評価と改善(SHAPで特徴量を見直す)。 LIFE INFOMATION+1
Pythonで株の自動売買を実現!VBAではなくPythonをおすすめする理由。 LIFE INFOMATION
【株シミュレーション】軍資金に応じた現実的トレード戦略と資金管理。 LIFE INFOMATION
トレード数が多いほど正確?日経平均に引きずられるシミュレーションの罠と対策。 LIFE INFOMATION
【実録】日経平均の大幅反発を除いたリアルな自動売買成績と限界。 LIFE INFOMATION
【重要修正】“出来高ゼロ”と“窓開け損切り漏れ”を完全修正した話。 LIFE INFOMATION
ChatGPTとPythonで銘柄選定を自動化(ログイン不要の入力操作まで)。 LIFE INFOMATION