Skip to content

YUNCHANGHYEOK/database

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

주식 백테스팅 플랫폼

키움증권 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

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors