Initial commit: Korean stock value-investing AI pipeline

- 19개 마이크로서비스 (news-collector, score-engine, ta-engine, dart-collector,
  aux-signal, us-market, graph-engine, telegram-bot, dashboard-api, kis-api 등)
- 가치투자 스코어링 + 10공식 앙상블 보팅 (매직포뮬러/F-Score/Altman/PEG/
  모멘텀/Beneish/GP-A/G-Score/Amihud/BAB)
- 뉴스 수집→형태소→임베딩→중복제거→AI분석 파이프라인
- 기술적분석 + GAT 그래프신경망 + 미증시 동조 시그널

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
kyuandClaude Opus 4.7 committed 2026-05-20 21:33:56 +09:00
commit 6d3b0bacc0
60 files changed
+17818

No files matched your search

@@ -0,0 +1 @@
{"id":"1f94ace6-528e-4a21-8bac-63c8c74e8096","name":"🤖 Trading AI 통합 워크플로우","nodes":[{"id": "a01", "name": "🧠 01:00 종목사전학습", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.1, "position": [100, 100], "parameters": {"rule": {"interval": [{"field": "cronExpression", "expression": "0 1 * * *"}]}}}, {"id": "a02", "name": "종목사전 새로고침", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [400, 100], "parameters": {"method": "POST", "url": "http://bareunaapi:5757/stocks/refresh", "options": {"timeout": 120000}}}, {"id": "a03", "name": "중복캐시 초기화", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [700, 100], "parameters": {"method": "DELETE", "url": "http://bareunaapi:5757/dedup/flush", "options": {"timeout": 30000}}}, {"id": "a04", "name": "형태소재분석", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [1000, 100], "parameters": {"method": "POST", "url": "http://bareunaapi:5757/analyze/batch", "options": {"timeout": 120000}, "sendBody": true, "contentType": "json", "specifyBody": "json", "jsonBody": "{\"items\": [{\"title\": \"학습배치시작\"}]}"}}, {"id": "a05", "name": "💾 02:00 워크플로우백업", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.1, "position": [100, 320], "parameters": {"rule": {"interval": [{"field": "cronExpression", "expression": "0 2 * * *"}]}}}, {"id": "a06", "name": "백업 (호스트 cron으로 대체)", "type": "n8n-nodes-base.noOp", "typeVersion": 1, "position": [400, 320], "parameters": {}}, {"id": "a07", "name": "🔔 06:00 신규상장모니터링", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.1, "position": [100, 540], "parameters": {"rule": {"interval": [{"field": "cronExpression", "expression": "0 6 * * 1-5"}]}}}, {"id": "a08", "name": "기업목록 갱신", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [400, 540], "parameters": {"method": "POST", "url": "http://dart-collector:8888/collect/corps", "options": {"timeout": 300000}}}, {"id": "a09", "name": "🌅 08:50 장시작브리핑", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.1, "position": [100, 760], "parameters": {"rule": {"interval": [{"field": "cronExpression", "expression": "50 8 * * 1-5"}]}}}, {"id": "a10", "name": "장시작 브리핑 전송", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [400, 760], "parameters": {"method": "POST", "url": "http://score-engine:8686/briefing/send", "options": {"timeout": 60000}}}, {"id": "a11", "name": "📰 매5분 뉴스수집", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.1, "position": [100, 980], "parameters": {"rule": {"interval": [{"field": "cronExpression", "expression": "*/5 8-18 * * 1-5"}]}}}, {"id": "a12", "name": "RSS 수집", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [400, 920], "parameters": {"method": "POST", "url": "http://news-collector:8787/collect/rss", "options": {"timeout": 120000}}}, {"id": "a13", "name": "시장뉴스 수집", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [400, 1040], "parameters": {"method": "POST", "url": "http://news-collector:8787/collect/market", "options": {"timeout": 120000}}}, {"id": "a14", "name": "💹 매5분 주가수집", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.1, "position": [100, 1200], "parameters": {"rule": {"interval": [{"field": "cronExpression", "expression": "*/5 9-15 * * 1-5"}]}}}, {"id": "a15", "name": "주가 수집", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [400, 1200], "parameters": {"method": "POST", "url": "http://kis-api:8585/collect/price", "options": {"timeout": 120000}}}, {"id": "a16", "name": "📊 매30분 기술적분석", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.1, "position": [100, 1420], "parameters": {"rule": {"interval": [{"field": "cronExpression", "expression": "*/30 9-14 * * 1-5"}, {"field": "cronExpression", "expression": "30 15 * * 1-5"}]}}}, {"id": "a17", "name": "TA 전체 분석", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [400, 1420], "parameters": {"method": "POST", "url": "http://ta-engine:8484/analyze/all", "options": {"timeout": 180000}}}, {"id": "a18", "name": "🏆 매1시간 스코어계산", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.1, "position": [100, 1640], "parameters": {"rule": {"interval": [{"field": "cronExpression", "expression": "0 9-16 * * 1-5"}]}}}, {"id": "a19", "name": "스코어 계산", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [400, 1640], "parameters": {"method": "POST", "url": "http://score-engine:8686/score/calculate", "options": {"timeout": 600000}}}, {"id": "a20", "name": "🔍 매5분 헬스체크", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.1, "position": [100, 1860], "parameters": {"rule": {"interval": [{"field": "cronExLine truncated
@@ -0,0 +1 @@
{"id":"669c2fcf-b774-40a1-b874-21bbb5027474","name":"📈 AI 예측 성과 추적 (매일 16:10)","nodes":[{"id":"n1","name":"매일 16:10","type":"n8n-nodes-base.scheduleTrigger","typeVersion":1.1,"position":[100,300],"parameters":{"rule":{"interval":[{"field":"cronExpression","expression":"10 16 * * 1-5"}]}}},{"id":"n2","name":"추천종목 랭킹조회","type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"position":[350,300],"parameters":{"method":"GET","url":"http://score-engine:8686/recommendations","options":{"timeout":30000}}},{"id":"n3","name":"오늘 성과 브리핑","type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"position":[600,300],"parameters":{"method":"POST","url":"http://score-engine:8686/briefing/send","options":{"timeout":30000}}}],"connections":{"매일 16:10":{"main":[[{"node":"추천종목 랭킹조회","type":"main","index":0}]]},"추천종목 랭킹조회":{"main":[[{"node":"오늘 성과 브리핑","type":"main","index":0}]]}},"active":true}