[2026-05-15] 완전 자동화 - 봇 시작도 Claude Code 경유
- ~/.claude/commands/start-bot.md: /start-bot 슬래시 커맨드 추가 (DETACHED_PROCESS로 Python 봇 백그라운드 실행 + Discord 알림) - scripts/run_bot.ps1: python 직접 실행 → claude -p "/start-bot" 로 변경 - scripts/setup_scheduler.ps1: 3개 태스크 통합 재등록 스크립트 업데이트 - StockBot_Bot 태스크 업데이트 완료 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,16 @@
|
|||||||
|
# 매매 봇 시작 스크립트
|
||||||
|
# 작업 스케줄러에서 07:55에 실행 (평일)
|
||||||
|
# Claude Code가 /start-bot 커맨드를 실행 → Python 봇을 백그라운드로 띄움
|
||||||
|
|
||||||
|
$PROJECT = "C:\Users\whdwo\OneDrive\바탕 화면\stockbot_v3"
|
||||||
|
$LOG = "$PROJECT\logs\bot_start.log"
|
||||||
|
|
||||||
|
Set-Location $PROJECT
|
||||||
|
|
||||||
|
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
|
||||||
|
Add-Content $LOG "[$timestamp] /start-bot 실행"
|
||||||
|
|
||||||
|
claude -p "/start-bot" --dangerously-skip-permissions *>> $LOG
|
||||||
|
|
||||||
|
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
|
||||||
|
Add-Content $LOG "[$timestamp] /start-bot 완료"
|
||||||
+27
-50
@@ -1,59 +1,36 @@
|
|||||||
# StockBot 작업 스케줄러 등록
|
# StockBot 작업 스케줄러 등록 (전체 재등록용)
|
||||||
# 관리자 권한 없이도 현재 사용자 계정으로 등록 가능
|
# 실행: powershell -ExecutionPolicy Bypass -File scripts\setup_scheduler.ps1
|
||||||
|
|
||||||
$PROJECT = "C:\Users\whdwo\OneDrive\바탕 화면\stockbot_v3"
|
$PROJECT = "C:\Users\whdwo\OneDrive\바탕 화면\stockbot_v3"
|
||||||
|
|
||||||
# ── 평일(월~금) 트리거 ──────────────────────────────────────────────────────
|
|
||||||
$weekdays = @(
|
$weekdays = @(
|
||||||
[DayOfWeek]::Monday,
|
[DayOfWeek]::Monday, [DayOfWeek]::Tuesday, [DayOfWeek]::Wednesday,
|
||||||
[DayOfWeek]::Tuesday,
|
[DayOfWeek]::Thursday, [DayOfWeek]::Friday
|
||||||
[DayOfWeek]::Wednesday,
|
|
||||||
[DayOfWeek]::Thursday,
|
|
||||||
[DayOfWeek]::Friday
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# ── Task 1: claude_morning (08:15, 평일) ────────────────────────────────────
|
function Register-StockTask($name, $time, $script, $limitMin) {
|
||||||
$morningTrigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek $weekdays -At "08:15"
|
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek $weekdays -At $time
|
||||||
$morningAction = New-ScheduledTaskAction `
|
$action = New-ScheduledTaskAction `
|
||||||
-Execute "powershell.exe" `
|
-Execute "powershell.exe" `
|
||||||
-Argument "-NonInteractive -ExecutionPolicy Bypass -File `"$PROJECT\scripts\run_morning.ps1`"" `
|
-Argument "-NonInteractive -ExecutionPolicy Bypass -File `"$PROJECT\scripts\$script`"" `
|
||||||
-WorkingDirectory $PROJECT
|
-WorkingDirectory $PROJECT
|
||||||
$morningSettings = New-ScheduledTaskSettingsSet `
|
$settings = New-ScheduledTaskSettingsSet `
|
||||||
-ExecutionTimeLimit (New-TimeSpan -Minutes 20) `
|
-ExecutionTimeLimit (New-TimeSpan -Minutes $limitMin) `
|
||||||
-StartWhenAvailable
|
-StartWhenAvailable
|
||||||
|
Register-ScheduledTask -TaskName $name -TaskPath "\StockBot\" `
|
||||||
|
-Trigger $trigger -Action $action -Settings $settings -RunLevel Limited -Force
|
||||||
|
Write-Host "[OK] $name 등록 완료 (평일 $time)" -ForegroundColor Green
|
||||||
|
}
|
||||||
|
|
||||||
Register-ScheduledTask `
|
# ── 3개 태스크 등록 ──────────────────────────────────────────────────────────
|
||||||
-TaskName "StockBot_Morning" `
|
# 07:55 claude /start-bot → Python 봇 백그라운드 시작
|
||||||
-TaskPath "\StockBot\" `
|
Register-StockTask "StockBot_Bot" "07:55" "run_bot.ps1" 10
|
||||||
-Trigger $morningTrigger `
|
|
||||||
-Action $morningAction `
|
|
||||||
-Settings $morningSettings `
|
|
||||||
-RunLevel Limited `
|
|
||||||
-Force
|
|
||||||
|
|
||||||
Write-Host "[OK] StockBot_Morning 등록 완료 (평일 08:15)" -ForegroundColor Green
|
# 08:15 claude /morning → 뉴스+KIS 수집 → daily_context.json
|
||||||
|
Register-StockTask "StockBot_Morning" "08:15" "run_morning.ps1" 20
|
||||||
|
|
||||||
# ── Task 2: 매매봇 (07:55, 평일) ────────────────────────────────────────────
|
# 15:30 claude /evening → 결과 분석 → 리포트 → Discord
|
||||||
$botTrigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek $weekdays -At "07:55"
|
Register-StockTask "StockBot_Evening" "15:30" "run_evening.ps1" 30
|
||||||
$botAction = New-ScheduledTaskAction `
|
|
||||||
-Execute "cmd.exe" `
|
|
||||||
-Argument "/c `"$PROJECT\scripts\run_bot.bat`"" `
|
|
||||||
-WorkingDirectory $PROJECT
|
|
||||||
$botSettings = New-ScheduledTaskSettingsSet `
|
|
||||||
-ExecutionTimeLimit (New-TimeSpan -Hours 8) `
|
|
||||||
-StartWhenAvailable
|
|
||||||
|
|
||||||
Register-ScheduledTask `
|
|
||||||
-TaskName "StockBot_Bot" `
|
|
||||||
-TaskPath "\StockBot\" `
|
|
||||||
-Trigger $botTrigger `
|
|
||||||
-Action $botAction `
|
|
||||||
-Settings $botSettings `
|
|
||||||
-RunLevel Limited `
|
|
||||||
-Force
|
|
||||||
|
|
||||||
Write-Host "[OK] StockBot_Bot 등록 완료 (평일 07:55)" -ForegroundColor Green
|
|
||||||
|
|
||||||
Write-Host ""
|
Write-Host ""
|
||||||
Write-Host "등록된 작업 확인:" -ForegroundColor Cyan
|
Write-Host "등록된 작업:" -ForegroundColor Cyan
|
||||||
Get-ScheduledTask -TaskPath "\StockBot\" | Select-Object TaskName, State
|
Get-ScheduledTask -TaskPath "\StockBot\" | Format-Table TaskName, State
|
||||||
|
|||||||
Reference in New Issue
Block a user