AUTO TRADE/[키움증권] Kiwoom Open API

opt10001 : 주식기본정보요청

opt10001 함수 요약

  • 발생 이벤트 : OnReceiveTrData
  • 입력값 : 종목코드
  • 반환값 : 종목코드, 종목명, 결산월, 액면가, 자본금, 상장주식, 신용비율, 연중최고, 연중최저, 시가총액, 시가총액비중, 외인소진율, 대용가, PER, EPS, ROE, PBR, EV, BPS, 매출액, 영업이익, 당기순이익, 250최고, 250최저, 시가, 고가, 저가, 상한가, 하한가, 기준가, 예상체결가, 예상체결수량, 250최고가일, 250최고가대비율, 250최저가일, 250최저가대비율, 현재가, 대비기호, 전일대비, 등락율, 거래량, 거래대비, 액면가단위, 유통주식, 유통비율

 


1) 데이터 요청을 위한 rq_opt10001 함수 제작

## 기본 형태
def rq_opt10001(self)
	self._setinputvalue("종목코드", '005930')                  ## 입력값 입력
	self._commrqdata("rq_opt10001", "opt10001", 0, "0101")    ## opt10001을 trcode로 전달
    
## 종목 코드를 전달해서 사용하고 싶다면
def rq_opt10001(self, code):
	self._setinputvalue("종목코드", code)
	self._commrqdata("rq_opt10001", "opt10001", 0, "0101")

※ 주의 : _commrqdata()의 맨 첫 인자로 전달되는 "rq_opt10001"은 굳이 똑같이 작성할 필요가 없습니다. 왜냐하면 아래의 OnReceiveTrData 함수 내에서 rqname == ""를 통해 식별하기 위한 임의의 코드이므로 아무렇게나 설정해도 됩니다. 다만 다르게 설정하셨다면, 아래의 def OnReceiveTrData, if rqname == "" 부분도 동일하게 변경해주셔야 됩니다.

 

2) OnReceiveTrData 내에서 trcode를 매개로 처리

## OnReceiveTrData 이벤트 발생 시 실행되는 함수
## self.kiwoom.OnReceiveTrData.connect(self.OnReceiveTrData)
def OnReceiveTrData(self, scrno, rqname, trcode, recordname, prenext):

	if rqname == "rq_opt10001":
		self._opt10001(trcode, recordname)

 

3) 데이터 수신을 위한 _opt10001 함수 제작

## 뒤의 "item_name"에는 앞서 정리한 반환값을 입력 ex) "종목코드"
## 앞의 item_name에는 반환값에 알맞은 변수이름 입력 ex) item_code

def _opt10001(self, trcode, recordname):
	item_name = self._getcommdata(trcode, recordname, 0, "item_name")
	
	## 예시
	volume = self._getcommdata(trcdoe, recordname, 0, "거래량") 
	vix = self._getcommdata(trcode, recordname, 0, "등락율")

 

 


728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.