실시간 틱, 한 줄로
addData(tick)만 호출하면 같은 분은 갱신하고 새 분은 봉을 추가합니다. setInterval(5)로 1분봉을 5분봉으로 즉시 변환합니다.
Financial Chart SDK · v0.1
coForward Chart2는 실시간 틱 반영부터 15종 드로잉 도구, 18종 기술 지표, 가격 알림까지 갖춘 금융 차트 SDK입니다. 증권·핀테크 서비스에 전문가용 차트를 빠르게 탑재하세요.
SDK를 불러오는 중입니다…
panel.addData(tick) 로 1초마다 틱을 넣고 있습니다.
드로잉·알림·상태 저장까지 데모페이지에서 →
오버레이 8종 · 보조지표 10종
선 · 도형 · 피보나치 · 텍스트
addData(tick) 실시간 반영
추가 설치 없는 번들 구성
이런 서비스를 위해 설계했습니다 증권사핀테크자산운용가상자산 거래소
Platform
렌더링은 시작일 뿐입니다. 실시간 데이터, 알림, 상태 관리와 패널 연동까지 금융 서비스의 실제 요구를 API로 제공합니다.
addData(tick)만 호출하면 같은 분은 갱신하고 새 분은 봉을 추가합니다. setInterval(5)로 1분봉을 5분봉으로 즉시 변환합니다.
수평선·가격 레이블·수평 구간을 기준으로 상향, 하향, 진입, 이탈을 감지합니다.
드로잉, 지표, 스타일을 localStorage에 자동 저장하고 saveState()로 JSON 직렬화해 서버에 보관합니다.
PanelSync로 여러 차트의 십자선과 표시 범위를 하나처럼 연동합니다.
거래 시간만 잇는 Session, 전체 시간의 Calendar 축과 % 기준 정규화 비교를 지원합니다.
SVG 기반 벡터 렌더링으로 선명한 차트를 saveToImage() 한 번에 저장합니다.
사용자 동작을 이벤트로 받아 주문창, 정보 패널, 서버 저장과 연결합니다.
Drawing Tools
도구를 선택하면 차트 위에 실제로 그려지는 모습을 확인할 수 있습니다. 모든 드로잉은 실행 취소·다시 실행과 자동 저장을 지원합니다.
Indicators
메인 차트 오버레이와 하단 보조지표 패널을 조합해 원하는 분석 화면을 구성합니다.
Developers
API 응답의 필드명을 매핑해 데이터를 그대로 전달합니다.
SVG 벡터 기반으로 어떤 해상도에서도 선명합니다.
범례, 가격 정보, 설정 창을 HTML 템플릿으로 교체합니다.
import { coForward_chart } from '/dist/coForward_chart2.min.js';
const panel = new coForward_chart({
displayCnt: 100,
marks: ['candle', 'volume', 'bollinger'],
sma: [
{ period: 20, enabled: true },
{ period: 60, enabled: true },
],
})
.add('myChart')
.setSymbol({ caption: '삼성전자', symbol: '005930', decimal: 0, currency: 'KRW' })
.setData(ohlcvArray)
.addSubPanel({ indicator: 'rsi', period: 14 })
.addSubPanel({ indicator: 'macd' });
panel.loadFromLocal(); // 이전 드로잉·설정 복원panel.setData(oneMinData, 1); // rawInterval = 1분
panel.setInterval(5); // 5분봉으로 전환
ws.onmessage = (e) => {
const tick = JSON.parse(e.data);
panel.addData(tick); // 같은 분은 갱신, 새 분은 추가
};panel.on('priceAlert', (e) => {
const { symbol, price, target, direction } = e.detail;
myNotificationService.push({ symbol, price, direction });
});
panel.on('crosshairMove', (e) => {
infoPanel.update(e.detail.candle);
});
panel.on('rangeChange', () => {
const state = panel.saveState();
api.post('/chart/state', { state });
});const panel = new coForward_chart({
fieldMap: {
date: 'time',
open: 'open_price',
high: 'high_price',
low: 'low_price',
close: 'close_price',
volume: 'trade_vol',
},
}).add('myChart');
panel.setData(rawApiResponse); // 변환 코드 없이 그대로 전달