Files

40 lines
1.2 KiB
PowerShell
Raw Permalink Normal View History

$ErrorActionPreference = "Stop"
$OutputEncoding = [System.Text.Encoding]::UTF8
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$env:PYTHONUTF8 = "1"
$env:PYTHONIOENCODING = "utf-8"
$PROJECT = Split-Path -Parent $PSScriptRoot
$LOG = "$PROJECT\logs\watchdog.log"
. "$PROJECT\scripts\stockbot_env.ps1"
$PYTHON = Resolve-StockBotPython -Project $PROJECT
$utf8 = New-Object System.Text.UTF8Encoding $false
Set-Location $PROJECT
function Write-WatchdogLog {
param([string]$Message)
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
[System.IO.File]::AppendAllText($LOG, "[$timestamp] $Message`n", $utf8)
}
$holidayResult = & $PYTHON scripts\_is_trading_day.py 2>&1
if ($LASTEXITCODE -ne 0) {
Write-WatchdogLog "market closed - skipped ($holidayResult)"
exit 0
}
$now = Get-Date
$start = Get-Date -Hour 9 -Minute 0 -Second 0
2026-06-15 18:52:42 +09:00
$end = Get-Date -Hour 15 -Minute 9 -Second 59
if ($now -lt $start -or $now -gt $end) {
Write-WatchdogLog "outside watchdog window - skipped"
exit 0
}
Write-WatchdogLog "watchdog started"
& $PYTHON scripts\_watchdog.py 2>&1 |
ForEach-Object { [System.IO.File]::AppendAllText($LOG, "$_`n", $utf8) }
Write-WatchdogLog "watchdog finished"