Code Monkey home page Code Monkey logo

kiwoom's People

Contributors

breadum avatar gamjaa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kiwoom's Issues

3일동안 고민이 해결되지 않아 글을 올립니다.

Historical data를 실행하면 입력한 시작날짜와 종료와 무관하게 3월 데이터만 csv로 추출합니다. 도저히 이해가 되지 않아 글을 올립니다. 제가 잘못하고 있는 것인가요?

도움부탁드립니다.^^

조건검색 hook 처리 문의

조건검색은 OnReceiveConditionVer, OnReceiveTrCondition,OnReceiveRealCondition 등의 slot들 처리함에 있어서

    self.api.set_connect_hook('on_receive_tr_condition', param='condition_name')
    self.api.connect('on_receive_tr_condition', slot=self.server.test_condition1)

    self.api.set_connect_hook('on_receive_real_condition', param='condition_name')
    self.api.connect('on_receive_real_condition', slot=self.server.test_condition1)

위같이 하면, self.server 내에서 조건식명이 같기 때문에(test_condition1) 함수명을 어떻게 처리하나요 (중복)?

보유종목이 많을 때 오류

안녕하세요.
코드는 Tutorial 의 5번 "TR Data.py" 에서 나고, 보유종목이 많을 때, 다음 과 같은 에러가 나네요.
오류 내용입니다.

[GetPCIdentity] VER 3.2.0.0 build 2015.8.12

로그인 정상처리

  • 시스템 점검
    • 월 ~ 토 : 05:05 ~ 05:10
    • 일 : 04:00 ~ 04:30

Bot.deposit() 호출

화면번호: 0000, 요청이름: deposit, TR코드: opw00001
[100000] 모의투자 조회완료

    Server.deposit(scr_no, rq_name, tr_code, record_name, prev_next) 호출
    Server.deposit(scr_no, rq_name, tr_code, record_name, prev_next) 종료

Bot.deposit() 종료
Bot.balance(prev_next) 호출

화면번호: 0000, 요청이름: balance, TR코드: opw00018
[100000] 모의투자 조회가 계속됩니다. 계속조회시 다음키를 누르십시오.

    Server.balance(scr_no, rq_name, tr_code, record_name, prev_next) 호출

Bot.balance(prev_next) 호출
Bot.balance(prev_next) 종료

화면번호: 0000, 요청이름: balance, TR코드: opw00018
[100000] 모의투자 조회가 계속됩니다. 계속조회시 다음키를 누르십시오.

    Server.balance(scr_no, rq_name, tr_code, record_name, prev_next) 호출

Bot.balance(prev_next) 호출
Bot.balance(prev_next) 종료

화면번호: 0000, 요청이름: balance, TR코드: opw00018
[100000] 모의투자 조회가 계속됩니다. 계속조회시 다음키를 누르십시오.

    Server.balance(scr_no, rq_name, tr_code, record_name, prev_next) 호출

Bot.balance(prev_next) 호출
Bot.balance(prev_next) 종료

화면번호: 0000, 요청이름: balance, TR코드: opw00018
[100000] 모의투자 조회가 계속됩니다. 계속조회시 다음키를 누르십시오.

    Server.balance(scr_no, rq_name, tr_code, record_name, prev_next) 호출

Bot.balance(prev_next) 호출
Traceback (most recent call last):
File "c:\Users\Administrator\OneDrive - DZS\dev\ktrader-dev\kydwin\kiwoom\core\connector.py", line 386, in wrapper
slot(*args)
File "c:\Users\Administrator\OneDrive - DZS\dev\ktrader-dev\kydwin\5. TR Data.py", line 352, in balance
fn(prev_next) # call signal function again to receive remaining data
File "c:\Users\Administrator\OneDrive - DZS\dev\ktrader-dev\kydwin\5. TR Data.py", line 217, in balance
self.api.comm_rq_data('balance', tr_code, prev_next, '0000')
File "c:\Users\Administrator\OneDrive - DZS\dev\ktrader-dev\kydwin\kiwoom\config\error.py", line 73, in wrapper
print(f'\nAn error occurred from {fn.name}.\n * {msg(out)}')
File "c:\Users\Administrator\OneDrive - DZS\dev\ktrader-dev\kydwin\kiwoom\config\error.py", line 50, in msg
etype, msg = ERR[ecode]
KeyError: -211

실시간 목록 - 주식체결 tutorials에 추가 부탁드립니다.

실시간 목록 - 주식체결 신청하여 실시간 현재가를 받아올려고 하는데요 이게 맞는지 모르겠습니다. ㅠ
고견 부탁드립니다.

class Bot(Bot):
def init(self, server):
super().init(server)

    self.api.set_connect_hook('on_receive_real_data', 'real_type')
    self.api.connect('on_receive_real_data', signal=self.real_price, slot=self.server.real_price)

def real_price():
    self.api.set_real_reg("2000", "005930;005380", "10", "0")   #삼성전자;현대차  10:현재가
    print('주가체결 구독')

class Server(Server):
def init(self):
super().init()
self.downloading = False

def real_price():
    for code in code_list:
        real_dict={code:{}}
        current_price = self.api.get_comm_real_data(code, '10')
        real_dict[code].update({'현재가':current_price})

if name == 'main':
app = QApplication(sys.argv)
bot = Bot(Server())
bot.login()
bot.account()
bot.balance()
bot.real_price()

판다스 32bit 지원 중지

안녕하세요.
kiwoom 모듈을 설치 후 판다스 32bit 버전을 따로 설치하려고 할 때 판다스가 더이상 구버전의 wheel을 지원하지 않게 되어 설치가 불가한 것 같습니다. 그에 따라 kiwoom 모듈의 사용도 불가합니다.
이젠 더이상 kiwoom 모듈을 사용이 불가능한 건가요?

주식분봉차트조회요청 TR에 주식코드를 넘기는 방법 문의

안녕하세요.
기존에는 _OnReceiveTrData_slot의 경우 code가 인자로 넘어오지 않기 때문에, 분봉울 가져올 때 rq_name의 인자로 조건식명-코드 (예: '조건식_417790')로 넘겨서 코드와 조건식을 mapping해서 사용했습니다. 그런데 제공해주신 Library에서 자동으로 hook되어 함수명으로 직접 연결되기 때문에, rq_name이 계속 코드에 따라 수시로 바뀌는 환경에서는 고정적인 함수를 만들 수 없게 됩니다만, 이 경우 hook하지 않고 원래대로 slot 동작으로 rq_name을 받아서 처리하는 방법 있을까요?
class MyServer(Server)에 코드와 조건식을 mapping하는 글로벌 변수를 잡아서 분봉 TR요청을 하고 TR로 들어오면 해당 글로벌 변수에 넣어 사용하면 될텐데, 이렇게 해도 조건식에 의해서 detection된 TR요청한 순서대로 들어온다는 보장이 되는지 잘 모르겠네요.

현재는

class MyBot(Bot):
    def __init__(self, server = None):
        super().__init__(server)
        self.api.OnReceiveTrData.connect(self.server.on_receive_tr_data)

class MyServer(Server):
    def __init__(self):
        super().__init__()
        ...
    def on_receive_tr_data(self, scr_no, rq_name, tr_code, record_name, prev_next):
        condition, code = rq_name.split('_')

이런식으로 했는데, 동작은 하지만 아래 warning이 들어와요~
kiwoom.on_receive_tr_data(4080, 주식분봉차트조회요청_417790, opt10080, , 0) has been called.
But the event handler, 'on_receive_tr_data', is not connected to any slot.
Please try to connect event and slot by using kiwoom.connect() method

피크 타임에 응답없음

안녕하세요?
실서버에서 구동중에
주로 9시 ~ 9시 15분 사이에
api/ set_real_reg
api/ set_real_remove
(실시간 시세 조회 및 해제)
요청 시 빈번하게 전체 프로세스가 멈추는 현상이 있습니다.
( 3초마다 한번씩 API를 요청하여 빈도를 현저하게 낮추어도 동일하게 문제가 발생하고 있습니다.
장초반 10~20종목 정도 set_real_reg로 등록합니다 )

해당 현상 발생시 catch_error로 오류이벤트가 발생하지 않고
멀티스레딩 중인 스케쥴러(로깅) 또한 함께 멈추는 것으로 보입니다.

디버깅을 어떻게 해야할지
해당 원인이 키움 쪽에서 응답없음이라면,
어떤 식으로 대응해야할지 조언 부탁드립니다.

로그인 이후 on_event_connect 이벤트 처리

안녕하세요.

로그인 이후 on_event_connect 이벤트 핸들러에서 접속 이후 처리를 하려고 합니다. (계좌비번을 자동으로 넣는 RPA 코드 실행) 그런데 해당 함수가 로그인 이후에 호출이 안됩니다. (break point를 걸었으나 걸리지 않음) 혹시 이유를 알 수 있을까요?

def on_event_connect(self, err_code):
"""
# 개발가이드 > 로그인 버전처리

    [OnEventConnect()이벤트]

    OnEventConnect(
      long nErrCode   // 로그인 상태를 전달하는데 자세한 내용은 아래 상세내용 참고
    )

    로그인 처리 이벤트입니다. 성공이면 인자값 nErrCode가 0이며 에러는 다음과 같은 값이 전달됩니다.

    nErrCode별 상세내용
    -100 사용자 정보교환 실패
    -101 서버접속 실패
    -102 버전처리 실패
    """
    pass

'실시간 체결 데이터' 수신 slot의 unloop 실행과 관련하여 문의 드립니다.

bot에서 ready_optsise(or SetRealReg 등록) 호출로 server slot이  '실시간 체결 데이터'(on_receive_real_data)를

실시간 수신 받게 되면 계속 unloop가 거의 실시간 반복 실행되는 상황인데 굳이 unloop 지정 해야 하는지 ?

=> 실시간 수신 받으면서 계속 unloop실행됨으로 다른 함수의 unloop 실행을 가로채는 것 아닌지 ? 어찌 풀어야 할지 ?

=> 도움 답변 감사합니다.

api.py SendOrderFO parameter 가 한개 부족

api.py SendOrderFO parameter 가 한개 부족

fn = "SendOrderFO(QString, QString, QString, Int, QString, Int, Int, QString, QString)"

=>>  fn = "SendOrderFO(QString, QString, QString, QString, int, QString, QString, int, QString, QString)"  

vscode 사용시 Server class의 self.api.xxx() 를 인지하지 못하네요.

안녕하세요.
Server Class의 아래있는 methold를 vscode가 인식하지 못하는데, 인식하게 할 수 있는 방법이 있을까요?
(인식이라 함은 Ctrl+마우스 버튼 누를 때 hyperlink처럼 함수를 보여주거나 하는 것을 말합니다)

class MyServer(Server):
    def __init__(self):
        super().__init__()

   def condition_ver(self, lRet, sMsg):
      condition_list = self.api.get_condition_name_list()

이것을 Server.py에서,

class Server:
    def __init__(self):
        self.api = None   --> 이곳을 self.api = Kiwoom() 으로 하면 해결이 되지만, 이렇게 하는 것이 맞는지요?
        self.share = None 

    def init(self, api, share):
        self.api = api
        self.share = share

Kiwoom 객체 생성 시 오류

Kiwoom() 으로 객체 만들 때

Canceled future for execute_request message before replies were done

문구와 함께 에러가 발생합니다.

터미널에서 실행 테스트 했을 시에
QWidget: Must construct a QApplication before a QWidget
메시지를 출력하네요.

kiwoom 객체 생성 전에 QT app 먼저 실행해주니까 에러없이 실행됩니다~
app = QApplication(sys.argv)

api.py SendOrderFO 주문 요청과 이벤트 처리 connect 하려고 하는데 방법 ?

api.py SendOrderFO 주문 요청과 이벤트 처리 connect 하려고 하는데 아래와 같이 하면 적절한지요 ?
rq_name 대신 gubun ??

    self.api.set_connect_hook('on_receive_chejan_data', 'gubun')           

    self.api.connect('on_receive_chejan_data', signal=self.orderfo, slot=self.server.orderfo)

   주문후 이벤트 처리하는 예제를 tutorials 에 추가해주시면 감사 감사 ~

혹시 API 로 업종별 코드를 얻는 기능이 있을까요?

안녕하세요 kiwoom wrapper 직접 개발하다가
잘 만들어진 프로젝트 발견해서 fork 하려고 합니다

근데 업종별 코드 (농업, 의약 등) 를 얻는 방법을 찾기가 힘든데
혹시 raw kiwoom api 에서 이걸 확인할 방법이 있을까요??

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.