😎

朝から株野郎?計画4

に公開

前回の記事

https://zenn.dev/rucco/articles/a5c7e873088a67

事前確認

最初にpythonのパスを確認しておきます。
私の場合、仮想環境でpythonを動かしているので、以下になります。
D:\py_kasou\kabu.venv\Scripts\python.exe

よくわからない場合は、
VSCodeのターミナルで、以下コマンドを入力するとパスが表示されます。

python -c "import sys; print(sys.executable)"

バッチファイル作成

update_log.txtというログファイルをプロジェクトフォルダの中に作って、
処理の開始時刻と終了時刻をログファイルに記録します。
また、エラーがあればエラーも記録します。

kabuフォルダに新規ファイル「run_update_kabu.bat」を作成。

@echo off
set LOGFILE=D:\py_kasou\kabu\logs\update_log.txt
mkdir D:\py_kasou\kabu\logs 2>null

echo [START] %DATE% %TIME% > %LOGFILE%
D:\py_kasou\kabu\.venv\Scripts\python.exe D:\py_kasou\kabu\update_all.py >> %LOGFILE% 2>&1
echo [END] %DATE% %TIME% >> %LOGFILE%

2行目はログファイルを保管するフォルダへのパスと、
ファイル名(この例の場合update_log_20250709/060000.txt)を入力
3行目はフォルダのパスを入力
6行目は手前がpythonのパス、後ろが実行するファイルです。

バッチファイルをダブルクリックして動かしてみます。

タスクスケジューラ設定

作成したバッチファイルをタスクスケジューラに登録します。
Windowsのスタートボタンの横にある検索ボックスに「タスク」と入力すると
タスクスケジューラが検索されます。

うまくスクショが取れなかったのですが^^;
「操作」メニューの中にある「基本タスクの作成」を選択

好きな名前を付けて、「次へ」

「毎日」を選択して「次へ」

「時間」を設定して「次へ」(私は6時!)

「プログラムの開始」を選択して「次へ」

「プログラム/スクリプト」にcmdを入力
引数にさっき作ったバッチファイルのパス("D:\py_kasou\kabu\run_update_kabu.bat")を
入力←朝6時にこれが実行されます
引数に入力するパスにはダブルクオーテーションをつけます!
「次へ」

確認して、「完了」

最後に登録の確認をして終わり!

なお、ターミナルからタスクすけーじゅるの確認をするには、以下コマンドを入力します。

 schtasks /query /TN "株価取得"

こんな感じで出力します。

設定した時間にPCが立ち上がってないと動かないです^^;

タスクの実行結果を確認

タスクの実行結果は、バッチが作成したログファイルもしくはイベントビューアで確認できます。

ログファイルで確認

私の場合は「D:\py_kasou\kabu\logs」フォルダの中にupdate_log.txtがあります。
これを開きます。
[START]と[END]の日時がこのバッチが動いた日時。

[START] 2025/07/11  6:00:01.95 
D:\py_kasou\kabu\update_stock_prices.py:14: FutureWarning: YF.download() has changed argument auto_adjust default to True
  df = yf.download(symbols, period="1d", group_by='ticker')

・・・省略・・・

終了コード: 0 
[END] 2025/07/11  6:06:18.43 

イベントビューアで確認

Windowsのスタートボタンの横にある検索ボックスに「イベント」と入力すると

イベントビューアが起動したら、以下のように選択
アプリケーションとサービスログ>Microsoft>Windows>TaskScheduler>Operational

タスクの開始イベントやタスクが完了しましたイベントなどで確認できます。

次回の予定

おすすめ銘柄選定の判断部分を作っていきたいと思ってます。
株価のデータが少ないので、某有名自動車企業の直近1年分のデータを取得してから
ロジック作っていきますね👋

Discussion