role: user

type: text

text:
<timestamp>Friday, Aug 14, 2026, 9:56 AM (UTC+9)</timestamp>
<user_query>

kis_alert_bot
BOT
오전 9:26

🟢 [매도체결:MOMENTUM] 네오오토(212560)
12,010원 × 25주
손절호가 · 수익률 -1.78%
실현 +295원 · ODNO=0000009597
시세: kiwoom
📊 MOMENTUM 당일 +295원 · 청산 2건

━━━━━━━━━━━━━━━━━━━━
💼 계좌
예수금 471,997,465원
총자산 477,987,576원 · 보유 15종목

📊 손익 (당일)
🤖 봇 실현 -1,932원 · 청산 3건
📈 계좌평가 +1,172원 (+0.00%)

💰 누적 (입금 대비)
-22,012,424원 (-4.40%)

이건 왜 마이너스인데 녹색으로 나오지?

kis_alert_bot
BOT
오후 2:49

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-13 14:49:03
유닛: kis_trader_main.service
2026-08-13T14:49:02+09:00 ubuntu2404 python[1446832]: [14:49:02] [kis_trader.main] ℹ condition 소스 쓰는 전략 없음 → 조건검색 매니저 비활성
kis_alert_bot
BOT
오후 2:49

🚨 [오류감시] 유닛 복구 (active)

시각: 2026-08-13 14:49:34
유닛: kis_trader_main.service
systemctl is-active kis_trader_main.service → active
kis_alert_bot
BOT
오후 2:49

🚀 kis_trader 통합 봇 시작
활성 전략: SCALP, SHORT, MOMENTUM, US_MOMENTUM, BREAKOUT

【유니버스】
SCALP: kiwoom_condition
  └ kiwoom_cond · scalp_re(seq=3)
SHORT: kiwoom_condition
  └ kiwoom_cond · tail(seq=1)
MOMENTUM: kiwoom_condition
  └ kiwoom_cond · momentum(seq=2)
BREAKOUT: kiwoom_condition
  └ kiwoom_cond · breakout(seq=4)

📡 [시세웹소켓] 키움(실전), KIS(실전)

✅ [기동 계좌] 계좌[모의] 501***45-01 | 보유 20종목 / 총자산 477,932,316원 | cash_basis=dnca | 예수금 468,155,952 / D+2 460,604,246 / 주문가능 458,301,224 / 사용기준 468,155,952

kis_alert_bot
BOT
오후 2:51

🚨 [운영알림/CRITICAL] SCALP 유니버스 전량탈락 1→0

코드: universe_wipe
시각: 2026-08-13 14:51:24
상세: history=kiwoom 교집합 제외 1

kis_alert_bot
BOT
오후 3:01

🚨 [운영알림/CRITICAL] SCALP 유니버스 전량탈락 10→0

코드: universe_wipe
시각: 2026-08-13 15:01:16
상세: history=kiwoom 교집합 제외 10
kis_alert_bot
BOT
오후 3:01

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-13 15:01:16
유닛: kis_trader_main.service
2026-08-13T15:01:16+09:00 ubuntu2404 python[1446832]: [15:01:16] [kis_trader.ops_alert] [ops_alert] sent code=universe_wipe ok_mm=True title=SCALP 유니버스 전량탈락 10→0
kis_alert_bot
BOT
오후 3:04

🚨 [오류감시] 유닛 비활성 (deactivating)

시각: 2026-08-13 15:04:39
유닛: kis_trader_main.service
systemctl is-active kis_trader_main.service → deactivating
kis_alert_bot
BOT
오후 3:04

🛑 kis_trader 종료
━━━━━━━━━━━━━━━━━━━━

🕒 종료 시각: 2026-08-13 15:04:31
🤖 당일 봇 실현: +11,313원 (청산 9건)
계좌: 모의 501***45-01
현재 자산: 477,862,027원
보유 종목: 22개
예수금(선택기준:dnca): 468,155,952원 | 주문가능금액: 457,501,434원 | 예수금총액: 468,155,952원 | D+2예수금: 459,800,437원
━━━━━━━━━━━━━━━━━━━━

kis_alert_bot
BOT
오후 3:05

🚨 [오류감시] 유닛 복구 (active)

시각: 2026-08-13 15:05:40
유닛: kis_trader_main.service
systemctl is-active kis_trader_main.service → active
kis_alert_bot
BOT
오후 3:05

🚀 kis_trader 통합 봇 시작
활성 전략: SCALP, SHORT, MOMENTUM, US_MOMENTUM, BREAKOUT

【유니버스】
SCALP: kiwoom_condition
  └ kiwoom_cond · scalp_re(seq=3)
SHORT: kiwoom_condition
  └ kiwoom_cond · tail(seq=1)
MOMENTUM: kiwoom_condition
  └ kiwoom_cond · momentum(seq=2)
BREAKOUT: kiwoom_condition
  └ kiwoom_cond · breakout(seq=4)

📡 [시세웹소켓] 키움(실전), KIS(실전)

✅ [기동 계좌] 계좌[모의] 501***45-01 | 보유 22종목 / 총자산 477,836,987원 | cash_basis=dnca | 예수금 468,155,952 / D+2 459,800,437 / 주문가능 457,501,434 / 사용기준 468,155,952

kis_alert_bot
BOT
오후 3:07

🚨 [운영알림/CRITICAL] MOMENTUM 유니버스 전량탈락 1→0

코드: universe_wipe
시각: 2026-08-13 15:07:54
상세: history=kiwoom 교집합 제외 1
kis_alert_bot
BOT
오후 3:07

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-13 15:07:54
유닛: kis_trader_main.service
2026-08-13T15:07:54+09:00 ubuntu2404 python[1460347]: [15:07:54] [kis_trader.ops_alert] [ops_alert] sent code=universe_wipe ok_mm=True title=MOMENTUM 유니버스 전량탈락 1→0
kis_alert_bot
BOT
오후 3:08

🧩 [Pre-EOD 고아복구]

복구: 8종목
계좌동기화: 2종목
청산후스킵: 3종목
청산후유령정리: 0종목
유령삭제: 0종목
실패: 0건 · 블루콤(033560) [SHORT] 450주 · 팅크웨어(084730) [MOMENTUM] 88주 · 빅솔론(093190) [MOMENTUM] 130주 · 한솔아이원스(114810) [SCALP] 24주 · 한라캐스트(125490) [MOMENTUM] 27주 · 지투파워(388050) [MOMENTUM] 33주 · 394420(394420) [MOMENTUM] 50주 · 엔알비(475230) [MOMENTUM] 64주 ⏭스킵 우리넷(115440) 장마감청산@2026-08-07 15:25:45 ⏭스킵 위메이드플레이(123420) 장마감청산@2026-08-11 15:26:26 ⏭스킵 엔에프씨(265740) 장마감청산@2026-08-06 15:23:17 🔄동기화 원일티엔아이(136150) [MOMENTUM] 36➔504주 (8,195➔8,269원) 🔄동기화 범한퓨얼셀(382900) [MOMENTUM] 15➔45주 (19,150➔19,150원)
kis_alert_bot
BOT
오후 3:10

🚨 [오류감시] 유닛 비활성 (deactivating)

시각: 2026-08-13 15:10:41
유닛: kis_trader_main.service
systemctl is-active kis_trader_main.service → deactivating
kis_alert_bot
BOT
오후 3:11

🚨 [오류감시] 프로세스 종료

시각: 2026-08-13 15:11:45
유닛: kis_trader_main.service
2026-08-13T15:11:43+09:00 ubuntu2404 systemd[1]: kis_trader_main.service: Main process exited, code=killed, status=9/KILL
kis_alert_bot
BOT
오후 3:12

🚨 [오류감시] 유닛 복구 (active)

시각: 2026-08-13 15:12:42
유닛: kis_trader_main.service
systemctl is-active kis_trader_main.service → active
kis_alert_bot
BOT
오후 3:13

🚀 kis_trader 통합 봇 시작
활성 전략: SCALP, SHORT, MOMENTUM, US_MOMENTUM, BREAKOUT

【유니버스】
SCALP: kiwoom_condition
  └ kiwoom_cond · scalp_re(seq=3)
SHORT: kiwoom_condition
  └ kiwoom_cond · tail(seq=1)
MOMENTUM: kiwoom_condition
  └ kiwoom_cond · momentum(seq=2)
BREAKOUT: kiwoom_condition
  └ kiwoom_cond · breakout(seq=4)

📡 [시세웹소켓] 키움(실전), KIS(실전)

✅ [기동 계좌] 계좌[모의] 501***45-01 | 보유 21종목 / 총자산 477,882,378원 | cash_basis=dnca | 예수금 468,155,952 / D+2 460,084,408 / 주문가능 457,783,985 / 사용기준 468,155,952

kis_alert_bot
BOT
오후 3:16

📈 [장마감 전 현황 - 15:15]

🤖 봇 실현: +24,333원 (청산 15건)
📈 계좌평가: -267,852원 (-0.06%)
현재 자산: 477,894,583원
보유 종목: 19개
계좌: 모의 501***45-01
예수금(선택기준:dnca): 468,155,952원 | 주문가능금액: 460,298,435원 | 예수금총액: 468,155,952원 | D+2예수금: 462,611,493원
kis_alert_bot
BOT
오후 3:19

🚨 [운영알림/CRITICAL] MOMENTUM 유니버스 0 지속 204초

코드: universe_zero
시각: 2026-08-13 15:19:25
상세: source=kiwoom_condition kw=0 ls=-1
kis_alert_bot
BOT
오후 3:21

🚨 [운영알림/CRITICAL] SCALP 유니버스 전량탈락 5→0

코드: universe_wipe
시각: 2026-08-13 15:21:24
상세: history=kiwoom 교집합 제외 5

kis_alert_bot
BOT
오후 3:34

🏁 [장마감 최종 보고 - 15:35]
━━━━━━━━━━━━━━━━━━━━
📅 당일 손익

🤖 봇 실현: -43,935원 (청산 31건)
📈 계좌평가: -178,231원 (-0.04%)
시작 총자산: 478,162,435원
종료 총자산: 477,984,204원
💰 누적 (입금 대비)

총 입금: 500,000,000원
현재 자산: 477,984,204원
누적 손익: -22,015,796원 (-4.40%)
📊 거래 현황

오늘 매매: 31건
보유 종목: 8개
계좌: 모의 501***45-01
예수금(선택기준:dnca): 468,155,952원 | 주문가능금액: 466,785,398원 | 예수금총액: 468,155,952원 | D+2예수금: 469,168,834원
━━━━━━━━━━━━━━━━━━━━

kis_alert_bot
BOT
오후 3:35

🚨 [운영알림/CRITICAL] SCALP 유니버스 0 지속 180초

코드: universe_zero
시각: 2026-08-13 15:35:16
상세: source=kiwoom_condition kw=0 ls=-1
kis_alert_bot
BOT
오후 3:36

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-13 15:36:16
유닛: kis_trader_main.service
2026-08-13T15:35:16+09:00 ubuntu2404 python[1466728]: [15:35:16] [kis_trader.ops_alert] [ops_alert] sent code=universe_zero ok_mm=True title=SCALP 유니버스 0 지속 180초
kis_alert_bot
BOT
오후 3:36

🧩 [장마감 고아복구]

복구: 0종목
계좌동기화: 0종목
청산후스킵: 4종목
청산후유령정리: 0종목
유령삭제: 0종목
실패: 0건 ⏭스킵 우리넷(115440) 장마감청산@2026-08-07 15:25:45 ⏭스킵 위메이드플레이(123420) 장마감청산@2026-08-11 15:26:26 ⏭스킵 원일티엔아이(136150) 장마감청산@2026-08-13 15:22:57 ⏭스킵 엔에프씨(265740) 장마감청산@2026-08-06 15:23:17

kis_alert_bot
BOT
오후 11:35

🚨 [오류감시] 유닛 비활성 (deactivating)

시각: 2026-08-13 23:35:59
유닛: kis_trader_main.service
systemctl is-active kis_trader_main.service → deactivating
kis_alert_bot
BOT
오후 11:36

🛑 kis_trader 종료
━━━━━━━━━━━━━━━━━━━━

🕒 종료 시각: 2026-08-13 23:36:19
🤖 당일 봇 실현: -43,935원 (청산 31건)
계좌: 모의 501***45-01
현재 자산: 477,984,204원
보유 종목: 8개
예수금(선택기준:dnca): 471,997,465원 | 주문가능금액: 466,822,989원 | 예수금총액: 471,997,465원 | D+2예수금: 469,168,834원
━━━━━━━━━━━━━━━━━━━━

kis_alert_bot
BOT
오후 11:36

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-13 23:36:22
유닛: kis_trader_main.service
2026-08-13T23:36:22+09:00 ubuntu2404 python[1887217]: [23:36:22] [kis_trader.main] ℹ condition 소스 쓰는 전략 없음 → 조건검색 매니저 비활성
kis_alert_bot
BOT
오후 11:36

🚀 kis_trader 통합 봇 시작
활성 전략: SCALP, SHORT, MOMENTUM, US_MOMENTUM, BREAKOUT

【유니버스】
SCALP: kiwoom_condition
  └ kiwoom_cond · scalp_re(seq=3)
SHORT: kiwoom_condition
  └ kiwoom_cond · tail(seq=1)
MOMENTUM: kiwoom_condition
  └ kiwoom_cond · momentum(seq=2)
BREAKOUT: kiwoom_condition
  └ kiwoom_cond · breakout(seq=4)

📡 [시세웹소켓] 키움(실전), KIS(실전)

✅ [기동 계좌] 계좌[모의] 501***45-01 | 보유 8종목 / 총자산 477,984,204원 | cash_basis=dnca | 예수금 471,997,465 / D+2 469,168,834 / 주문가능 466,822,989 / 사용기준 471,997,465

kis_alert_bot
BOT
오후 11:37

🚨 [오류감시] 유닛 복구 (active)

시각: 2026-08-13 23:36:59
유닛: kis_trader_main.service
systemctl is-active kis_trader_main.service → active
오늘

kis_alert_bot
BOT
오전 1:17

🚨 [오류감시] 유닛 비활성 (deactivating)

시각: 2026-08-14 01:17:28
유닛: kis_trader_main.service
systemctl is-active kis_trader_main.service → deactivating
kis_alert_bot
BOT
오전 1:17

🛑 kis_trader 종료
━━━━━━━━━━━━━━━━━━━━

🕒 종료 시각: 2026-08-14 01:17:46
🤖 당일 봇 실현: +0원 (청산 0건)
계좌: 모의 501***45-01
현재 자산: 477,984,204원
보유 종목: 8개
예수금(선택기준:dnca): 471,997,465원 | 주문가능금액: 466,822,989원 | 예수금총액: 471,997,465원 | D+2예수금: 469,168,834원
━━━━━━━━━━━━━━━━━━━━

kis_alert_bot
BOT
오전 1:17

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 01:17:48
유닛: kis_trader_main.service
2026-08-14T01:17:48+09:00 ubuntu2404 python[1986742]: [01:17:48] [kis_trader.main] ℹ condition 소스 쓰는 전략 없음 → 조건검색 매니저 비활성
kis_alert_bot
BOT
오전 1:17

🚀 kis_trader 통합 봇 시작
활성 전략: SCALP, SHORT, MOMENTUM, US_MOMENTUM, BREAKOUT

【유니버스】
SCALP: kiwoom_condition
  └ kiwoom_cond · scalp_re(seq=3)
SHORT: kiwoom_condition
  └ kiwoom_cond · tail(seq=1)
MOMENTUM: kiwoom_condition
  └ kiwoom_cond · momentum(seq=2)
BREAKOUT: kiwoom_condition
  └ kiwoom_cond · breakout(seq=4)

📡 [시세웹소켓] 키움(실전), KIS(실전)

✅ [기동 계좌] 계좌[모의] 501***45-01 | 보유 8종목 / 총자산 477,984,204원 | cash_basis=dnca | 예수금 471,997,465 / D+2 469,168,834 / 주문가능 466,822,989 / 사용기준 471,997,465

kis_alert_bot
BOT
오전 1:18

🚨 [오류감시] 유닛 복구 (active)

시각: 2026-08-14 01:18:28
유닛: kis_trader_main.service
systemctl is-active kis_trader_main.service → active

kis_alert_bot
BOT
오전 9:00

🌅 [장 시작 알림 - 09:00]
━━━━━━━━━━━━━━━━━━━━

🤖 활성 전략: SCALP, SHORT, MOMENTUM, US_MOMENTUM, BREAKOUT
계좌: 모의 501***45-01
현재 자산: 478,019,804원
보유 종목: 8개
예수금(선택기준:dnca): 471,997,465원 | 주문가능금액: 466,822,989원 | 예수금총액: 471,997,465원 | D+2예수금: 469,168,834원
━━━━━━━━━━━━━━━━━━━━
📈 오늘도 안전 매매! 손절 라인 준수.

kis_alert_bot
BOT
오전 9:01

🚨 [운영알림/CRITICAL] LS 시세 WS 미OPEN

코드: ws_ls_down
시각: 2026-08-14 09:01:41
상세: 장중 LS 소켓 미연결 60초+
kis_alert_bot
BOT
오전 9:01

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:01:42
유닛: kis_trader_main.service
2026-08-14T09:01:41+09:00 ubuntu2404 python[1986742]: [09:01:41] [kis_trader.ops_alert] [ops_alert] sent code=ws_ls_down ok_mm=True title=LS 시세 WS 미OPEN
kis_alert_bot
BOT
오전 9:03

🚨 [운영알림/CRITICAL] SCALP 유니버스 0 지속 181초

코드: universe_zero
시각: 2026-08-14 09:03:42
상세: source=kiwoom_condition kw=0 ls=-1
kis_alert_bot
BOT
오전 9:03

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:03:43
유닛: kis_trader_main.service
2026-08-14T09:03:42+09:00 ubuntu2404 python[1986742]: [09:03:42] [kis_trader.ops_alert] [ops_alert] sent code=universe_zero ok_mm=True title=SCALP 유니버스 0 지속 181초
kis_alert_bot
BOT
오전 9:06

🚨 [운영알림/CRITICAL] LS 시세 WS 미OPEN

코드: ws_ls_down
시각: 2026-08-14 09:06:45
상세: 장중 LS 소켓 미연결 60초+
kis_alert_bot
BOT
오전 9:06

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:06:46
유닛: kis_trader_main.service
2026-08-14T09:06:46+09:00 ubuntu2404 python[1986742]: [09:06:46] [kis_trader.ops_alert] [ops_alert] sent code=ws_ls_down ok_mm=True title=LS 시세 WS 미OPEN
kis_alert_bot
BOT
오전 9:07

🚨 [운영알림/CRITICAL] MOMENTUM 유니버스 전량탈락 1→0

코드: universe_wipe
시각: 2026-08-14 09:07:17
상세: history=kiwoom 교집합 제외 1
kis_alert_bot
BOT
오전 9:07

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:07:18
유닛: kis_trader_main.service
2026-08-14T09:07:17+09:00 ubuntu2404 python[1986742]: [09:07:17] [kis_trader.ops_alert] [ops_alert] sent code=universe_wipe ok_mm=True title=MOMENTUM 유니버스 전량탈락 1→0

hjhvkej1
상태 업데이트
오전 9:08

!봇로그

답장 3개
지켜보는 중
마지막 댓글 47분 전

kis_alert_bot
BOT
오전 9:11

🚨 [운영알림/CRITICAL] LS 시세 WS 미OPEN

코드: ws_ls_down
시각: 2026-08-14 09:11:47
상세: 장중 LS 소켓 미연결 60초+
kis_alert_bot
BOT
오전 9:11

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:11:48
유닛: kis_trader_main.service
2026-08-14T09:11:47+09:00 ubuntu2404 python[1986742]: [09:11:47] [kis_trader.ops_alert] [ops_alert] sent code=ws_ls_down ok_mm=True title=LS 시세 WS 미OPEN
kis_alert_bot
BOT
오전 9:12

🚨 [운영알림/CRITICAL] BREAKOUT 유니버스 전량탈락 10→0

코드: universe_wipe
시각: 2026-08-14 09:12:25
상세: history=kiwoom 교집합 제외 10
kis_alert_bot
BOT
오전 9:12

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:12:26
유닛: kis_trader_main.service
2026-08-14T09:12:25+09:00 ubuntu2404 python[1986742]: [09:12:25] [kis_trader.ops_alert] [ops_alert] sent code=universe_wipe ok_mm=True title=BREAKOUT 유니버스 전량탈락 10→0
kis_alert_bot
BOT
오전 9:14

🚨 [운영알림/CRITICAL] SCALP 유니버스 0 지속 181초

코드: universe_zero
시각: 2026-08-14 09:14:49
상세: source=kiwoom_condition kw=0 ls=-1
kis_alert_bot
BOT
오전 9:14

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:14:49
유닛: kis_trader_main.service
2026-08-14T09:14:49+09:00 ubuntu2404 python[1986742]: [09:14:49] [kis_trader.ops_alert] [ops_alert] sent code=universe_zero ok_mm=True title=SCALP 유니버스 0 지속 181초
kis_alert_bot
BOT
오전 9:16

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:16:32
유닛: kis_trader_main.service
2026-08-14T09:16:32+09:00 ubuntu2404 python[1986742]: [09:16:32] [kis_trader.strategy.SHORT] 🔍 [T:kiwoom|O:kiwoom|유니버스슬롯] SHORT 후보 1→0 (history=kiwoom 교집합, 제외 1)
kis_alert_bot
BOT
오전 9:16

🚨 [운영알림/CRITICAL] LS 시세 WS 미OPEN

코드: ws_ls_down
시각: 2026-08-14 09:16:54
상세: 장중 LS 소켓 미연결 64초+
kis_alert_bot
BOT
오전 9:16

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:16:54
유닛: kis_trader_main.service
2026-08-14T09:16:54+09:00 ubuntu2404 python[1986742]: [09:16:54] [kis_trader.ops_alert] [ops_alert] sent code=ws_ls_down ok_mm=True title=LS 시세 WS 미OPEN
kis_alert_bot
BOT
오전 9:17

🚨 [운영알림/CRITICAL] SCALP 유니버스 전량탈락 1→0

코드: universe_wipe
시각: 2026-08-14 09:17:42
상세: history=kiwoom 교집합 제외 1
kis_alert_bot
BOT
오전 9:17

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:17:42
유닛: kis_trader_main.service
2026-08-14T09:17:42+09:00 ubuntu2404 python[1986742]: [09:17:42] [kis_trader.ops_alert] [ops_alert] sent code=universe_wipe ok_mm=True title=SCALP 유니버스 전량탈락 1→0
새로운 메시지
kis_alert_bot
BOT
오전 9:19

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:19:22
유닛: kis_trader_main.service
2026-08-14T09:19:22+09:00 ubuntu2404 python[1986742]: [09:19:22] [kis_trader.strategy.SHORT] 🔍 [T:kiwoom|O:kiwoom|유니버스슬롯] SHORT 후보 1→0 (history=kiwoom 교집합, 제외 1)
kis_alert_bot
BOT
오전 9:20

🚨 [운영알림/CRITICAL] SHORT 유니버스 0 지속 216초

코드: universe_zero
시각: 2026-08-14 09:20:31
상세: source=kiwoom_condition kw=0 ls=-1
kis_alert_bot
BOT
오전 9:20

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:20:31
유닛: kis_trader_main.service
2026-08-14T09:20:31+09:00 ubuntu2404 python[1986742]: [09:20:31] [kis_trader.ops_alert] [ops_alert] sent code=universe_zero ok_mm=True title=SHORT 유니버스 0 지속 216초
kis_alert_bot
BOT
오전 9:21

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:21:42
유닛: kis_trader_main.service
2026-08-14T09:21:42+09:00 ubuntu2404 python[1986742]: [09:21:42] [kis_trader.strategy.SCALP] 🔍 [T:kiwoom|O:kiwoom|유니버스슬롯] SCALP 후보 1→0 (history=kiwoom 교집합, 제외 1)
kis_alert_bot
BOT
오전 9:22

🚨 [운영알림/CRITICAL] LS 시세 WS 미OPEN

코드: ws_ls_down
시각: 2026-08-14 09:22:33
상세: 장중 LS 소켓 미연결 60초+
kis_alert_bot
BOT
오전 9:22

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:22:33
유닛: kis_trader_main.service
2026-08-14T09:22:33+09:00 ubuntu2404 python[1986742]: [09:22:33] [kis_trader.ops_alert] [ops_alert] sent code=ws_ls_down ok_mm=True title=LS 시세 WS 미OPEN
kis_alert_bot
BOT
오전 9:24

🚨 [운영알림/CRITICAL] SCALP 유니버스 전량탈락 1→0

코드: universe_wipe
시각: 2026-08-14 09:24:39
상세: history=kiwoom 교집합 제외 1
kis_alert_bot
BOT
오전 9:24

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:24:40
유닛: kis_trader_main.service
2026-08-14T09:24:39+09:00 ubuntu2404 python[1986742]: [09:24:39] [kis_trader.ops_alert] [ops_alert] sent code=universe_wipe ok_mm=True title=SCALP 유니버스 전량탈락 1→0
kis_alert_bot
BOT
오전 9:27

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:27:21
유닛: kis_trader_main.service
2026-08-14T09:27:21+09:00 ubuntu2404 python[1986742]: [09:27:21] [kis_trader.strategy.SCALP] 🔍 [T:kiwoom|O:kiwoom|유니버스슬롯] SCALP 후보 1→0 (history=kiwoom 교집합, 제외 1)
kis_alert_bot
BOT
오전 9:27

🚨 [운영알림/CRITICAL] LS 시세 WS 미OPEN

코드: ws_ls_down
시각: 2026-08-14 09:27:35
상세: 장중 LS 소켓 미연결 60초+
kis_alert_bot
BOT
오전 9:29

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:29:18
유닛: kis_trader_main.service
2026-08-14T09:29:18+09:00 ubuntu2404 python[1986742]: [09:29:18] [kis_trader.strategy.SHORT] 🔍 [T:kiwoom|O:kiwoom|유니버스슬롯] SHORT 후보 1→0 (history=kiwoom 교집합, 제외 1)
kis_alert_bot
BOT
오전 9:32

🚨 [운영알림/CRITICAL] LS 시세 WS 미OPEN

코드: ws_ls_down
시각: 2026-08-14 09:32:51
상세: 장중 LS 소켓 미연결 117초+
kis_alert_bot
BOT
오전 9:32

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:32:51
유닛: kis_trader_main.service
2026-08-14T09:32:51+09:00 ubuntu2404 python[1986742]: [09:32:51] [kis_trader.ops_alert] [ops_alert] sent code=ws_ls_down ok_mm=True title=LS 시세 WS 미OPEN
kis_alert_bot
BOT
오전 9:34

🚨 [운영알림/CRITICAL] SCALP 유니버스 전량탈락 1→0

코드: universe_wipe
시각: 2026-08-14 09:34:28
상세: history=kiwoom 교집합 제외 1
kis_alert_bot
BOT
오전 9:34

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:34:29
유닛: kis_trader_main.service
2026-08-14T09:34:28+09:00 ubuntu2404 python[1986742]: [09:34:28] [kis_trader.ops_alert] [ops_alert] sent code=universe_wipe ok_mm=True title=SCALP 유니버스 전량탈락 1→0
kis_alert_bot
BOT
오전 9:37

🚨 [운영알림/CRITICAL] LS 시세 WS 미OPEN

코드: ws_ls_down
시각: 2026-08-14 09:37:55
상세: 장중 LS 소켓 미연결 60초+
kis_alert_bot
BOT
오전 9:37

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:37:56
유닛: kis_trader_main.service
2026-08-14T09:37:55+09:00 ubuntu2404 python[1986742]: [09:37:55] [kis_trader.ops_alert] [ops_alert] sent code=ws_ls_down ok_mm=True title=LS 시세 WS 미OPEN
kis_alert_bot
BOT
오전 9:42

🚨 [운영알림/CRITICAL] MOMENTUM 유니버스 전량탈락 1→0

코드: universe_wipe
시각: 2026-08-14 09:42:26
상세: history=kiwoom 교집합 제외 1
kis_alert_bot
BOT
오전 9:42

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:42:27
유닛: kis_trader_main.service
2026-08-14T09:42:27+09:00 ubuntu2404 python[1986742]: [09:42:27] [kis_trader.ops_alert] [ops_alert] sent code=universe_wipe ok_mm=True title=MOMENTUM 유니버스 전량탈락 1→0
kis_alert_bot
BOT
오전 9:43

🚨 [운영알림/CRITICAL] LS 시세 WS 미OPEN

코드: ws_ls_down
시각: 2026-08-14 09:43:35
상세: 장중 LS 소켓 미연결 60초+
kis_alert_bot
BOT
오전 9:43

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:43:36
유닛: kis_trader_main.service
2026-08-14T09:43:35+09:00 ubuntu2404 python[1986742]: [09:43:35] [kis_trader.ops_alert] [ops_alert] sent code=ws_ls_down ok_mm=True title=LS 시세 WS 미OPEN
kis_alert_bot
BOT
오전 9:48

🚨 [운영알림/CRITICAL] MOMENTUM 유니버스 전량탈락 1→0

코드: universe_wipe
시각: 2026-08-14 09:48:07
상세: history=kiwoom 교집합 제외 1
kis_alert_bot
BOT
오전 9:48

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:48:08
유닛: kis_trader_main.service
2026-08-14T09:48:07+09:00 ubuntu2404 python[1986742]: [09:48:07] [kis_trader.ops_alert] [ops_alert] sent code=universe_wipe ok_mm=True title=MOMENTUM 유니버스 전량탈락 1→0
kis_alert_bot
BOT
오전 9:49

🚨 [운영알림/CRITICAL] LS 시세 WS 미OPEN

코드: ws_ls_down
시각: 2026-08-14 09:49:25
상세: 장중 LS 소켓 미연결 60초+
kis_alert_bot
BOT
오전 9:49

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:49:26
유닛: kis_trader_main.service
2026-08-14T09:49:25+09:00 ubuntu2404 python[1986742]: [09:49:25] [kis_trader.ops_alert] [ops_alert] sent code=ws_ls_down ok_mm=True title=LS 시세 WS 미OPEN

kis_alert_bot
BOT
오전 9:54

🚨 [운영알림/CRITICAL] LS 시세 WS 미OPEN

코드: ws_ls_down
시각: 2026-08-14 09:54:27
상세: 장중 LS 소켓 미연결 60초+
kis_alert_bot
BOT
오전 9:54

🚨 [오류감시] 로그 오류 매칭

시각: 2026-08-14 09:54:28
유닛: kis_trader_main.service
2026-08-14T09:54:27+09:00 ubuntu2404 python[1986742]: [09:54:27] [kis_trader.ops_alert] [ops_alert] sent code=ws_ls_down ok_mm=True title=LS 시세 WS 미OPEN

 그리고 오늘일자 오류야 ㅁ무슨 오류인지 파악해서 명명ㅂ맥백히 근본원인을 읆어줘
</user_query>


role: assistant

text: 매도 알림이 손실인데 녹색인 이유와 오늘 오류 알림의 근본원인을 코드·로그에서 먼저 확인하겠습니다.

Grep

pattern: 로그 오류 매칭|condition 소스 쓰는 전략


text: 녹색 이모지는 `realized_pnl` 기준으로 보입니다. 손익 계산과 오류 감시 매칭을 이어서 확인합니다.


Write

contents:
#!/usr/bin/env python3
"""adhoc: env 키 조회 (스키마 확인 후)."""
from database import TradeDB

db = TradeDB()
cols = [r["Field"] for r in db.conn.execute("SHOW COLUMNS FROM env_config").fetchall()]
keys = [
    "LIVE_UNIVERSE_SLOT_ALIGN",
    "ERROR_WATCH_MATCH_REGEX",
    "ERROR_WATCH_IGNORE_REGEX",
    "ERROR_WATCH_ENABLED",
    "LS_WS_ENABLED",
    "LS_WS_VALIDATION_ENABLED",
    "LS_CONDITION_HISTORY_ENABLED",
    "LS_WS_FOLLOW_CONDITION_UNIVERSE",
    "OPS_ALERT_COOLDOWN_SEC",
    "OPS_ALERT_WS_DOWN_HOLD_SEC",
    "OPS_ALERT_UNIVERSE_ZERO_SEC",
    "SCALP_LIVE_UNIVERSE_SLOT_ALIGN",
    "MOMENTUM_LIVE_UNIVERSE_SLOT_ALIGN",
    "BREAKOUT_LIVE_UNIVERSE_SLOT_ALIGN",
    "SHORT_LIVE_UNIVERSE_SLOT_ALIGN",
    "LIVE_UNIVERSE_HISTORY_SOURCE",
]
present = [k for k in keys if k in cols]
missing = [k for k in keys if k not in cols]
print("missing_cols", missing)
if present:
    sel = ", ".join(f"`{k}`" for k in present)
    row = db.conn.execute(
        f"SELECT {sel} FROM env_config ORDER BY id DESC LIMIT 1"
    ).fetchone()
    d = dict(row) if row else {}
    for k in present:
        v = d.get(k)
        s = "" if v is None else str(v)
        if len(s) > 180:
            s = s[:180] + "...(len=%d)" % len(str(v))
        print(f"{k}={s!r}")


Shell

command: python3 -m py_compile /home/hoon/kis_bot/logs/_adhoc_alert_diag.py && python3 /home/hoon/kis_bot/logs/_adhoc_alert_diag.py

description: Compile and query env_config keys


command: cd /home/hoon/kis_bot && python3 -m py_compile logs/_adhoc_alert_diag.py && python3 logs/_adhoc_alert_diag.py

description: Run env query from repo root


command: cd /home/hoon/kis_bot && ls -d .venv 2>/dev/null; PYTHONPATH=/home/hoon/kis_bot python3 logs/_adhoc_alert_diag.py

description: Query env_config with PYTHONPATH


Write

contents:
#!/usr/bin/env python3
from database import TradeDB

db = TradeDB()
ext_cols = [r["Field"] for r in db.conn.execute("SHOW COLUMNS FROM env_config_ext").fetchall()]
print("ext_cols", ext_cols)
keys = (
    "LIVE_UNIVERSE_SLOT_ALIGN",
    "LS_WS_ENABLED",
    "LS_WS_VALIDATION_ENABLED",
    "LS_CONDITION_HISTORY_ENABLED",
    "LS_WS_FOLLOW_CONDITION_UNIVERSE",
    "OPS_ALERT_COOLDOWN_SEC",
    "OPS_ALERT_WS_DOWN_HOLD_SEC",
    "OPS_ALERT_UNIVERSE_ZERO_SEC",
    "SCALP_LIVE_UNIVERSE_SLOT_ALIGN",
    "MOMENTUM_LIVE_UNIVERSE_SLOT_ALIGN",
    "BREAKOUT_LIVE_UNIVERSE_SLOT_ALIGN",
    "SHORT_LIVE_UNIVERSE_SLOT_ALIGN",
    "LIVE_UNIVERSE_HISTORY_SOURCE",
    "ERROR_WATCH_MATCH_REGEX",
    "ERROR_WATCH_IGNORE_REGEX",
)
ph = ",".join(["%s"] * len(keys))
rows = db.conn.execute(
    f"SELECT env_key, env_value FROM env_config_ext WHERE env_key IN ({ph})",
    keys,
).fetchall()
print("ext_hits", len(rows))
for r in rows:
    d = dict(r)
    v = str(d.get("env_value") or "")
    if len(v) > 160:
        v = v[:160] + "..."
    print(d.get("env_key"), "=", repr(v))

from kis_trader.utils.env import get_env_from_db, get_env_bool, get_env_int
print("--- get_env ---")
for k in keys:
    print(k, "=", repr(get_env_from_db(k, "")))
print("LIVE_UNIVERSE_SLOT_ALIGN bool", get_env_bool("LIVE_UNIVERSE_SLOT_ALIGN", False))
print("LS_WS_ENABLED bool", get_env_bool("LS_WS_ENABLED", False))
print("LS_WS_VALIDATION_ENABLED", get_env_bool("LS_WS_VALIDATION_ENABLED", False))
print("LS_CONDITION_HISTORY_ENABLED", get_env_bool("LS_CONDITION_HISTORY_ENABLED", False))
print("LS_WS_FOLLOW_CONDITION_UNIVERSE", get_env_bool("LS_WS_FOLLOW_CONDITION_UNIVERSE", True))


Shell

command: cd /home/hoon/kis_bot && python3 -m py_compile logs/_adhoc_alert_diag2.py && PYTHONPATH=/home/hoon/kis_bot python3 logs/_adhoc_alert_diag2.py

description: Query ext env and get_env values

command: systemctl is-active kis_error_watch_mm.service kis_trader_main.service; echo '---'; systemctl show kis_error_watch_mm.service -p ActiveEnterTimestamp -p MainPID -p FragmentPath --no-pager; echo '---'; ps -o lstart,pid,cmd -p $(systemctl show -p MainPID --value kis_error_watch_mm.service) 2>/dev/null; echo '---LS logs---'; journalctl -u kis_trader_main.service --since '2026-08-14 08:55:00' --until '2026-08-14 09:55:00' --no-pager 2>/dev/null | grep -E 'LS WS|ls_ws|미OPEN|_opened|watchdog|universe_wipe|유니버스슬롯|condition 소스' | head -80

description: Check watch service and today's LS logs


Write

contents:
#!/usr/bin/env python3
from database import TradeDB
from kis_trader.utils.env import get_env_from_db, get_env_int

db = TradeDB()
cols = [r["Field"] for r in db.conn.execute("SHOW COLUMNS FROM env_config_ext").fetchall()]
print("ok", cols)
keys = (
    "LS_WS_PING_INTERVAL_SEC",
    "LS_WS_PING_TIMEOUT_SEC",
    "LS_WS_WATCHDOG_ENABLED",
    "LS_WS_WATCHDOG_SILENCE_SEC",
    "SCAN_INTERVAL_MIN",
    "SCALP_SCAN_INTERVAL_MIN",
    "MOMENTUM_SCAN_INTERVAL_MIN",
    "BREAKOUT_SCAN_INTERVAL_MIN",
    "SHORT_SCAN_INTERVAL_MIN",
    "TAIL_SCAN_INTERVAL_MIN",
    "OPS_ALERT_COOLDOWN_SEC",
    "OPS_ALERT_COOLDOWN_WS_LS_DOWN_SEC",
)
ph = ",".join(["%s"] * len(keys))
rows = db.conn.execute(
    "SELECT env_key, env_value FROM env_config_ext WHERE env_key IN (" + ph + ")",
    keys,
).fetchall()
print("ext", [(dict(r)["env_key"], dict(r)["env_value"]) for r in rows])
print("---")
for k in keys:
    print(k, repr(get_env_from_db(k, "")), "int", get_env_int(k, -1))

command: ps aux | grep -E 'kis_error_watch|error_watch' | grep -v grep; echo '---units---'; systemctl list-units --all '*error*' --no-pager; echo '---kill---'; journalctl -u kis_trader_main.service --since '2026-08-13 15:00:00' --until '2026-08-13 15:15:00' --no-pager | grep -iE 'kill|oom|restart|signal|Stopped|deactivat' | head -40; echo '---watch log---'; ls -la /home/hoon/kis_bot/logs/kis_error_watch_mm.log 2>/dev/null; tail -20 /home/hoon/kis_bot/logs/kis_error_watch_mm.log 2>/dev/null

description: Find error-watch process and SIGKILL cause


Shell

command: cd /home/hoon/kis_bot && python3 -m py_compile logs/_adhoc_alert_diag3.py && PYTHONPATH=/home/hoon/kis_bot python3 logs/_adhoc_alert_diag3.py

description: Query ping and scan interval env

command: journalctl -u kis_trader_main.service --since '2026-08-13 15:04:00' --until '2026-08-13 15:13:00' --no-pager | grep -E 'systemd|Killed|SIGKILL|oom|Stopping|Started' | head -50; echo '==== 23:35 ===='; journalctl -u kis_trader_main.service --since '2026-08-13 23:34:00' --until '2026-08-14 01:20:00' --no-pager | grep -E 'systemd|Stopping|Started|Killed' | head -40

description: Find systemd restart/kill reasons


description: Systemd-only lines for 8/13 afternoon kill


text:
결론부터 말하면, **손실인데 녹색**은 매매 실패가 아니라 **알림 색과 수익률 줄이 서로 다른 숫자**를 보고 있어서입니다. 오늘 장중 빨간 알림은 **진짜 장애 1개 + 오탐이 여러 겹**입니다.

---

## 1. 네오오토 매도가 마이너스인데 🟢인 이유

알림은 이렇게 나뉩니다.

| 줄 | 기준 | 그날 값 |
|---|---|---|
| 수익률 **-1.78%** | 매도 **신호 당시 현재가** vs 매수가 | 손절호가 트리거 시점 시세 |
| 실현 **+295원** · 🟢 | **실제 체결가** 12,010원 − 매수가 − 수수료/세금 | 체결 손익 |

색은 수익률이 아니라 **실현손익**만 봅니다.

```842:848:kis_trader/execution/order_manager.py
                emoji = "🟢" if (realized_pnl is None or realized_pnl >= 0) else "🔴"
                pnl_str = f"{realized_pnl:+,.0f}원" if realized_pnl is not None else "-"
                disp = _strategy_display(req.strategy_id)
                header = (
                    f"{emoji} **[매도체결:{disp}]** {req.name}({req.code})\n"
                    f"{sell_price:,.0f}원 × {delta_qty}주\n"
                    f"{req.reason} · 수익률 {req.profit_pct*100:+.2f}%\n"
```

손절호가는 **호가 OR이 무너지고, 그때 현재가가 이미 매수가보다 아래**일 때 발동합니다. 그 시점 시세로 **-1.78%**가 찍힙니다.
주문은 지정가(호가)라 **체결가 12,010원**이 트리거 시세보다 나을 수 있고, 그 체결 기준으로는 **소폭 플러스(+295원)** 가 됩니다.

그래서 사람은 “손절·마이너스”를 보고, 봇은 “체결 손익 플러스”로 초록을 붙입니다.
추가로 `realized_pnl is None`(매수가 없음)이어도 초록입니다. 그건 별도 구멍입니다.

**영향:** 실매 알림 UX만. 백테/파람 숫자와 무관합니다.
고치려면 색을 **수익률 또는 `min(실현, 수익률)`** 기준으로 바꾸면 됩니다. 원하시면 그때 수정하겠습니다.

---

## 2. 오늘(8/14) 오류 — 원인별로 정리

운영 유니버스는 **전부 키움 조건검색**입니다. 시세 주력도 키움입니다. LS는 `LS_WS_ENABLED=true` 때문에 **그림자 소켓**으로 떠 있습니다.

### A. 진짜 원인 — `LS 시세 WS 미OPEN` (`ws_ls_down`)

**이름:** LS 핑 꺼짐 → 서버가 60초마다 연결 끊음

DB: `LS_WS_PING_INTERVAL_SEC=0` → 로그에도 `ping=off`.
저널: 약 1분마다 `opcode=8 data=b'\x03\xe8Bye'` (정상 종료 코드 1000) 후 바로 재OPEN.

LS 서버는 핑이 없으면 유휴 연결을 끊습니다. 봇이 다시 붙고, 또 끊깁니다.

알림이 더 과장되는 이유: `_ops_health_tick`이 **하트비트 60초마다** `_opened`만 봅니다. 끊기는 순간에 걸리면 “60초+ 미OPEN”으로 나갑니다. 실제로는 대부분 바로 다시 붙습니다.

국장 매매 본체(키움 조건·키움/KIS 시세)와는 **별 경로**입니다. 다만 LS를 호가/검증/3차 spill에 쓰면 그 구간은 흔들립니다.

### B. 운영 설정 — `universe_wipe` / `universe_zero` / `후보 1→0`

**이름:** 유니버스 슬롯 교집합 전량탈락

DB: `LIVE_UNIVERSE_SLOT_ALIGN=true` (코드 기본은 **False**, 켜져 있음).

동작: 키움 HTS **지금 후보** ∩ **history 스냅샷**. 스냅샷에 없는 종목은 버립니다. 오늘 로그처럼 `10→0`, `1→0`은 “HTS가 죽었다”가 아니라 **실시간 목록과 history가 안 겹침**입니다.

`universe_zero` (`kw=0 ls=-1`): 키움 매니저 유니버스가 0이 180초 이상. 장초·조건식 공백이거나, 위 교집합으로 전략 쪽 후보가 비는 것과 겹칩니다. LS 매니저는 없어서 `ls=-1`인 것이 정상입니다.

### C. 오탐 — `🚨 로그 오류 매칭` (운영알림과 이중 울림)

오류감시 프로세스(`kis_error_watch_mm.py`)가 **8/3부터 재시작 없이** 떠 있습니다. systemd 유닛은 없고, nohup입니다. **기동 때 읽은 정규식**을 그대로 씁니다.

매칭이 넓습니다.

- `[ops_alert]` → 이미 보낸 운영알림 로그를 다시 “오류”로 올림
- `유니버스슬롯.*→0` → INFO `후보 1→0`까지 오류로 올림
- `조건검색 매니저 비활성` → 재시작 INFO (`condition` 소스 안 씀 → KIS 조건검색 OFF)를 오류로 올림

저장소 쪽 ignore에는 일부 빼는 규칙이 있지만, **8/3 프로세스는 그 코드를 안 읽고 있습니다.**

### D. 어제 재시작 / SIGKILL — 크래시가 아님

| 시각 | 실제 |
|---|---|
| 8/13 14:48, 15:04, 23:35, 8/14 01:17 | `systemctl stop/start` (배포·수동 재시작) |
| 8/13 15:11 SIGKILL | 종료 시 SIGTERM이 안 끝나 **TimeoutSec 초과 → systemd가 KILL** (`Failed with result 'timeout'`). OOM 아님 |

재시작 직후 `condition 소스 쓰는 전략 없음`은 **한투(KIS) 조건검색을 안 써서 매니저를 끈다**는 INFO입니다. 키움 조건검색은 기동 알림에 정상 등록돼 있습니다.

---

## 한 줄로

- **초록:** 손절 **시세**는 마이너스, **체결 손익**은 +295원 → 색이 체결만 봄.
- **오늘 빨간 알림:** 본체는 **LS 핑 0으로 1분마다 Bye**. 유니버스 전량탈락은 **슬롯 정합 ON**. 나머지는 **오류감시가 운영로그를 다시 울리는 오탐**.

원하시면 승인 받고 이 순서로 손대면 됩니다. (실매 영향은 1·2번)

1. 매도 알림 색 = 수익률/실현 중 손실이면 빨강
2. `LS_WS_PING_INTERVAL_SEC`를 기본 20으로 (또는 LS가 필요 없으면 WS 기동 OFF)
3. 오류감시 재시작 + `[ops_alert]`/INFO 유니버스슬롯 매칭 제거
4. `LIVE_UNIVERSE_SLOT_ALIGN`은 백테 정합용이라 **끄기 전에 한 번 더 확인**