feat: AI 투자 분석에 매수 추천 금액 표시
BUY 신호일 때 실제 자동매매와 동일한 기준으로 매수 금액·수량을 계산해 패널 상단에 표시. · 종목당 상한 = 총자산 × MAX_POSITION_SIZE(적응형 모드면 그 값) · 신뢰도 보정 = 예산 × (confidence/0.7), 0.5~1.2배 · 현금 여력(최소 현금보유 제외)·스윙 합산 상한(SWING_MAX_CAPITAL_RATIO) 잔여로 클램프 BUY 가 아니거나 예산이 1주 미만이면 금액 대신 사유를 표시. 테스트 6건. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -143,6 +143,35 @@ export const AiAnalysisPanel = React.memo(({ aiAnalysisData }: AiAnalysisPanelPr
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
{/* 매수 추천 금액 — 실제 자동매매 사이징과 동일 기준 (총자산×종목당 비중, 신뢰도 반영) */}
|
||||
{aiAnalysisData?.data && (
|
||||
<div className="px-3 py-1.5 border-b border-[#152035] bg-[#0a1120] flex-shrink-0">
|
||||
<div className="flex items-baseline gap-2">
|
||||
<span className="text-[9px] uppercase tracking-wider text-[#4a6580]">매수 추천</span>
|
||||
{aiAnalysisData.data.suggested_quantity > 0 ? (
|
||||
<>
|
||||
<span className="text-[13px] font-mono text-[#22c55e]">
|
||||
{Number(aiAnalysisData.data.suggested_amount).toLocaleString('ko-KR')}원
|
||||
</span>
|
||||
<span className="text-[10px] font-mono text-[#8faabf]">
|
||||
{aiAnalysisData.data.suggested_quantity}주
|
||||
</span>
|
||||
<span className="ml-auto text-[9px] font-mono text-[#4a6580]">
|
||||
총자산 {aiAnalysisData.data.position_ratio}%
|
||||
</span>
|
||||
</>
|
||||
) : (
|
||||
<span className="text-[10px] text-[#4a6580]">
|
||||
{aiAnalysisData.data.sizing_note || '매수 제안 없음'}
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
{aiAnalysisData.data.suggested_quantity > 0 && aiAnalysisData.data.sizing_note && (
|
||||
<div className="text-[9px] text-[#3a5570] mt-0.5">{aiAnalysisData.data.sizing_note}</div>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Content */}
|
||||
<div className="flex-1 overflow-y-auto custom-scrollbar p-3">
|
||||
{aiAnalysisText ? (
|
||||
|
||||
Reference in New Issue
Block a user