AI생활비서 2주차 사례글: Hermes 크론 4개로 하루 종일 돌아가는 주식·뉴스 자동화 시스템 구축기

시나몬 · 생활형 AI 비서 만들기 · · 좋아요 0 · 답글 0

연재 생활형 AI 비서 만들기 10/12편

소개


주식 관련 뉴스를 스터디 그룹에 전달할 때마다 항상 같은 고민이 생겼습니다.

"이 기사, 진짜 사실인가? 아니면 증권사 입맛에 맞게 쓴 전망인가?"


직접 판단하려면 시간이 걸리고, 그냥 전달하면 오해를 부를 수 있었어요. 그래서 AI 비서가 기사를 받아서 사실과 주장을 구분하고, 주장마다 신뢰도 %를 붙여 그룹에 보내기 전에 먼저 검토할 수 있게 만들어보기로 했습니다.

이 비서의 이름을 박박사라고 붙였습니다.

동시에, 매일 아침 삼성전자·SK하이닉스 주가를 보면서 기술적 지표를 해석하는 데 20~30분씩 쓰고 있었는데, 이것도 자동화하고 싶었습니다. 두 가지를 묶어서 "매일 오전 8시, 주식 분석 + 뉴스 박박사 요약을 텔레그램으로 받는 시스템" 을 만드는 게 이번 주차 목표였습니다.

---

진행 방법

Step 1. 인터뷰로 비서 성격 정의하기

클로더즈에서 제공한 인터뷰 프롬프트 템플릿을 받아서, 질문에 직접 답변하는 방식으로 박박사의 역할을 정의했습니다. AI에게 "이렇게 만들어줘"라고 지시하는 게 아니라, 제가 먼저 비서의 성격을 인터뷰 형식으로 정의하고 나서 파일로 저장하는 방식이었습니다.

인터뷰에서 제가 답한 핵심 내용입니다.

다루는 대상  : 뉴스·글 텍스트
핵심 기능   : 사실과 주장/추정 구분 + 신뢰도 % 추정

신뢰도 판단 기준 3가지
  1. 사실성 (Factfulness) — 데이터가 실제 사실에 입각했는가
  2. 연관성 (Relevance)   — 근거가 주장과 실제로 연관 있는가
  3. 충분성 (Sufficiency) — 근거의 양·질이 주장을 납득시키기에 충분한가

말투           : 짧고 직접적, 이모지·감탄사 없음
절대 하지 않을 일 : 기사에 없는 내용 추가, 개인 해석·가치 판단



이 결과를

assistant-soul.md

파일로 저장했습니다.

---

Step 2. 작업 폴더에 역할 파일 연결하기

Hermes는 작업 폴더 안의

.hermes.md

파일을 자동으로 읽어서 비서 설정에 반영합니다. 여기에 박박사 규칙 파일을 참조하도록 연결했습니다.

## 참조 파일 목록
- `assistant-soul.md`    — 박박사 비서 정의 (말투·판단 기준·금지 사항)
- `privacy-boundaries.md` — 개인정보 처리 경계 규칙

## 사용 규칙
- 뉴스 요약 요청이 오면 `assistant-soul.md`의 박박사 규칙을 따른다.



---

Step 3. 주식 분석 스크립트 만들기

매일 자동으로 실행될 Python 스크립트를 만들었습니다. 분석 항목은 총 17개 지표로, 7개 섹션으로 구성했습니다.

[A] 추세 — 5개
- MA(5·20·60·120일) — 정배열/역배열 판단
- MACD(12,26,9) — 상승/하락 국면 전환 포착
- ADX(14) — 추세 강도 측정 (방향 무관, ≥25 추세장)
- Parabolic SAR — 추세 반전 신호
- Ichimoku 일목균형표 — 추세·지지·저항 동시 파악

[B] 모멘텀 — 5개
- RSI(14일) — 과매수(≥70) / 과매도(≤30)
- Stochastic(14,3,3) — %K·%D 골든/데드크로스
- Stochastic RSI — RSI보다 민감한 신호
- Williams %R(14) — 14일 고가 기준 현재가 위치
- CCI(20) — 추세 강도 + 과매수·과매도 동시 측정

[C] 변동성·밴드 — 3개
- 볼린저밴드(20일, μ±2σ) — 가격 위치 0~100%로 표시
- Keltner Channel — BB가 KC 밖으로 나오면 Squeeze → 큰 방향성 임박
- ATR(14일) — 손절선 자동 계산 (현재가 − 1.5~2×ATR)

[D] 거래량 — 4개
- Volume/MA(20) — 평소 대비 거래량 배수
- OBV — 상승일 거래량 누적 − 하락일 누적, 방향 확인
- MFI(14) — 거래량 가중 RSI
- CMF(20) — 20일간 자금 유입·유출 방향

[E] 종합 의견

10개 항목에 각 −2~+2점을 부여해서 합산합니다.

+6 이상  →  🟢🟢  강한 매수 관점
+3~+5   →  🟢    매수 관점
−2~+2   →  🟡    중립
−3~−5   →  🔴    매도 관점
−6 이하  →  🔴🔴  강한 매도 관점



[F] 4국면 분석 — 투자의정석 헤게모니 사이클

기술적 지표와 별개로 기업 펀더멘털 국면을 판단합니다.

1국면: 수요회복    → 실적 바닥, 저평가 매수 기회
2국면: 초과이익    → 매출·영업이익 고성장, 보유 유지
3국면: 레버리지둔화 → 성장세 꺾임, 리스크 관리
4국면: 헤게모니상실 → 구조적 하락, 비중 축소



매일 네이버 금융 API에서 최근 분기 실적을 가져와 국면을 자동 판단하고, Graham Formula로 안전마진도 계산합니다.

[G] 슈퍼 이동평균 전략

단기/장기 MA 조합 전체를 5년 백테스팅해서 최적 조합을 자동 선택합니다. 여기에 MB 시장 온도 필터를 추가해 현재 변동성이 과거 대비 몇 % 위치인지 계산하고 진입 타이밍을 조절합니다.

🌡 시장 온도: 🟢 냉각 (하위 14%)  σ=1.49%
→ 돌파 시 진입 유리한 구간



[뉴스] 박박사 요약

RSS로 수집한 당일 기사를 박박사 기준으로 분류합니다. 실제 출력 예시입니다.

📰 삼성전자 뉴스 — 박박사 요약
※ % 수치는 추정값, 정확한 계산 아님

1. 사실(보도): 한글날 연휴 이후 첫 거래일 삼성전자·SK하이닉스 4% 넘게 급락
   → 신뢰도 약 60% — 분류 키워드 없음 — 원문 확인 권장
   [연합뉴스] 🔗 링크

2. 주장/추정: SK하이닉스 목표가 320만원 등장…"3분기 영업익 80조 간다"
   → 신뢰도 약 35% — 주장/예측 포함('목표가'), 출처 신뢰 보통
   [매일경제] 🔗 링크



---

Step 4. Hermes 크론으로 하루 4회 자동 파이프라인 구성

단순히 "매일 한 번 실행"이 아니라, 장 시작 전부터 마감 후까지 4개 크론을 조합했습니다.

08:00
• 내용: 전일 종가 기준 전체 분석 + 뉴스 박박사 요약
• 스케줄 표현:

every day at 8am



12:00
• 내용: 오전 장중 현황
• 스케줄 표현:

weekdays at 12pm



15:00
• 내용: 마감 30분 전 현황
• 스케줄 표현:

weekdays at 3pm



20:00
• 내용: 하루 마감 정리
• 스케줄 표현:

weekdays at 8pm



08시는 주말 포함(

every day

), 장중 3개는 평일만(

weekdays

). 스케줄 표현을 자연어로 쓸 수 있는 게 편했습니다.

크론 생성 시 사용한 핵심 옵션들입니다.

cronjob_manage(
    action='create',
    name='데일리 주식 분석',
    schedule='every day at 8am',
    script='stock_daily.py',              # 파일명만 (절대경로 X)
    workdir='C:/Users/.../stock_analysis', # 절대경로 필수
    no_agent=True,                         # LLM 없이 스크립트 직접 실행
    deliver='telegram:채팅ID:스레드ID'     # 특정 토픽까지 지정
)
no_agent=True

를 쓰면 LLM을 거치지 않고 스크립트를 그대로 실행합니다. 박박사 요약 로직이 스크립트 안에 이미 구현되어 있어서 속도도 빠르고 토큰 비용도 없습니다.

텔레그램 deliver 옵션에서 스레드 ID까지 붙이는 형식(telegram:채팅ID:스레드ID)을 알게 된 것도 이번이 처음이었습니다. 처음엔 origin을 썼다가 엉뚱한 채널로 전달되는 문제를 겪고 나서 명시적으로 지정하게 됐습니다.

---

막힌 지점 — 나무증권 모의투자 API

박박사 요약 결과를 바탕으로 자동매매까지 연결하려고 나무증권(NH투자증권) OpenAPI를 신청하려 했는데, Hermes가 안내한 메뉴 경로와 실제 화면 구성이 달랐습니다.

마이페이지 > OpenAPI 신청

• 실제 화면: 해당 메뉴 없음

모의투자 > API 발급

• 실제 화면: 모의투자 탭 위치가 다름

결국 고객센터 채팅으로 직접 확인해서 경로를 찾았습니다.

실제 경로: 나무 앱 > 설정 > 오픈API > 모의투자 신청

AI가 안내하는 UI 경로는 서비스 업데이트로 바뀌어 있는 경우가 있습니다. 참고하되 실제 화면을 직접 확인하는 습관이 필요하다는 걸 배웠습니다.

---

결과와 배운 점

✅ 결과

- 박박사 역할 파일 완성 및 Hermes 작업 폴더에 연결

- 17개 지표 + 4국면 + 슈퍼 이동평균 전략 + 뉴스 박박사 요약이 매일 오전 8시 텔레그램으로 자동 도착

- 장중 12시·15시·마감 후 20시 업데이트까지 하루 4회 파이프라인 가동

- 나무증권 모의투자 API 신청 완료

---

💡 배운 점과 나만의 꿀팁

AI 비서의 성격은 인터뷰 형식으로 정의하는 게 가장 빠릅니다.

처음부터 완성된 문서를 쓰려 하면 막힙니다. 질문에 답하다 보면 자연스럽게 규칙이 만들어집니다.

no_agent=True 크론은 결과가 일정합니다.

LLM에게 매번 판단을 맡기면 같은 입력에도 출력이 달라질 수 있습니다. 로직이 스크립트에 이미 있다면 no_agent 모드가 낫습니다.

last_error를 주기적으로 확인하세요.

크론이 조용히 실패하고 있어도 모르고 지나칠 수 있습니다. 변수명 오류 하나로 하루치 분석이 빠진 걸 다음날에야 발견한 경험이 있습니다.

박박사의 신뢰도 %는 추정값이라고 매번 밝히는 게 오히려 효과적입니다.

한계를 먼저 드러내는 것 자체가 그룹 내 신뢰를 높이는 데 도움이 됐습니다.

---

🔧 시행착오

- pandas_ta 설치 실패 (numba 충돌) → pandas로 지표 직접 계산으로 대체

- 크론 deliver='origin' 설정 → 엉뚱한 채널로 전달 → 명시적 채팅ID+스레드ID로 수정

- 나무증권 API 메뉴 경로 불일치 → 고객센터 직접 확인으로 해결

---

🗓 앞으로의 계획

나무증권 모의투자 API 토큰 발급 후, 박박사 요약 점수가 기준 이하로 떨어질 때 자동 매도 주문 1건을 테스트할 계획입니다. 실제 체결까지 연결되면 "뉴스 읽기 → 판단 → 주문" 이 완전 자동화됩니다.

---

도움 받은 글

- 클로더즈 AI 비서 인터뷰 프롬프트 템플릿

- 동부증권 스몰캡팀 『투자의정석』(2011) — 4국면 헤게모니 사이클 분석 기준

태그: #생활형AI비서