sharebook-kr/pykrx

파생상품 전종목시세 코드 수정 필요할 것 같습니다

Closed this issue · 1 comments

옵션:

  1. Payload의 bld가 기존 dbms/MDC/STAT/standard/MDCSTAT12501 에서 dbms/MDC/STAT/standard/MDCSTAT12502로 변경
  2. Payload에서 rghtTpCd: T로 주게 되면 (Call,Put 둘 다 호출) http request가 안됩니다. 심지어 웹사이트도 안돼서 rghtTpCd:C, rghtTpCd:P 두개로 나누어서 받아야합니다.

개별주식선물/옵션:

  1. 마찬가지로 전체로 받아오게 되면 https request에서 문제가 발생해 개별주식 Underlying별로 각각 호출해야합니다.

개별주식목록은 다음으로 불러 올 수 있습니다.

class 개별주식목록(Get):
    def read(self, **params):
        resp = super().read(**params)
        return resp.json()

    @property
    def url(self):
        return "http://data.krx.co.kr/comm/bldAttendant/getJsonData.cmd"

    def fetch_futures(self, trdDd: str) -> DataFrame:
        res = self.read(
            trdDd=trdDd,
            prodId="KRDRVFUEQU",
            ulyId="KRDRVOPEQU",
            trdDdBox1=trdDd,
            trdDdBox2=trdDd,
            mktTpCd="T",
            rghtTpCd="T",
            share="1",
            money="1",
            csvslx_isNo=False,
            bld="/dbms/comm/component/drv_clss11"
        )["output"]
        output = {}
        for d in res:
            output[d["value"]] = d["name"]
        del output['KRDRVFUEQU']
        return output

    def fetch_options(self, trdDd: str) -> DataFrame:
        res = self.read(
            trdDd=trdDd,
            prodId="KRDRVOPEQU",
            ulyId="KRDRVFUEQU",
            trdDdBox1=trdDd,
            trdDdBox2=trdDd,
            mktTpCd="T",
            rghtTpCd="T",
            share="1",
            money="1",
            csvslx_isNo=False,
            bld="/dbms/comm/component/drv_clss11"
        )["output"]
        output = {}
        for d in res:
            output[d["value"]] = d["name"]
        del output['KRDRVOPEQU']
        return output

KRDRVFUEQU : 개별주식선물전체
KRDRVOPEQU: 개별주식옵션전체

이기 때문에 위 두가지 제외하고 http request하면 문제는 없는 것 같습니다.

따로 개인적인 용도로 수정한 것들 때문에 현재 마스터브랜치와 차이가 있어서 필요한것들만 추려서 올립니다.

오늘부터 전체 조회하는데 문제 없어서 close하겠습니다