AUTO TRADE
좌측 카테고리를 눌러서 주제를 선택하시기 바랍니다.
-
거래 내역 조회하기 (1) 게시글 바로가기 이제 지난 게시글에 이어서 요청한 데이터를 받아오는 부분을 구축해보도록 하자. OnReceiveTrData 내에서 함수랑 연결해주기 self._commrqdata("rq_opw00007", "opw00007", 0, '0351') 지난 게시글에서 데이터를 전송하는 commrqdata(rqname, trcode, prenext, scrno) 함수 내에서 rqname 안에 "rq_opw00007"을 입력했었으니, 이제는 OnReceiveTrData 내에서 if rqname == "rq_opw00007"을 통해 특정 함수와 연결해주는 코드를 제작해야 한다. def receive_trdata(self, scrno, rqname, trcode, recordname, pr..
키움증권 Open API - 거래 내역 조회하기 (2)거래 내역 조회하기 (1) 게시글 바로가기 이제 지난 게시글에 이어서 요청한 데이터를 받아오는 부분을 구축해보도록 하자. OnReceiveTrData 내에서 함수랑 연결해주기 self._commrqdata("rq_opw00007", "opw00007", 0, '0351') 지난 게시글에서 데이터를 전송하는 commrqdata(rqname, trcode, prenext, scrno) 함수 내에서 rqname 안에 "rq_opw00007"을 입력했었으니, 이제는 OnReceiveTrData 내에서 if rqname == "rq_opw00007"을 통해 특정 함수와 연결해주는 코드를 제작해야 한다. def receive_trdata(self, scrno, rqname, trcode, recordname, pr..
2022.04.06 -
키움증권 Open API의 경우에는 주문이나 차트 데이터 조회 등과 같은 것들에 대해서는 정말 손쉽게 사용할 수 있도록 친절하게 설명하고 있지만, 문제는 주문 내역을 관리하기 위해 주문일자를 제공한다거나 하는 등의 데이터는 잘 제공하지 않고 있다. ※ 키움증권 Open API 관계자가 이 글을 볼 리는 없지만, 만약 본다면 이 부분은 꼭 추가해주길 바랍니다. 본격적으로 거래 내역을 조회하기 전에 앞서, 일단 여기서 사용하고자 하는 트랜잭션(Transaction, 이하 TR)은 opw00007이다. opw00007을 사용하기 위해서는 계좌와 관련된 데이터를 전달해줘야 하는데, 계좌 데이터는 직접 입력을 해주어도 되고 다른 TR을 이용해서 계좌 데이터를 얻어온 후에, 그 데이터를 그대로 전달해줘도 된다. O..
키움증권 Open API - 거래 내역 조회하기 (1)키움증권 Open API의 경우에는 주문이나 차트 데이터 조회 등과 같은 것들에 대해서는 정말 손쉽게 사용할 수 있도록 친절하게 설명하고 있지만, 문제는 주문 내역을 관리하기 위해 주문일자를 제공한다거나 하는 등의 데이터는 잘 제공하지 않고 있다. ※ 키움증권 Open API 관계자가 이 글을 볼 리는 없지만, 만약 본다면 이 부분은 꼭 추가해주길 바랍니다. 본격적으로 거래 내역을 조회하기 전에 앞서, 일단 여기서 사용하고자 하는 트랜잭션(Transaction, 이하 TR)은 opw00007이다. opw00007을 사용하기 위해서는 계좌와 관련된 데이터를 전달해줘야 하는데, 계좌 데이터는 직접 입력을 해주어도 되고 다른 TR을 이용해서 계좌 데이터를 얻어온 후에, 그 데이터를 그대로 전달해줘도 된다. O..
2022.04.06 -
키움증권 Open API - 관심종목 관리하기 (1) 키움증권 Open API - 관심종목 관리하기 (2) 지난 게시글에서는 기존에 설정한 조건검색식이 찾아낸 종목코드를 얻어오는 방법까지 확인했다. 다만 관심종목에 추가하기 위해서는 해당 종목의 데이터가 필요하기 마련히고 더군다나 해당 종목을 매수할 계획이 있다면 매수를 진행할 가격까지도 사전에 계산해서 관심종목 데이터 안에 입력해주어야 한다. 아직은 이 프로세스가 어렵게 느껴질 수 있겠지만, 엄밀히 따지면 반드시 필요한 절차에 해당하는 부분이므로 이해가 가지 않는다고 하더라도 그냥 그대로 따라하면 큰 어려움 없이 프로그램을 만들 수 있다. 일단 본격적인 내용을 설명하기 전에 앞서, 조건검색식을 통해 종목을 관리할 수 있는 두 가지 방법에 대해 알아보자...
키움증권 Open API - 관심종목 관리하기 (3)키움증권 Open API - 관심종목 관리하기 (1) 키움증권 Open API - 관심종목 관리하기 (2) 지난 게시글에서는 기존에 설정한 조건검색식이 찾아낸 종목코드를 얻어오는 방법까지 확인했다. 다만 관심종목에 추가하기 위해서는 해당 종목의 데이터가 필요하기 마련히고 더군다나 해당 종목을 매수할 계획이 있다면 매수를 진행할 가격까지도 사전에 계산해서 관심종목 데이터 안에 입력해주어야 한다. 아직은 이 프로세스가 어렵게 느껴질 수 있겠지만, 엄밀히 따지면 반드시 필요한 절차에 해당하는 부분이므로 이해가 가지 않는다고 하더라도 그냥 그대로 따라하면 큰 어려움 없이 프로그램을 만들 수 있다. 일단 본격적인 내용을 설명하기 전에 앞서, 조건검색식을 통해 종목을 관리할 수 있는 두 가지 방법에 대해 알아보자...
2022.04.02 -
지난 게시글에서 언급했듯, 이번 글에서는 개별적 문제점들에 대한 해결 방법을 살펴볼 예정이다. 다만 문제점 ①이 아닌 문제점 ②를 먼저 다룰 예정인데, 이렇게 해야 수순이 맞다. 왜냐하면 관심종목이라는 역할을 수행할 수 있는 데이터베이스를 생성하기 위해서는 일단 대입할 종목코드 리스트가 필요한데, 그 종목코드 리스트는 조건검색식[0151]을 통해야 보다 수월하게 데이터를 조회할 수 있기 때문이다. 키움증권 상에서 조건검색식을 만드는 방법에 대해서는 여타 다른 게시글에서 충분히 설명하고 있으니 검색해서 보시길 바란다. 본격적인 설명에 앞서 영웅문 내에서 설정한 조건검색식의 조건을 바탕으로 선정된 종목을 살펴보도록 하겠다. A : [골든 크로스] 10일 이동평균선이 20일 이동평균선을 D : [골든 크로스]..
키움증권 Open API - 관심종목 관리하기 (2)지난 게시글에서 언급했듯, 이번 글에서는 개별적 문제점들에 대한 해결 방법을 살펴볼 예정이다. 다만 문제점 ①이 아닌 문제점 ②를 먼저 다룰 예정인데, 이렇게 해야 수순이 맞다. 왜냐하면 관심종목이라는 역할을 수행할 수 있는 데이터베이스를 생성하기 위해서는 일단 대입할 종목코드 리스트가 필요한데, 그 종목코드 리스트는 조건검색식[0151]을 통해야 보다 수월하게 데이터를 조회할 수 있기 때문이다. 키움증권 상에서 조건검색식을 만드는 방법에 대해서는 여타 다른 게시글에서 충분히 설명하고 있으니 검색해서 보시길 바란다. 본격적인 설명에 앞서 영웅문 내에서 설정한 조건검색식의 조건을 바탕으로 선정된 종목을 살펴보도록 하겠다. A : [골든 크로스] 10일 이동평균선이 20일 이동평균선을 D : [골든 크로스]..
2022.03.12 -
결론부터 이야기하자면 현재 키움증권 Open API 내에서는 관심종목을 관리할 수 있는 함수를 제공하지 않고 있다. 물론 KOA Studio에서 관심종목을 검색해보면 [OPTKWFID : 관심종목정보요청] 이라는 TR 목록이 존재하지만 이는 우리가 흔히 알고 있는 그 관심종목이 아니다. 코드를 통해 조회할 수 있는 [관심종목정보요청] 은 단순하게 해당 종목에 대한 정보를 요청하고 데이터를 받아오는 것 그 이상도 이하도 아닌 기능이다. 그렇다면 우리가 필요한 관심종목이라는 기능을 어떻게 구현할 수 있을까? 데이터베이스 활용하기 제목에서 알 수 있듯이, 데이터베이스를 활용하는 방법밖엔 없다. 이 과정에서 중요한 건 계좌 잔고에 대한 데이터도 함께 구축해주어야 한다는 것이다. 단순하게 주가 차트를 조회할 수 ..
키움증권 Open API - 관심종목 관리하기 (1)결론부터 이야기하자면 현재 키움증권 Open API 내에서는 관심종목을 관리할 수 있는 함수를 제공하지 않고 있다. 물론 KOA Studio에서 관심종목을 검색해보면 [OPTKWFID : 관심종목정보요청] 이라는 TR 목록이 존재하지만 이는 우리가 흔히 알고 있는 그 관심종목이 아니다. 코드를 통해 조회할 수 있는 [관심종목정보요청] 은 단순하게 해당 종목에 대한 정보를 요청하고 데이터를 받아오는 것 그 이상도 이하도 아닌 기능이다. 그렇다면 우리가 필요한 관심종목이라는 기능을 어떻게 구현할 수 있을까? 데이터베이스 활용하기 제목에서 알 수 있듯이, 데이터베이스를 활용하는 방법밖엔 없다. 이 과정에서 중요한 건 계좌 잔고에 대한 데이터도 함께 구축해주어야 한다는 것이다. 단순하게 주가 차트를 조회할 수 ..
2022.03.12 -
opt10170 함수 요약 발생 이벤트 : OnReceiveTrData 화면번호 : [0353] 입력값 : 계좌번호, 비밀번호, 기준일자, 단주구분, 현금신용구분 반환값 : 싱글데이터 : 총매도금액, 총매수금액, 총수수료_세금, 총정산금액, 총손익금액, 총수익률 멀티데이터 : 종목명, 매수평균가, 매수수량, 매도평균가, 매도수량, 수수료_제세금, 손익금액, 매도금액, 매수금액, 수익률, 종목코드 사용 방법 1) 데이터 요청을 위한 rq_opt10170 함수 제작 [계좌번호] 10자리 [비밀번호] 계좌 비밀번호 [기준일자] YYYYMMDD (20210101 연도4자리, 월 2자리, 일 2자리 형식. 공백입력시 금일데이터) [단주구분] 1:당일매수에 대한 당일매도, 2:당일매도전체 [현금신용구분] 0:전체,..
opt10170 : 당일매매일지 요청opt10170 함수 요약 발생 이벤트 : OnReceiveTrData 화면번호 : [0353] 입력값 : 계좌번호, 비밀번호, 기준일자, 단주구분, 현금신용구분 반환값 : 싱글데이터 : 총매도금액, 총매수금액, 총수수료_세금, 총정산금액, 총손익금액, 총수익률 멀티데이터 : 종목명, 매수평균가, 매수수량, 매도평균가, 매도수량, 수수료_제세금, 손익금액, 매도금액, 매수금액, 수익률, 종목코드 사용 방법 1) 데이터 요청을 위한 rq_opt10170 함수 제작 [계좌번호] 10자리 [비밀번호] 계좌 비밀번호 [기준일자] YYYYMMDD (20210101 연도4자리, 월 2자리, 일 2자리 형식. 공백입력시 금일데이터) [단주구분] 1:당일매수에 대한 당일매도, 2:당일매도전체 [현금신용구분] 0:전체,..
2022.02.20 -
opt90002 함수 요약 발생 이벤트 : OnReceiveTrData 화면번호 : [0651] 입력값 : 날짜구분, 종목코드 반환값 : 싱글데이터 : 등락률, 기간수익률 멀티데이터 : 종목코드, 종목명, 현재가, 등락기호, 전일대비, 등락율, 누적거래량, 매도호가, 매도잔량, 매수호가, 매수잔량, 기간수익률n 사용 방법 1) 데이터 요청을 위한 rq_opt90002 함수 제작 [날짜구분] 1일 ~ 99일 날짜입력 [종목코드] 테마그룹코드 번호 ## 기본 형태 def rq_opt90002(self) self._setinputvalue("날짜구분", ) self._setinputvalue("종목코드", ) self._commrqdata("rq_opt90002", "opt90002", 0, "0651") 2..
opt90002 : 테마구성종목 요청opt90002 함수 요약 발생 이벤트 : OnReceiveTrData 화면번호 : [0651] 입력값 : 날짜구분, 종목코드 반환값 : 싱글데이터 : 등락률, 기간수익률 멀티데이터 : 종목코드, 종목명, 현재가, 등락기호, 전일대비, 등락율, 누적거래량, 매도호가, 매도잔량, 매수호가, 매수잔량, 기간수익률n 사용 방법 1) 데이터 요청을 위한 rq_opt90002 함수 제작 [날짜구분] 1일 ~ 99일 날짜입력 [종목코드] 테마그룹코드 번호 ## 기본 형태 def rq_opt90002(self) self._setinputvalue("날짜구분", ) self._setinputvalue("종목코드", ) self._commrqdata("rq_opt90002", "opt90002", 0, "0651") 2..
2022.02.20 -
OPT90001 함수 요약 발생 이벤트 : OnReceiveTrData 화면번호 : [0650] 입력값 : 검색구분, 종목코드, 날짜구분, 테마명, 등락수익구분 반환값 : 종목코드, 테마명, 종목수, 등락기호, 등락율, 상승종목수, 하락종목수, 기간수익률, 주요종목 사용 방법 1) 데이터 요청을 위한 rq_opt90001 함수 제작 [검색구분] 0:전체검색, 1:테마검색, 2:종목검색 [종목코드] [날짜구분] n일전 (1일 ~ 99일 날짜입력) [테마명] 검색하려는 테마명 [등락수익구분] 1:상위기간수익률, 2:하위기간수익률, 3:상위등락률, 4:하위등락률 ## 기본 형태 def rq_opt90001(self) self._setinputvalue("검색구분", ) self._setinputvalue("종..
OPT90001 : 테마그룹별 요청OPT90001 함수 요약 발생 이벤트 : OnReceiveTrData 화면번호 : [0650] 입력값 : 검색구분, 종목코드, 날짜구분, 테마명, 등락수익구분 반환값 : 종목코드, 테마명, 종목수, 등락기호, 등락율, 상승종목수, 하락종목수, 기간수익률, 주요종목 사용 방법 1) 데이터 요청을 위한 rq_opt90001 함수 제작 [검색구분] 0:전체검색, 1:테마검색, 2:종목검색 [종목코드] [날짜구분] n일전 (1일 ~ 99일 날짜입력) [테마명] 검색하려는 테마명 [등락수익구분] 1:상위기간수익률, 2:하위기간수익률, 3:상위등락률, 4:하위등락률 ## 기본 형태 def rq_opt90001(self) self._setinputvalue("검색구분", ) self._setinputvalue("종..
2022.02.20 -
opt20009 함수 요약 발생 이벤트 : OnReceiveTrData 화면번호 : [0101] 입력값 : 시장구분, 업종코드 반환값 : 싱글데이터 : 현재가, 전일대비기호, 전일대비, 등락율, 거래량, 거래대금, 거래형성종목수, 거래형성비율, 시가, 고가, 저가, 상한, 상승, 보합, 하락, 하한, 52주최고가, 52주최고가일, 52주최고가대비율, 52주최저가, 52주최저가일, 52주최저가대비율 멀티데이터 : 일자n, 현재가n, 전일대비기호n, 전일대비n, 등락률n, 누적거래량n 사용 방법 1) 데이터 요청을 위한 rq_opt20009 함수 제작 [시장구분] 0:코스피, 1:코스닥, 2:코스피200 [업종코드] 001:종합(KOSPI), 002:대형주, 003:중형주, 004:소형주 101:종합(KOS..
opt20009 : 업종현재가일별 요청opt20009 함수 요약 발생 이벤트 : OnReceiveTrData 화면번호 : [0101] 입력값 : 시장구분, 업종코드 반환값 : 싱글데이터 : 현재가, 전일대비기호, 전일대비, 등락율, 거래량, 거래대금, 거래형성종목수, 거래형성비율, 시가, 고가, 저가, 상한, 상승, 보합, 하락, 하한, 52주최고가, 52주최고가일, 52주최고가대비율, 52주최저가, 52주최저가일, 52주최저가대비율 멀티데이터 : 일자n, 현재가n, 전일대비기호n, 전일대비n, 등락률n, 누적거래량n 사용 방법 1) 데이터 요청을 위한 rq_opt20009 함수 제작 [시장구분] 0:코스피, 1:코스닥, 2:코스피200 [업종코드] 001:종합(KOSPI), 002:대형주, 003:중형주, 004:소형주 101:종합(KOS..
2022.02.20 -
OPT20002 함수 요약 발생 이벤트 : OnReceiveTrData 화면번호 : [0213] 입력값 : 시장구분, 업종코드 반환값 : 종목코드, 종목명, 현재가, 전일대비기호, 전일대비, 등락률, 현재거래량, 매도호가, 매수호가, 시가, 고가, 저가 사용 방법 1) 데이터 요청을 위한 rq_opt20002 함수 제작 [시장구분] 0:코스피, 1:코스닥, 2:코스피200 [업종코드] 001:종합(KOSPI), 002:대형주, 003:중형주, 004:소형주 101:종합(KOSDAQ), 201:KOSPI200, 302:KOSTAR, 701: KRX100 나머지 ※ 업종코드 참고 ## 기본 형태 def rq_opt20002(self) self._setinputvalue("시장구분", ) self._setin..
OPT20002 : 업종별주가 요청OPT20002 함수 요약 발생 이벤트 : OnReceiveTrData 화면번호 : [0213] 입력값 : 시장구분, 업종코드 반환값 : 종목코드, 종목명, 현재가, 전일대비기호, 전일대비, 등락률, 현재거래량, 매도호가, 매수호가, 시가, 고가, 저가 사용 방법 1) 데이터 요청을 위한 rq_opt20002 함수 제작 [시장구분] 0:코스피, 1:코스닥, 2:코스피200 [업종코드] 001:종합(KOSPI), 002:대형주, 003:중형주, 004:소형주 101:종합(KOSDAQ), 201:KOSPI200, 302:KOSTAR, 701: KRX100 나머지 ※ 업종코드 참고 ## 기본 형태 def rq_opt20002(self) self._setinputvalue("시장구분", ) self._setin..
2022.02.20 -
opt20001 함수 요약 발생 이벤트 : OnReceiveTrData 화면번호 : [0211] 입력값 : 시장구분, 업종코드 반환값 : 싱글데이터 : 현재가, 전일대비기호, 전일대비, 등락율, 거래량, 거래대금, 거래형성종목수, 거래형성비율, 시가, 고가, 저가, 상한, 상승, 보합, 하락, 하한, 52주최고가, 52주최고가일, 52주최고가대비율, 52주최저가, 52주최저가일, 52주최저가대비율 멀티데이터 : 시간n, 현재가n, 전일대비기호n, 전일대비n, 등락률n, 거래량n, 누적거래량n 사용 방법 1) 데이터 요청을 위한 rq_opt20001 함수 제작 [시장구분] 0:코스피, 1:코스닥, 2:코스피200 [업종코드] 001:종합(KOSPI), 002:대형주, 003:중형주, 004:소형주 101:..
opt20001 : 업종현재가 요청opt20001 함수 요약 발생 이벤트 : OnReceiveTrData 화면번호 : [0211] 입력값 : 시장구분, 업종코드 반환값 : 싱글데이터 : 현재가, 전일대비기호, 전일대비, 등락율, 거래량, 거래대금, 거래형성종목수, 거래형성비율, 시가, 고가, 저가, 상한, 상승, 보합, 하락, 하한, 52주최고가, 52주최고가일, 52주최고가대비율, 52주최저가, 52주최저가일, 52주최저가대비율 멀티데이터 : 시간n, 현재가n, 전일대비기호n, 전일대비n, 등락률n, 거래량n, 누적거래량n 사용 방법 1) 데이터 요청을 위한 rq_opt20001 함수 제작 [시장구분] 0:코스피, 1:코스닥, 2:코스피200 [업종코드] 001:종합(KOSPI), 002:대형주, 003:중형주, 004:소형주 101:..
2022.02.20 -
키움증권 Open API는 기본적으로 싱글 데이터와 멀티 데이터로 구분되는데, 이 중 멀티 데이터를 사용하고자 할 때 필요한 것이 GetRepeatCnt() 함수이다. 멀티 데이터란 기본적으로 반복적인 데이터 조회를 통해 데이터를 반환받을 수 있는 것으로, 가장 대표적인 것이 주가 차트 데이터가 있다. 하나 하나 데이터를 조회하면서 1월 1일의 데이터, 1월 2일의 데이터, 1월 3일의 데이터를 한 번씩 조회하면서 데이터를 받아오기 때문이다. 여기서 바로 조회하고자 하는 데이터의 개수를 반환하는 것이 바로 GetRepeatCnt() 함수이다. 다시 말해, GetRepeatCnt()함수의 결과값이 3이라면 3번에 걸쳐 데이터를 조회하게 되고 결과값이 10이라면 1월 1일부터 1월 10일까지의 데이터가 존재..
GetRepeatCnt() 함수 사용 방법키움증권 Open API는 기본적으로 싱글 데이터와 멀티 데이터로 구분되는데, 이 중 멀티 데이터를 사용하고자 할 때 필요한 것이 GetRepeatCnt() 함수이다. 멀티 데이터란 기본적으로 반복적인 데이터 조회를 통해 데이터를 반환받을 수 있는 것으로, 가장 대표적인 것이 주가 차트 데이터가 있다. 하나 하나 데이터를 조회하면서 1월 1일의 데이터, 1월 2일의 데이터, 1월 3일의 데이터를 한 번씩 조회하면서 데이터를 받아오기 때문이다. 여기서 바로 조회하고자 하는 데이터의 개수를 반환하는 것이 바로 GetRepeatCnt() 함수이다. 다시 말해, GetRepeatCnt()함수의 결과값이 3이라면 3번에 걸쳐 데이터를 조회하게 되고 결과값이 10이라면 1월 1일부터 1월 10일까지의 데이터가 존재..
2022.02.20