본문 바로가기
And - 실시간 조건 감지·자동매매 시스템

[신투 프디아] 파이널 프로젝트 - 금융 데이터 가져오기!

by SoU330 2025. 10. 2.

 

 

 

 

이 글은 알파코에서 진행되는 [신한투자증권] 프로디지털아카데미 과정 중, 김송아 강사님과 함께하는 '파이널 프로젝트'를 기반으로 작성되었습니다

 

 

 

 

 

 

본격적인 백엔드 개발에 들어갔다!

 

필요한 지표값 정리

우리 프로젝트에서 다루게 될 주요 지표값들을 정리했다.

데이터는 한국투자증권 API를 활용하여 app key, app secret, token을 통해 가져왔다.

 

 

1분마다 필요한 데이터

  • 현재가
  • 누적 거래량
  • 전날 종가 거래량 대비 백분율(%)
  • 시가 대비 변동액(원)
  • 시가 대비 변동액(%)
  • 52주 최고가 대비 변동액(%)
  • 52주 최저가 대비 변동액(%)

이 중에서 직접 계산이 필요한 항목(밑줄)을 제외하면, 현재가와 누적 거래량만 API로 주기적으로 가져오면 된다.

 

 

👉 사용 API:

/uapi/domestic-stock/v1/quotations/inquire-time-itemchartprice

 

https://apiportal.koreainvestment.com/apiservice-apiservice?/uapi/domestic-stock/v1/quotations/inquire-time-itemchartprice

 

KIS Developers

한국투자증권 Open API 포탈

apiportal.koreainvestment.com

 

 

 

응답 예시

{
    "output1": {
        "prdy_vrss": "0",
        "prdy_vrss_sign": "3",
        "prdy_ctrt": "0.00",
        "stck_prdy_clpr": "83300",
        "acml_vol": "0",
        "acml_tr_pbmn": "0",
        "hts_kor_isnm": "삼성전자",
        "stck_prpr": "83300"
    },
    "output2": [
        {
            "stck_bsop_date": "20250926",
            "stck_cntg_hour": "153000",
            "stck_prpr": "83300",
            "stck_oprc": "83300",
            "stck_hgpr": "83300",
            "stck_lwpr": "83300",
            "cntg_vol": "1759055",
            "acml_tr_pbmn": "1923337972550"
        },
       ...
    ],
    "rt_cd": "0",
    "msg_cd": "MCA00000",
    "msg1": "정상처리 되었습니다."
}
  • output1.acml_vol  누적 거래량
  • output1.stck_prpr  현재가

 

 

 

 

1일마다 가져올 데이터 (아침에 한 번 update)

  • 전날 종가
  • 전날 종가 거래량
  • 오늘 시가
  • 52주 최저가
  • 52주 최고가
  • 평균 거래량(20일)
  • SMA(5일, 10일, 20일, 30일, 50일, 100일, 200일)
  • RSI (14일 기준)
  • 볼린저밴드(SMA20 기준, 표준편차 2기준)

이 중 직접 계산이 필요한 SMA, RSI, 볼린저밴드를 제외한 값들은 API로 바로 가져왔다.

 

 

 

👉 사용 API

/uapi/domestic-stock/v1/quotations/inquire-daily-itemchartprice

 

https://apiportal.koreainvestment.com/apiservice-apiservice?/uapi/domestic-stock/v1/quotations/inquire-daily-itemchartprice

 

KIS Developers

한국투자증권 Open API 포탈

apiportal.koreainvestment.com

 

 

 

응답 예시

{
    "output1": {
        "prdy_vrss": "1600",
        "prdy_vrss_sign": "2",
        "prdy_ctrt": "1.92",
        "stck_prdy_clpr": "83300",
        "acml_vol": "3630883",
        "acml_tr_pbmn": "305710569450",
        "hts_kor_isnm": "삼성전자",
        "stck_prpr": "84900",
        "stck_shrn_iscd": "005930",
        "prdy_vol": "24071192",
        "stck_mxpr": "108200",
        "stck_llam": "58400",
        "stck_oprc": "83300",
        "stck_hgpr": "85000",
        "stck_lwpr": "83200",
        "stck_prdy_oprc": "85000",
        "stck_prdy_hgpr": "85300",
        "stck_prdy_lwpr": "82400",
        "askp": "84900",
        "bidp": "84800",
        "prdy_vrss_vol": "-20440309",
        "vol_tnrt": "0.06",
        "stck_fcam": "100",
        "lstn_stcn": "5919637922",
        "cpfn": "7780",
        "hts_avls": "5025773",
        "per": "17.15",
        "eps": "4950.00",
        "pbr": "1.47",
        "itewhol_loan_rmnd_ratem name": "0.19"
    },
    "output2": [
    ],
    "rt_cd": "0",
    "msg_cd": "MCA00000",
    "msg1": "정상처리 되었습니다."
}

 

  • 전날 종가 → output1.stck_prdy_clpr
  • 전날 종가 거래량 → output1.prdy_vol
  • 오늘 시가 → output1.stck_oprc
  • 52주 최저가 → output1.stck_llam
  • 52주 최고가 → output1.stck_mxpr

 

 

 

 

적용

 

필요한 값들을 20개 종목에 대해 콘솔창으로 찍어보았다.

이제 이걸 게이트웨이를 통해서 Spring 서버 쪽으로 보내면 된다.

 

보안상 키 값과 토큰값은 .env 파일로 해서 Git에 올라가지 않도록 분리했다!

 

 

 

💭회고

한국투자증권API를 사용하다보니 1초에 10번 이상으로 요청을 보내게 되면 호출 제한 걸려서 막혔다.

비동기 처리로 빠르게 가져오려고 FastAPI를 쓴건데 많이 요청을 못받아서 아쉽다ㅠㅠ