Chart-IMG๋ก ์ฐจํธ ์บก์ฒ โ Claude Vision ํจํด ๋ถ์ โ 3D ํตํฉ ํ๋จ
์ง๊ธ๊น์ง ๋ง๋ 3๊ฐ ์ ํธ๋ฅผ ํ๋์ ์๊ฒฌ์ผ๋ก ํฉ์นฉ๋๋ค.
verdict ์ํธ + Slack ์๋ฆผ (๊ฐํ ์ ํธ๋ง)GET https://api.chart-img.com/v2/tradingview/advanced-chart
?symbol=KRX:005930
&interval=1D
&theme=dark
&width=1200&height=700
&studies=RSI,MACD,BB
&api_key={key}
์๋ต: image/png ๋ฐ์ด๋๋ฆฌ โ n8n binary๋ก ๋ฐ์ Claude attachment๋ก ์ ๋ฌ
(์ฒจ๋ถ๋ ์ฐจํธ ์ด๋ฏธ์ง 1์ฅ + ํ ์คํธ) ๋๋ ์ฐจํธ ๋ถ์๊ฐ๋ค. ์ฒจ๋ถ๋ ์ผ๋ด ์ฐจํธ(RSIยทMACDยท๋ณผ๋ฆฐ์ ํฌํจ)๋ฅผ ๋ณด๊ณ ๋ถ์ํ๋ผ. ํ์ ํ ํญ๋ชฉ: 1. ์ถ์ธ: uptrend / downtrend / sideways 2. ํจํด: head_shoulders / double_top / double_bottom / breakout / consolidation / none 3. ์ง์ง์ ยท์ ํญ์ ๊ฐ๊ฒฉ๋ 4. RSI/MACD๊ฐ ๋ณด๋ด๋ ์ ํธ 5. ์ฐจํธ ๊ด์ ์ข ํฉ ์๊ฒฌ: bullish / neutral / bearish (-1 ~ +1) JSON์ผ๋ก๋ง ์๋ต.
// ์
๋ ฅ: priceScore, newsScore, chartScore (๊ฐ -1 ~ +1)
// ์ถ๋ ฅ: verdict, confidence
const scores = [priceScore, newsScore, chartScore];
const sum = scores.reduce((a,b)=>a+b, 0);
const avg = sum / 3;
let verdict, confidence;
if (Math.abs(avg) < 0.2) {
verdict = "HOLD";
confidence = "low";
} else if (scores.every(s => s > 0.3)) {
verdict = "BUY_STRONG";
confidence = "high";
} else if (scores.every(s => s < -0.3)) {
verdict = "SELL_STRONG";
confidence = "high";
} else if (avg > 0) {
verdict = "BUY_WEAK";
confidence = "medium";
} else {
verdict = "SELL_WEAK";
confidence = "medium";
}
return { verdict, confidence, avg, scores };