← 리포트 목록
fundamental/technical analyst knowledge source mapping
2026-04-16
analyst
[analyst, knowledge-context, source-mapping, fundamental, technical, macro-boundary]
결론
해리 피드백 반영 완료. 이제 wrapper/context/prompt 레이어에서 macro / fundamental / technical 역할 경계가 더 선명해졌다.
- macro는 CPI/PCE/GDP/고용/금리/FX/중앙은행 정책/유가/원자재 실물 지표와 그 해석만 담당.
- z-score, MA 대비, 이동평균, 편차, 과열/과매도, 통계적 이상치, 표준편차, 변동성 밴드, RSI, 볼린저, 브레이크아웃은 macro 금지 → technical 전담.
- fundamental은 실적/밸류/마진/경쟁력/해자/수주/어닝콜만 담당하고 차트·모멘텀·RSI·z-score를 결론 근거로 쓰지 않게 했다.
- technical은 차트/수급/모멘텀/변동성/기술통계만 담당하고 PER/PBR/DCF/어닝을 매매 근거로 쓰지 않게 했다.
원본 analyst 실행 본체는 건드리지 않았고, s:4가 쓰는 knowledge_context_builder.py와 analyst prompt만 수정했다.
수정 파일
~/.hermes/workspace/scripts/knowledge_context_builder.py~/.hermes/workspace/scripts/analyst_macro_prompt.md~/.hermes/workspace/scripts/analyst_fundamental_prompt.md~/.hermes/workspace/scripts/analyst_technical_prompt.md
백업:
~/.hermes/workspace/scripts/knowledge_context_builder.py.bak-source-mapping-20260416T085408~/.hermes/workspace/scripts/analyst_macro_prompt.md.bak-source-mapping-20260416T085408~/.hermes/workspace/scripts/analyst_fundamental_prompt.md.bak-source-mapping-20260416T085408~/.hermes/workspace/scripts/analyst_technical_prompt.md.bak-source-mapping-20260416T085408
s:4 knowledge_context_builder 호환 매핑
knowledge_context_builder.py에 SourceSpec 기반 소스가 추가/정리됐다. 현재 인식 소스 수:
| key | count | pattern | analyst 주용도 |
|---|---|---|---|
| telegram | 1308 | *.md |
macro 해석, 일부 trader/수주 힌트 |
| macro_bond_telegram | 10 | *.md |
macro 보조 |
| newsletter | 40 | 2604*_*.md |
fundamental 우선, macro/pm 보조 |
| fundamental_research | 2256 | *.md |
fundamental 기업·산업 리서치 |
| blog | 128 | *ranto28*.md |
fundamental/pm 보조 |
| 3 | *twitter*.md |
technical/fintwit | |
| technical_events | 17 | *.json |
technical 핵심 |
| nepcon | 4 | *nepcon*.md |
fundamental 리서치 보조 |
| credit | 59 | *.md |
fundamental credit, macro 보조 |
핵심 변경:
ANALYST_SOURCE_LIMITS = {
"macro": {
"telegram": 4, "macro_bond_telegram": 3, "newsletter": 2,
"blog": 2, "credit": 1,
"twitter": 0, "nepcon": 0, "fundamental_research": 0, "technical_events": 0
},
"fundamental": {
"newsletter": 4, "credit": 3, "fundamental_research": 4,
"nepcon": 2, "telegram": 1, "blog": 1,
"twitter": 0, "technical_events": 0
},
"technical": {
"technical_events": 4, "twitter": 4, "telegram": 2,
"newsletter": 0, "blog": 0, "credit": 0, "fundamental_research": 0
}
}
macro에는 technical_events와 twitter를 0으로 막았다. technical에는 technical_events를 최우선으로 올렸다. fundamental에는 newsletter/credit/fundamental_research를 우선 배정했다.
fundamental analyst 소스 매핑
| 소스 | 경로 | 최신 N 추출 명령 | 사용 방식 | 금지 |
|---|---|---|---|---|
| Gmail 뉴스레터: AppEconomy | ~/knowledge-agent/100 수신함/121 뉴스레터/*AppEconomy* |
ls -lt ~/knowledge-agent/100\ 수신함/121\ 뉴스레터/*AppEconomy* | head -5 |
실적/비즈니스 모델/어닝 비주얼 | 차트·모멘텀 해석 |
| Gmail 뉴스레터: QualityCompounding | .../*CompoundingQuality* |
ls -lt ~/knowledge-agent/100\ 수신함/121\ 뉴스레터/*CompoundingQuality* | head -5 |
퀄리티/해자/밸류에이션/장기 복리 | 가격 z-score |
| Gmail 뉴스레터: BondEconomics | .../*BondEconomics* |
ls -lt ~/knowledge-agent/100\ 수신함/121\ 뉴스레터/*BondEconomics* | head -5 |
금리/크레딧이 기업 펀더멘털에 주는 비용·수요 영향 | macro 레짐 결론 대체 |
| 크레딧 메일 | ~/knowledge-agent/100 수신함/119 크레딧메일/*.md |
ls -lt ~/knowledge-agent/100\ 수신함/119\ 크레딧메일/*.md | head -5 |
회사채/CP/입찰/수요예측 → 기업 자금조달 여건 | 차트 시그널화 |
| 기업·산업 리서치 | ~/knowledge-agent/100 수신함/116 croned_data/반도체IT, ~/knowledge-agent/200 아토믹/220 기업 |
find ... -iname '*.md' | rg '실적|어닝|매출|EPS|가이던스' |
실적·수주·마진·경쟁력 근거 | RSI/MA/브레이크아웃 |
실측 최신 예시:
- AppEconomy:
260410_AppEconomyInsights_Anthropic-Leapfrogs-OpenAI.md,260411_AppEconomyInsights_PRO-This-Week-in-Visuals.md - QualityCompounding:
260415_CompoundingQuality_A-Strategy-For-Challenging-Times.md,260409_CompoundingQuality_Is-LOréal-an-interesting-stock.md - BondEconomics:
260410_BondEconomics_Public-Bank-Lending.md,260401_BondEconomics_Postal-Savings-Banks.md,260408_BondEconomics_Ceasefire.md - 크레딧:
260415_황대진_전달-금일-416-목-입찰-및-CP-발행내역-DS증권-황대진.md,260415_황대진_전달-일일-415-수-채권시장-마감정리-DS증권-황대진.md - 기업 리서치:
260318_skitteam.md,260315_ITforYouFromHana.md,260312_분석_케이에스피_실적브레이크다운.md,260319 Kingsoft Cloud (KC) 정밀 분석.md
technical analyst 소스 매핑
| 소스 | 경로 | 최신 N 추출 명령 | 사용 방식 | 금지 |
|---|---|---|---|---|
| 트위터/fintwit | ~/knowledge*/**/*twitter*.md |
find ~/knowledge-agent ~/knowledge -iname '*twitter*.md' | head |
trader 관점, chart/flow 힌트 | PER/PBR/DCF 근거화 |
| 차트 분석 글 | ~/knowledge-agent/500 시그널/530 테크니컬, ~/knowledge-agent/400 판단/450 에이전트리포트 |
find ~/knowledge-agent -iname '*.md' | rg '차트|RSI|볼린저|브레이크아웃|이동평균|모멘텀' |
기존 기술 리포트/차트 패턴 | 펀더멘털 결론 대체 |
| 기술적 이벤트 JSON | ~/.hermes/workspace/memory/technical-signals/*.json |
ls -lt ~/.hermes/workspace/memory/technical-signals/*.json | head -5 |
RSI/MACD/BB/MA/ADX/월간 range | macro 정책 해석 |
| 가격 이력 | ~/.hermes/workspace/memory/price-history/*.json |
ls -lt ~/.hermes/workspace/memory/price-history/*.json | head -5 |
MA 대비, volume spike, 52주 신고가 계산 입력 | 밸류 판단 |
| 전략 흐름 | ~/.hermes/workspace/memory/strategy-flow/*.json |
ls -lt ~/.hermes/workspace/memory/strategy-flow/*.json | head -8 |
거래량/투자자 주체/CFTC 흐름 | 어닝 근거화 |
실측 최신 예시:
- Twitter:
260315_x_twitter.md,260315_x_twitter_httpsxcomgarrettbullishstatus2032.md,260306_x_twitter_httpsxcomMrMarket89status20297572.md - Technical events:
technical-signals/latest.json,technical-signals/2026-04-15.json,price-history/SPY.json,strategy-flow/trading_volume_history.json - Chart/technical notes:
260416_technical_시그널.md,260416_pm_크로스검증.md,260415_technical_시그널.md계열
역할 분리 룰
macro 금지
macro prompt와 context wrapper에 반영:
- 금지어:
z-score,MA 대비,이동평균,편차,과열/과매도,통계적 이상치,표준편차,변동성 밴드,RSI,볼린저,브레이크아웃,모멘텀,차트 패턴. - macro 담당: CPI/PCE/PPI, GDP/소비/투자, 고용, 금리/금리차, FX, 중앙은행 정책, 유가·원자재 실물 지표, 재정/무역/공급망, 그리고 이들의 원인·정책 함의.
- context builder에서 macro는
technical_events=0,twitter=0으로 차단했고, macro-forbidden technical terms가 있는 항목은 점수에서 강하게 감점한다.
fundamental 금지
fundamental prompt에 반영:
- 차트, z-score, MA 대비, 이동평균, 편차, 과열/과매도, 표준편차, 변동성 밴드, RSI, 볼린저 밴드, 브레이크아웃, 모멘텀을 결론 근거로 쓰지 않는다.
- 기술 지표가 context에 있으면
technical_validation_needed로 넘긴다. - 기존 prompt의 ETF z-score/RSI 기반 섹터 판단 문구를 실적·마진·수주·공시·어닝콜 기준으로 바꿨다.
technical 포함
technical prompt와 context wrapper에 반영:
- 담당: z-score, MA 대비, 편차, 이동평균, 변동성, 모멘텀, 차트 패턴, RSI, 볼린저 밴드, 브레이크아웃, 거래량/Volume spike, 52주 신고가.
- 금지: PER/PBR/DCF/어닝 서프라이즈/마진/경쟁력/해자를 매수·매도 근거로 쓰지 않는다.
- macro의 CPI/PCE/GDP/고용/정책 해석은 배경 조건으로만 사용한다.
짜치는 표현 블랙리스트 설계
context header에 공통 가드로 넣었다.
금지 표현:
관심 필요모니터링 필요수혜 기대리스크 있음좋아 보임단기적으로 긍정적중장기적으로 유망
허용 조건:
- 반드시 수치 + 원인 + 검증 질문이 붙어야 한다.
- 예: “관심 필요” 금지. 대신 “FY26 Q3 매출 +201%, DustPhotonics 인수 후 SerDes+광모듈 통합 시너지 확인 필요”처럼 쓴다.
생성한 context 샘플
fundamental
파일:
~/.hermes/logs/context_sample_fundamental.md
검증:
10363 /Users/ron/.hermes/logs/context_sample_fundamental.md
역할 경계: 실적/밸류에이션/마진/경쟁력/해자/수주/어닝콜만 담당한다. 차트·모멘텀·z-score·RSI·이동평균은 사용 금지.
주입된 핵심 섹션:
- 최근 뉴스레터: AppEconomy, CompoundingQuality 중심.
- 최근 기업·산업 리서치: SK IT팀, 하나 IT, 케이에스피 실적 breakdown, Kingsoft Cloud.
- 최근 채권/크레딧: 황대진 DS증권 메일.
technical
파일:
~/.hermes/logs/context_sample_technical.md
검증:
4918 /Users/ron/.hermes/logs/context_sample_technical.md
역할 경계: z-score, MA 대비, 편차, 이동평균, 변동성, 모멘텀, 차트 패턴, RSI, 볼린저 밴드, 브레이크아웃만 담당한다.
주입된 핵심 섹션:
- 최근 트윗/X:
260315_x_twitter.md등. - 최근 기술적 이벤트/가격 데이터:
technical-signals/latest.json,2026-04-15.json,price-history/SPY.json,strategy-flow/*.json.
검증 커맨드
python3 -m py_compile ~/.hermes/workspace/scripts/knowledge_context_builder.py
python3 ~/.hermes/workspace/scripts/knowledge_context_builder.py --list-sources
python3 ~/.hermes/workspace/scripts/knowledge_context_builder.py --analyst fundamental --hours 720 --max-chars 6500 --output ~/.hermes/logs/context_sample_fundamental.md
python3 ~/.hermes/workspace/scripts/knowledge_context_builder.py --analyst technical --hours 720 --max-chars 5000 --output ~/.hermes/logs/context_sample_technical.md
rg -n "z-score|MA 대비|이동평균|편차|과열/과매도|통계적 이상치|표준편차|변동성 밴드|테크니컬 영역|매크로 관장|펀더멘털 ≠ 테크니컬|테크니컬 전담 영역|짜치는 표현" ~/.hermes/workspace/scripts/analyst_*_prompt.md ~/.hermes/workspace/scripts/knowledge_context_builder.py
검증 결과:
PY_COMPILE_OK
context_sample_fundamental.md 생성: 10363 bytes
context_sample_technical.md 생성: 4918 bytes
남은 리스크
- technical용 Twitter corpus가 현재 로컬에서 풍부하지 않다.
twitterSourceSpec은 잡아뒀지만 실제 최신 fintwit trader 글은 3~8개 수준이라, collector 쪽 보강이 필요하다. - 일부 기존 뉴스레터 요약 품질이 낮다. 오늘
gmail_newsletter_collector.py프롬프트를 고쳤지만 기존 저장분은 재생성하지 않았다. - fundamental sample에 Telegram 수주/계약 힌트가 1건 들어간다. 이는 HD현대마린엔진 수주 같은 펀더멘털 사실일 때만 허용하고, 가격/차트성 Telegram은 technical로 보내는 방향이다.
- macro prompt에는 금지어를 “금지어 목록”으로 표시하기 위해 단어 자체가 등장한다. 실제 출력에서는 금지하도록 명시했다.
자체평가
- 정확성: 4.6/5 — 해리의 macro/technical 경계 룰을 prompt와 wrapper 양쪽에 반영했고, fundamental/technical 소스 매핑을 실제 경로 기준으로 만들었다.
- 완성도: 4.5/5 — 샘플 context 2개 생성 완료. 다만 technical Twitter 원천 자체가 적은 것은 collector 보강 과제로 남는다.
- 검증: 4.7/5 — py_compile, source listing, sample generation, grep verification 수행.
- 최소 변경: 4.5/5 — analyst 본체는 수정하지 않고 prompt/context wrapper만 변경했다.
종합: 4.6/5