feat: AI 투자 분석에 목표가·손절가 표시
CLAUDE.md §5.2 기준으로 계산해 매수 추천 금액 아래에 함께 표시. · 손절 = ATR(2.5×)과 -7% 중 타이트한 쪽(가격 높은 쪽), 적응형 모드면 그 값 사용 · 목표 = 진입가 + 2R (R = 진입가 − 손절가) — +2R 50% 분할 매도 지점 ATR 은 stock_analysis.atr_14 우선, 없으면 DB 일봉으로 계산(KIS API 미사용). 테스트 4건 추가. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -169,6 +169,28 @@ export const AiAnalysisPanel = React.memo(({ aiAnalysisData }: AiAnalysisPanelPr
|
||||
{aiAnalysisData.data.suggested_quantity > 0 && aiAnalysisData.data.sizing_note && (
|
||||
<div className="text-[9px] text-[#3a5570] mt-0.5">{aiAnalysisData.data.sizing_note}</div>
|
||||
)}
|
||||
|
||||
{/* 목표가 · 손절가 (CLAUDE.md §5.2: 손절은 ATR/퍼센트 중 타이트한 쪽, 목표는 +2R) */}
|
||||
{aiAnalysisData.data.target_price > 0 && (
|
||||
<div className="flex items-baseline gap-3 mt-1">
|
||||
<span className="text-[9px] uppercase tracking-wider text-[#4a6580]">목표</span>
|
||||
<span className="text-[11px] font-mono text-[#ef4444]">
|
||||
{Number(aiAnalysisData.data.target_price).toLocaleString('ko-KR')}원
|
||||
<span className="text-[9px] ml-1">(+{aiAnalysisData.data.target_pct}%)</span>
|
||||
</span>
|
||||
<span className="text-[9px] uppercase tracking-wider text-[#4a6580]">손절</span>
|
||||
<span className="text-[11px] font-mono text-[#3b82f6]">
|
||||
{Number(aiAnalysisData.data.stop_loss_price).toLocaleString('ko-KR')}원
|
||||
<span className="text-[9px] ml-1">({aiAnalysisData.data.stop_loss_pct}%)</span>
|
||||
</span>
|
||||
<span className="ml-auto text-[9px] font-mono text-[#4a6580]">
|
||||
R:R 1:{aiAnalysisData.data.risk_reward}
|
||||
</span>
|
||||
</div>
|
||||
)}
|
||||
{aiAnalysisData.data.target_note && (
|
||||
<div className="text-[9px] text-[#3a5570] mt-0.5">{aiAnalysisData.data.target_note}</div>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user