AUTO TRADE
좌측 카테고리를 눌러서 주제를 선택하시기 바랍니다.
-
opt10003 함수 요약 발생 이벤트 : OnReceiveTrData 화면번호 : [0120] 입력값 : 종목코드 반환값 : 시간, 현재가, 전일대비, 대비율, 우선매도호가단위, 우선매수호가단위, 체결거래량, sign, 누적거래량, 누적거래대금, 체결강도 1) 데이터 요청을 위한 rq_opt10003 함수 제작 ## 기본 형태 def rq_opt10003(self) self._setinputvalue("종목코드", '005930') ## 입력값 입력 self._commrqdata("rq_opt10003", "opt10003", 0, "0120") ## rq_opt10003을 trcode로 전달 ## 종목 코드를 전달해서 사용하고 싶다면 def rq_opt10003(self, code): self._se..
opt10003 : 체결정보요청opt10003 함수 요약 발생 이벤트 : OnReceiveTrData 화면번호 : [0120] 입력값 : 종목코드 반환값 : 시간, 현재가, 전일대비, 대비율, 우선매도호가단위, 우선매수호가단위, 체결거래량, sign, 누적거래량, 누적거래대금, 체결강도 1) 데이터 요청을 위한 rq_opt10003 함수 제작 ## 기본 형태 def rq_opt10003(self) self._setinputvalue("종목코드", '005930') ## 입력값 입력 self._commrqdata("rq_opt10003", "opt10003", 0, "0120") ## rq_opt10003을 trcode로 전달 ## 종목 코드를 전달해서 사용하고 싶다면 def rq_opt10003(self, code): self._se..
2022.02.12 -
opt10002 함수 요약 발생 이벤트 : OnReceiveTrData 입력값 : 종목코드 반환값 : 종목코드, 종목명, 현재가, 등락부호, 기준가, 전일대비 등락률, 매도거래원명1, 매도거래원1, 매도거래량1, 매수거래원명1, 매수거래원1, 매수거래량1‥‥‥‥(1~5까지 사용 가능함) 1) 데이터 요청을 위한 rq_opt10002 함수 제작 ## 기본 형태 def rq_opt10002(self) self._setinputvalue("종목코드", '005930') self._commrqdata("rq_opt10002", "opt10002", 0, "0101") ## 종목 코드를 전달해서 사용하고 싶다면 def rq_opt10002(self, code): self._setinputvalue("종목코드", ..
opt10002 : 주식거래원요청opt10002 함수 요약 발생 이벤트 : OnReceiveTrData 입력값 : 종목코드 반환값 : 종목코드, 종목명, 현재가, 등락부호, 기준가, 전일대비 등락률, 매도거래원명1, 매도거래원1, 매도거래량1, 매수거래원명1, 매수거래원1, 매수거래량1‥‥‥‥(1~5까지 사용 가능함) 1) 데이터 요청을 위한 rq_opt10002 함수 제작 ## 기본 형태 def rq_opt10002(self) self._setinputvalue("종목코드", '005930') self._commrqdata("rq_opt10002", "opt10002", 0, "0101") ## 종목 코드를 전달해서 사용하고 싶다면 def rq_opt10002(self, code): self._setinputvalue("종목코드", ..
2022.02.12 -
opt10001 함수 요약 발생 이벤트 : OnReceiveTrData 입력값 : 종목코드 반환값 : 종목코드, 종목명, 결산월, 액면가, 자본금, 상장주식, 신용비율, 연중최고, 연중최저, 시가총액, 시가총액비중, 외인소진율, 대용가, PER, EPS, ROE, PBR, EV, BPS, 매출액, 영업이익, 당기순이익, 250최고, 250최저, 시가, 고가, 저가, 상한가, 하한가, 기준가, 예상체결가, 예상체결수량, 250최고가일, 250최고가대비율, 250최저가일, 250최저가대비율, 현재가, 대비기호, 전일대비, 등락율, 거래량, 거래대비, 액면가단위, 유통주식, 유통비율 1) 데이터 요청을 위한 rq_opt10001 함수 제작 ## 기본 형태 def rq_opt10001(self) self._se..
opt10001 : 주식기본정보요청opt10001 함수 요약 발생 이벤트 : OnReceiveTrData 입력값 : 종목코드 반환값 : 종목코드, 종목명, 결산월, 액면가, 자본금, 상장주식, 신용비율, 연중최고, 연중최저, 시가총액, 시가총액비중, 외인소진율, 대용가, PER, EPS, ROE, PBR, EV, BPS, 매출액, 영업이익, 당기순이익, 250최고, 250최저, 시가, 고가, 저가, 상한가, 하한가, 기준가, 예상체결가, 예상체결수량, 250최고가일, 250최고가대비율, 250최저가일, 250최저가대비율, 현재가, 대비기호, 전일대비, 등락율, 거래량, 거래대비, 액면가단위, 유통주식, 유통비율 1) 데이터 요청을 위한 rq_opt10001 함수 제작 ## 기본 형태 def rq_opt10001(self) self._se..
2022.02.12 -
증권사 Open API는 일반적으로 32bit에서 정상적으로 작동하기 때문에 62bit를 사용하고 있다면 오류가 발생할 수 있다. 그렇기 때문에 Open API를 실행하기 전에 앞서 bit를 확인해주는 코드를 입력할 수 있다. import sys is_64bits = sys.maxsize > 2**32 if is_64bits: print("64비트입니다.") else: print("32비트입니다.") 만약 32비트가 아닌 64비트를 사용하고 있다면 32비트를 사용해주어야 하는데, 32비트로 변경하는 방법은 사용하고 이쓰는 프로그램이 어떤 것인가에 따라 다를 수밖에 없다. 가령, 아나콘다를 사용한다면 아나콘다를 통해 가상환경을 생성하는 방법을 검색해서 가상환경을 설정한 후 파이참 인터프리터를 32비트 파이..
파이썬 bit 확인하기증권사 Open API는 일반적으로 32bit에서 정상적으로 작동하기 때문에 62bit를 사용하고 있다면 오류가 발생할 수 있다. 그렇기 때문에 Open API를 실행하기 전에 앞서 bit를 확인해주는 코드를 입력할 수 있다. import sys is_64bits = sys.maxsize > 2**32 if is_64bits: print("64비트입니다.") else: print("32비트입니다.") 만약 32비트가 아닌 64비트를 사용하고 있다면 32비트를 사용해주어야 하는데, 32비트로 변경하는 방법은 사용하고 이쓰는 프로그램이 어떤 것인가에 따라 다를 수밖에 없다. 가령, 아나콘다를 사용한다면 아나콘다를 통해 가상환경을 생성하는 방법을 검색해서 가상환경을 설정한 후 파이참 인터프리터를 32비트 파이..
2022.02.12 -
※ 키움증권 설명서에서 이야기하는 trcode란 Transaction Code의 약칭입니다. ※ 각 Transaction Code(또는 Tr 이름) 클릭 시 사용 방법 링크로 연결됩니다. ※ [call real]은 실시간 데이터를 발생시킴을 의미합니다. ※ 선물옵션 및 지수 관련 데이터는 추후 업데이트 예정입니다. ※ 모든 Transaction Code를 사용하기 위해서는 반드시 이벤트 처리를 해주어야 합니다. ※ 모든 데이터는 멀티 데이터 기반이나, 싱글 데이터와 멀티 데이터가 구분되어 표기된 trcode는 getrepeatcnt()를 사용 이벤트 처리 관련 게시글 바로가기 조건검색식 관련 게시글 바로가기 파이썬 동작 bit 확인 관련 게시글 바로가기 GetRepeatCnt() 함수 사용 바로가기 데이..
키움증권 TR 코드 및 사용 방법 총 정리※ 키움증권 설명서에서 이야기하는 trcode란 Transaction Code의 약칭입니다. ※ 각 Transaction Code(또는 Tr 이름) 클릭 시 사용 방법 링크로 연결됩니다. ※ [call real]은 실시간 데이터를 발생시킴을 의미합니다. ※ 선물옵션 및 지수 관련 데이터는 추후 업데이트 예정입니다. ※ 모든 Transaction Code를 사용하기 위해서는 반드시 이벤트 처리를 해주어야 합니다. ※ 모든 데이터는 멀티 데이터 기반이나, 싱글 데이터와 멀티 데이터가 구분되어 표기된 trcode는 getrepeatcnt()를 사용 이벤트 처리 관련 게시글 바로가기 조건검색식 관련 게시글 바로가기 파이썬 동작 bit 확인 관련 게시글 바로가기 GetRepeatCnt() 함수 사용 바로가기 데이..
2022.02.09 -
키움증권에서 제공하는 Open API에서는 trcode를 통해 데이터를 요청하고 서버에서 요청을 받은 경우 이벤트를 발생시킨 후 해당 이벤트에 결과값을 반환해준다. 따라서 데이터를 요청하기 위해서는 반드시 trcode를 전송하는 부분과 이벤트를 연결하는 부분, 그리고 데이터를 받아오는 세 가지 부분으로 구성해야만 데이터를 사용할 수 있다. 데이터 입력 함수 : SetInPutValue() ↓ 데이터 전송 함수 : CommRqData() ↓ [ 이벤트 처리 코드 ] ↓ 결과값 받아오는 함수 : GetCommData() 의외로 단순하게, 키움증권에서 발생시키는 이벤트의 종류는 8개로, 많지 않다. ## 로그인 이벤트 처리 함수 self.kiwoom.OnEventConnect.connect(self.event..
키움증권 Open API 이벤트 처리하기키움증권에서 제공하는 Open API에서는 trcode를 통해 데이터를 요청하고 서버에서 요청을 받은 경우 이벤트를 발생시킨 후 해당 이벤트에 결과값을 반환해준다. 따라서 데이터를 요청하기 위해서는 반드시 trcode를 전송하는 부분과 이벤트를 연결하는 부분, 그리고 데이터를 받아오는 세 가지 부분으로 구성해야만 데이터를 사용할 수 있다. 데이터 입력 함수 : SetInPutValue() ↓ 데이터 전송 함수 : CommRqData() ↓ [ 이벤트 처리 코드 ] ↓ 결과값 받아오는 함수 : GetCommData() 의외로 단순하게, 키움증권에서 발생시키는 이벤트의 종류는 8개로, 많지 않다. ## 로그인 이벤트 처리 함수 self.kiwoom.OnEventConnect.connect(self.event..
2022.02.09 -
오류 코드 C:\Users\@@@\PycharmProjects\back_Test\algorithm\algorithm_1.py:254: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy self.trade_trace.loc[iloc_num]['profit_rate'] = profit_rate 또는 SettingWithCopyWarning: A valu..
Pandas 오류 : SettingWithCopyWarning오류 코드 C:\Users\@@@\PycharmProjects\back_Test\algorithm\algorithm_1.py:254: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy self.trade_trace.loc[iloc_num]['profit_rate'] = profit_rate 또는 SettingWithCopyWarning: A valu..
2022.01.16 -
오류 코드 Error Code:2013. Lost connection to MySQL server during query 발생 원인 데이터 양이 큰 스키마를 삭제할 때 발생 해결 방법 WorkBench 내에서 쿼리당 할당 시간을 늘림 ① WorkBench 내 우측 상단의 톱니바퀴 모양을 클릭 ② SQL Editor 클릭 ③ MySQL Session 하단의 두 개 부분을 기존 60초에서 3,600초 또는 36,000초 정도로 수정
WorkBench 오류 : Error Code:2013. Lost connection to MySQL server during query오류 코드 Error Code:2013. Lost connection to MySQL server during query 발생 원인 데이터 양이 큰 스키마를 삭제할 때 발생 해결 방법 WorkBench 내에서 쿼리당 할당 시간을 늘림 ① WorkBench 내 우측 상단의 톱니바퀴 모양을 클릭 ② SQL Editor 클릭 ③ MySQL Session 하단의 두 개 부분을 기존 60초에서 3,600초 또는 36,000초 정도로 수정
2022.01.05 -
오류 코드 mysql.connector.errors.DatabaseError: 1812 (HY000): Tablespace is missing for table 해결 방법 Program Data - MySQL - MySQL server 8.0 - Data 경로 안에 스키마 이름과 동일한 폴더 생성 후 실행하면 잘 돌아감 ※ 안 되면 DB를 삭제한 후 다시 생성할 것
WorkBench 오류 : mysql.connector.errors.DatabaseError: 1812 (HY000): Tablespace is missing for table ""오류 코드 mysql.connector.errors.DatabaseError: 1812 (HY000): Tablespace is missing for table 해결 방법 Program Data - MySQL - MySQL server 8.0 - Data 경로 안에 스키마 이름과 동일한 폴더 생성 후 실행하면 잘 돌아감 ※ 안 되면 DB를 삭제한 후 다시 생성할 것
2022.01.05 -
오류 코드 ERROR CODE : 3679. Schema directory "\(table_name)\" does not exist 발생 원인 MySQL 스키마(Schema, Database)를 삭제하는 데에 있어서 오류가 발생할 경우, Program Data - MySQL - MySQL server 8.0 - Data 폴더 내에서 스키마 폴더를 삭제한 후에 다시 워크벤치에서 삭제(Drop)하면 삭제됨 이번에도 똑같은 오류가 발생했길래 Data 폴더 내에서 스키마 폴더를 삭제했더니 이번엔 경로를 알 수 없다고 삭제를 못 함. mysql.connector.errors.DatabaseError: 3678 (HY000) 파이참 실행 중 발생한 오류 전문 Traceback (most recent call las..
WorkBench 오류 : ERROR CODE : 3679. Schema directory "\XXXX\" does not exist오류 코드 ERROR CODE : 3679. Schema directory "\(table_name)\" does not exist 발생 원인 MySQL 스키마(Schema, Database)를 삭제하는 데에 있어서 오류가 발생할 경우, Program Data - MySQL - MySQL server 8.0 - Data 폴더 내에서 스키마 폴더를 삭제한 후에 다시 워크벤치에서 삭제(Drop)하면 삭제됨 이번에도 똑같은 오류가 발생했길래 Data 폴더 내에서 스키마 폴더를 삭제했더니 이번엔 경로를 알 수 없다고 삭제를 못 함. mysql.connector.errors.DatabaseError: 3678 (HY000) 파이참 실행 중 발생한 오류 전문 Traceback (most recent call las..
2022.01.05 -
오류 코드 sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1170, "BLOB/TEXT column 'XXXX' used in key specification without a key length") 해결 방법 인덱스 설정에 있어서 발생하는 오류에 해당함. 따라서 to_sql 내부에 있는 index=True와 그 전의 set_index()가 중복되지 않도록 변경하면 됨 ① set_index()를 지운 후 to_sql 내에서 index=True를 사용 ② set_index()를 유지 후 to_sql 내에서 index=False를 사용 ## 수정 전 tempt_data = pd.DataFrame(self.ohlcv, columns=['dt..
MySQL 오류 : sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1170, "BLOB/TEXT column오류 코드 sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1170, "BLOB/TEXT column 'XXXX' used in key specification without a key length") 해결 방법 인덱스 설정에 있어서 발생하는 오류에 해당함. 따라서 to_sql 내부에 있는 index=True와 그 전의 set_index()가 중복되지 않도록 변경하면 됨 ① set_index()를 지운 후 to_sql 내에서 index=True를 사용 ② set_index()를 유지 후 to_sql 내에서 index=False를 사용 ## 수정 전 tempt_data = pd.DataFrame(self.ohlcv, columns=['dt..
2022.01.04 -
[파일명 : algorithm_1] 종목별 거래량과 거래대금 불러오기 종목별로 사전에 설정한 선정 기준을 충족시키는지 아닌지 그 여부를 판단하기 위해서는 반드시 종목별 거래량과 거래대금, 그리고 종가와 시가 고가 저가 등을 가져와야 한다. 그 방법은 크게 두 가지로 나뉘는데, 데이터프레임에 조건을 걸어 해당 조건을 충족시키는 값을 가져오는 것과 특정 열의 데이터를 모두 불러와서 리스트 형태로 저장한 후 인덱싱을 통해 접근하는 방법이다. ############################################## #### 데이터 변수명이 __day_dataframe일 경우 #### ############################################## self.today = 202101..
2.4 백테스팅하기 - 종목 선정하기 (2)[파일명 : algorithm_1] 종목별 거래량과 거래대금 불러오기 종목별로 사전에 설정한 선정 기준을 충족시키는지 아닌지 그 여부를 판단하기 위해서는 반드시 종목별 거래량과 거래대금, 그리고 종가와 시가 고가 저가 등을 가져와야 한다. 그 방법은 크게 두 가지로 나뉘는데, 데이터프레임에 조건을 걸어 해당 조건을 충족시키는 값을 가져오는 것과 특정 열의 데이터를 모두 불러와서 리스트 형태로 저장한 후 인덱싱을 통해 접근하는 방법이다. ############################################## #### 데이터 변수명이 __day_dataframe일 경우 #### ############################################## self.today = 202101..
2022.01.02