6d3b0bacc0
- 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>
2 lines
13 KiB
JSON
2 lines
13 KiB
JSON
{"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": "cronExpression", "expression": "*/5 * * * *"}]}}}, {"id": "a21", "name": "뉴스수집 체크", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [400, 1860], "parameters": {"method": "GET", "url": "http://news-collector:8787/health", "options": {"timeout": 30000}}}, {"id": "a22", "name": "스코어엔진 체크", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [700, 1860], "parameters": {"method": "GET", "url": "http://score-engine:8686/health", "options": {"timeout": 30000}}}, {"id": "a23", "name": "TA엔진 체크", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [1000, 1860], "parameters": {"method": "GET", "url": "http://ta-engine:8484/health", "options": {"timeout": 30000}}}, {"id": "a24", "name": "KIS-API 체크", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [1300, 1860], "parameters": {"method": "GET", "url": "http://kis-api:8585/health", "options": {"timeout": 30000}}}, {"id": "a25", "name": "DART 체크", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [1600, 1860], "parameters": {"method": "GET", "url": "http://dart-collector:8888/health", "options": {"timeout": 30000}}}, {"id": "a26", "name": "바른API 체크", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [1900, 1860], "parameters": {"method": "GET", "url": "http://bareunaapi:5757/health", "options": {"timeout": 30000}}}, {"id": "a27", "name": "📈 16:10 성과추적", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.1, "position": [100, 2080], "parameters": {"rule": {"interval": [{"field": "cronExpression", "expression": "10 16 * * 1-5"}]}}}, {"id": "a28", "name": "추천종목 조회", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [400, 2080], "parameters": {"method": "GET", "url": "http://score-engine:8686/recommendations", "options": {"timeout": 30000}}}, {"id": "a29", "name": "성과 브리핑", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [700, 2080], "parameters": {"method": "POST", "url": "http://score-engine:8686/briefing/send", "options": {"timeout": 30000}}}, {"id": "a30", "name": "📊 17:00 수급수집", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.1, "position": [100, 2300], "parameters": {"rule": {"interval": [{"field": "cronExpression", "expression": "0 17 * * 1-5"}]}}}, {"id": "a31", "name": "수급 전체 수집", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [400, 2300], "parameters": {"method": "POST", "url": "http://kis-api:8585/collect/full", "options": {"timeout": 600000}}}, {"id": "a32", "name": "🌆 17:30 장마감분석", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.1, "position": [100, 2520], "parameters": {"rule": {"interval": [{"field": "cronExpression", "expression": "30 17 * * 1-5"}]}}}, {"id": "a33", "name": "TA 전체 분석", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [400, 2520], "parameters": {"method": "POST", "url": "http://ta-engine:8484/analyze/all", "options": {"timeout": 180000}}}, {"id": "a34", "name": "스코어 계산", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [700, 2520], "parameters": {"method": "POST", "url": "http://score-engine:8686/score/calculate", "options": {"timeout": 180000}}}, {"id": "a35", "name": "장마감 브리핑", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [1000, 2520], "parameters": {"method": "POST", "url": "http://score-engine:8686/briefing/send", "options": {"timeout": 30000}}}, {"id": "a36", "name": "📋 18:00 DART수집", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.1, "position": [100, 2740], "parameters": {"rule": {"interval": [{"field": "cronExpression", "expression": "0 18 * * 1-5"}]}}}, {"id": "a37", "name": "재무제표 수집", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [400, 2680], "parameters": {"method": "POST", "url": "http://dart-collector:8888/collect/financials", "options": {"timeout": 1800000}}}, {"id": "a38", "name": "공시 수집", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [400, 2800], "parameters": {"method": "POST", "url": "http://dart-collector:8888/collect/disclosures", "options": {"timeout": 300000}}}, {"id": "a39", "name": "🔄 18:30 DART스코어재계산", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.1, "position": [100, 2960], "parameters": {"rule": {"interval": [{"field": "cronExpression", "expression": "30 18 * * 1-5"}]}}}, {"id": "a40", "name": "스코어 재계산", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [400, 2960], "parameters": {"method": "POST", "url": "http://score-engine:8686/score/calculate", "options": {"timeout": 180000}}}, {"id": "a41", "name": "📊 월09:00 주간리포트", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.1, "position": [100, 3180], "parameters": {"rule": {"interval": [{"field": "cronExpression", "expression": "0 9 * * 1"}]}}}, {"id": "a42", "name": "추천 랭킹 조회", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [400, 3180], "parameters": {"method": "GET", "url": "http://score-engine:8686/ranking", "options": {"timeout": 30000}}}, {"id": "a43", "name": "주간 브리핑", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [700, 3180], "parameters": {"method": "POST", "url": "http://score-engine:8686/briefing/send", "options": {"timeout": 30000}}}],"connections":{"🧠 01:00 종목사전학습": {"main": [[{"node": "종목사전 새로고침", "type": "main", "index": 0}]]}, "종목사전 새로고침": {"main": [[{"node": "중복캐시 초기화", "type": "main", "index": 0}]]}, "중복캐시 초기화": {"main": [[{"node": "형태소재분석", "type": "main", "index": 0}]]}, "💾 02:00 워크플로우백업": {"main": [[{"node": "백업 (호스트 cron으로 대체)", "type": "main", "index": 0}]]}, "🔔 06:00 신규상장모니터링": {"main": [[{"node": "기업목록 갱신", "type": "main", "index": 0}]]}, "🌅 08:50 장시작브리핑": {"main": [[{"node": "장시작 브리핑 전송", "type": "main", "index": 0}]]}, "📰 매5분 뉴스수집": {"main": [[{"node": "RSS 수집", "type": "main", "index": 0}, {"node": "시장뉴스 수집", "type": "main", "index": 0}]]}, "💹 매5분 주가수집": {"main": [[{"node": "주가 수집", "type": "main", "index": 0}]]}, "📊 매30분 기술적분석": {"main": [[{"node": "TA 전체 분석", "type": "main", "index": 0}]]}, "🏆 매1시간 스코어계산": {"main": [[{"node": "스코어 계산", "type": "main", "index": 0}]]}, "🔍 매5분 헬스체크": {"main": [[{"node": "뉴스수집 체크", "type": "main", "index": 0}]]}, "뉴스수집 체크": {"main": [[{"node": "스코어엔진 체크", "type": "main", "index": 0}]]}, "스코어엔진 체크": {"main": [[{"node": "TA엔진 체크", "type": "main", "index": 0}]]}, "TA엔진 체크": {"main": [[{"node": "KIS-API 체크", "type": "main", "index": 0}]]}, "KIS-API 체크": {"main": [[{"node": "DART 체크", "type": "main", "index": 0}]]}, "DART 체크": {"main": [[{"node": "바른API 체크", "type": "main", "index": 0}]]}, "📈 16:10 성과추적": {"main": [[{"node": "추천종목 조회", "type": "main", "index": 0}]]}, "추천종목 조회": {"main": [[{"node": "성과 브리핑", "type": "main", "index": 0}]]}, "📊 17:00 수급수집": {"main": [[{"node": "수급 전체 수집", "type": "main", "index": 0}]]}, "🌆 17:30 장마감분석": {"main": [[{"node": "TA 전체 분석", "type": "main", "index": 0}]]}, "TA 전체 분석": {"main": [[{"node": "스코어 계산", "type": "main", "index": 0}]]}, "스코어 계산": {"main": [[{"node": "장마감 브리핑", "type": "main", "index": 0}]]}, "📋 18:00 DART수집": {"main": [[{"node": "재무제표 수집", "type": "main", "index": 0}, {"node": "공시 수집", "type": "main", "index": 0}]]}, "🔄 18:30 DART스코어재계산": {"main": [[{"node": "스코어 재계산", "type": "main", "index": 0}]]}, "📊 월09:00 주간리포트": {"main": [[{"node": "추천 랭킹 조회", "type": "main", "index": 0}]]}, "추천 랭킹 조회": {"main": [[{"node": "주간 브리핑", "type": "main", "index": 0}]]}},"active":true}
|