키움증권 API로 주가 데이터를 가져와서 삼성전자(005930)의 간단한 백테스팅을 돌려보는 프로젝트입니다. 가격 기반이랑 RSI 기반으로 매매 전략을 테스트해볼 수 있고, 결과를 비교할 수 있게 만들었습니다.
database/
├── back/
│ ├── app.js # Node.js HTTP 서버
│ ├── db/ # MySQL 연결 설정
│ └── package.json
│
├── front/
│ ├── index.html # 메인 페이지
│ ├── script.js # 백테스팅 로직
│ └── style.css
│
└── API_pull/
└── fetch_rsi.py # 키움 API로 데이터 수집
- 키움증권 모의투자 API 사용
- 일봉 데이터랑 RSI 같이 계산해서 MySQL에 저장
- 날짜 범위 지정해서 원하는 기간만 가져올 수 있음
두 가지 방식으로 테스트 가능:
- 가격 기반: 특정 가격에서 사고팔기 (예: 50000원 매수, 55000원 매도)
- RSI 기반: RSI 값으로 매매 타이밍 잡기 (예: RSI 40 이하 매수, 70 이상 매도)
- 최근 백테스팅 결과 10개 저장됨
- 가격 vs RSI 전략 성과를 차트로 비교
- 거래 내역 CSV 다운로드
- 실제 주가 위에 매수/매도 지점 표시
- 마우스 올리면 날짜랑 가격 나옴
- 평균 RSI 표시
프론트엔드
- JavaScript
- Chart.js
데이터베이스
- MySQL
웹에서 "데이터 수집 시작" 버튼 누르면 됨
- 시작일/종료일 입력 (예: 2024-01-01, 2024-05-31)
- Python으로 키움 API 호출해서 CSV 생성
- Node.js가 CSV 읽어서 DB에 저장
- 로그에 보이는 yoon 과 changhyeok는 윤창혁의 id 입니다. (노트북과 컴퓨터를 병행해서 작업하다 보니 이름이 부득이하게 두개로 표시되어 있었습니다.) 또한 github-action같은 경우 깃허브에서 이슈를 만들면 자동적으로 다음 브랜치를 파도록 깃허브 action을 세팅해 놓아서 입니다.
- 2025-10-23 | 기본 백엔드 구성
- 2025-11-08 | 삼성전자.csv 받기 기능 구현
- 2025-11-12 | feat/1: 삼성전자 주가 그래프 시각화
- 2025-11-13 | feat/3: 키움API 실행 로직 수정
- 2025-11-13 | feat/5: 프로젝트 구조 정리 (package 파일 삭제 및 README 업데이트)
- 2025-11-14 | feat/8: GitHub 이슈 템플릿 및 자동 브랜치 생성 워크플로우 구현
- 2025-11-15 | feat/9: GitHub Actions 워크플로우 수정
- 2025-11-15 | feat/17: ka10001 주식현재가 API 연동
- 2025-11-16 | feat/18: ka10081 일봉 차트 기능 추가 및 Flask 제거
- 2025-11-16 | 차트 및 문서 수정, 720일 일봉 차트 UI 개선
- 2025-11-16 | 전체적 파일구조 정리
- 2025-11-17 | 이슈 템플릿 브랜치 네이밍 규칙 변경 (BUG->FIX, FEATURE->FEAT)
- 2025-11-17 | feat/21: 토큰 캐싱, 오류 수정, 차트 반응형 개선
- 2025-11-19 | feat/22: KRX Pulse 대시보드 UI 개선 및 실시간 데이터 업데이트 기능
- 2025-11-27 | KRX 대시보드 수정 및 한국어 텍스트 적용
- 2025-11-29 | 대시보드 레이아웃 조정
- 2025-12-01 | 데이터베이스 연결
- 2025-12-02 | RSI 데이터 수집 및 CSV 내보내기 기능 추가
- 2025-12-02 | CSV파일 출력부에 '시가' 데이터 추가
- 2025-12-03 | feat/28: CSV와 DB 연동
- 2025-12-04 | feat/26: 백테스팅 거래 내역 저장 기능
- 2025-12-04 | UI로 db에 데이터 불러오기
- 2025-12-04 | feat/30: 삼성전자 주가 데이터 시각화 기능 추가 (Chart.js)
- 2025-12-04 | feat/31: 날짜 범위 기반 데이터 수집 및 유연한 입력 지원
- 2025-12-04 | feat/32: 간단한 MVP 백테스팅 구현 완료
- 2025-12-05 | feat/33: 백테스팅 차트 개선
- 2025-12-05 | feat/34: 백테스팅 결과 비교 기능
- 2025-12-05 | 대시보드 제목 및 텍스트 수정, RSI 데이터 로드 기능 추가
- 2025-12-06 | 백테스팅 결과 비교 기능 병합
- 2025-12-07 | 백엔드 변경사항 및 프론트 수정
- 2025-12-07 | 유저 프로세스 개선
- 2025-12-09 | 전체 레이아웃 변경 및 리뉴얼 작업
- 2025-12-10 | 데이터 저장 및 반영 오류 해결
- 2025-12-10 | 전략 설정 및 프론트 디자인 수정
- 2025-12-10 | 승률 계산 로직 수정
- 2025-12-10 | 프론트엔드 결과 보기 부분 완료
- 2025-12-10 | 차트 인터렉티브 전환 완료 및 거래내역 표시 완료
- 2025-12-10 | 매매 내역 차트 추가 및 매수 매도 내역 마크 추가
- 2025-12-10 | 차트 스파이크 현상 해결
- 2025-12-10 | 프론트엔드 완료
키움증권 모의투자: https://mockapi.kiwoom.com


