- 전략 DSL 시간봉(5m)과 실행 시간봉(3m) 불일치 시 자동 동기화
- 업비트 캔들 200봉 제한 → 페이지네이션으로 800봉까지 조회
- 백테스트 차트는 실행 타임프레임 기준으로 표시 (시그널·지표 정렬)
Co-authored-by: Cursor <cursoragent@cursor.com>
BacktestingService에 IndicatorSettingsService를 주입하여 백테스팅
실행 시 deviceId 기반으로 DB 저장 인디케이터 설정을 자동으로 로드한다.
- 프론트엔드가 indicatorParams를 전달하지 않아도 DB 저장값 사용 보장
- 요청에 포함된 indicatorParams는 DB값 위에 override로 적용(우선순위 높음)
- 어떠한 경우에도 백엔드 하드코딩 기본값만으로 테스트되는 상황 방지
- mergeIndicatorParams() 헬퍼로 DB+요청 파라미터 내부 필드 단위 병합
Co-authored-by: Cursor <cursoragent@cursor.com>
BacktestHistoryPage와 StrategyEditorPage의 handleQuickRun에서
runBacktest 호출 시 loadIndicatorSettings()로 사용자 저장 파라미터를
불러와 indicatorParams로 함께 전송한다.
이를 통해 백엔드가 기본값(kLength=14, smooth=3) 대신 사용자 설정값
(kLength=12, smooth=5 등)으로 지표를 계산하여 차트와 동일한
스토캐스틱 교차 지점에서 정확히 시그널을 생성한다.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Backend: PipelineMonitorService에 system 항목 추가 (OS 메모리, 디스크 사용률)
- Frontend: SystemMonitorDto에 system 필드 추가
- DashboardPage: 시스템/메모리/디스크 3열 신호등 레이아웃 적용
- dashboardCommand.css: gc-dash-sys-status, gc-sys-tl-item 스타일 추가
Co-authored-by: Cursor <cursoragent@cursor.com>
- StrategyEditorPage: 종목 검색(MarketSearchPanel), 타임프레임 select, 실행 버튼 UI 추가
- 백테스팅 완료 후 백테스팅 화면으로 자동 이동 (onNavigateToBacktest)
- BacktestHistoryPage: sessionStorage backtest_focus_id로 신규 결과 자동 선택
- App.tsx: StrategyEditorPage에 onNavigateToBacktest prop 전달
- strategyEditor.css: se-quick-run 툴바 스타일 추가
Co-authored-by: Cursor <cursoragent@cursor.com>
- 헤더 중앙에 종목·타임프레임·전략 드롭다운 + 실행 버튼 추가
- 실행 클릭 시 /api/candles/history에서 캔들 로드 → runBacktest 호출
- 완료 후 결과 목록 자동 갱신 및 백테스팅 탭 활성화
- 실행 중 스피너 표시, 오류 시 인라인 에러 메시지 표시
- btd-header-run·btd-run-select·btd-run-btn·btd-run-spinner CSS 추가
Co-authored-by: Cursor <cursoragent@cursor.com>
HistoricalDataService.getHistory: 인메모리 봉이 20개 미만이면
Upbit REST 폴백을 실행하도록 변경.
이전 동작: rawBars.isEmpty() 일 때만 Upbit 폴백
→ 재시작 직후 warm-up 미완료 상태에서 2~3개 봉이 메모리에 있으면
inMemory=true로 판정 후 Upbit 폴백 없이 2~3개 봉만 반환됨
수정 동작: rawBars.size() < 20 이면 Upbit REST 재조회
→ warm-up 완료 전에도 최소 200개 봉을 반환 보장
→ 차트 2개 캔들 표시 및 OBV plot1 누락 경고 해소
Co-authored-by: Cursor <cursoragent@cursor.com>
- TradeTabOrderPanel(탭 방식) → TradeSplitOrderPanel(카드 분리 방식)으로 전환
- VirtualTradingPage·PaperTradingPage에 '거래' 외부 탭 복원
- 거래 내역(미체결/체결/원장)을 '거래' 탭 하위로 원복
Co-authored-by: Cursor <cursoragent@cursor.com>
paperDashboard.css가 PaperTradingPage에만 임포트되어 있어
VirtualTradingPage·알림목록·실시간 차트·백테스팅 등에서
ptd-split-card-body의 flex:1 레이아웃이 없어 콘텐츠 높이가 0이 됨.
BuilderPageShell·ChartWorkspaceView·TradeNotificationListPage에
paperDashboard.css 임포트 추가로 전 페이지에서 정상 표시되도록 수정.
Co-authored-by: Cursor <cursoragent@cursor.com>