-
-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
koapy backtrader sample 사용중 알수 없는 중단 현상 문의 #14
Comments
안녕하세요. 리포트 감사합니다. 말씀주신 부분의 기능은 초기 개발과정에서도 충분한 시간을 들여서 테스트를 해보지 못한 부분인 것 같습니다. 대신 현재 제가 추측하는 원인 두가지 정도 적어봅니다. 1.
|
에러 메시지 없이 멈추는 경우를 저도 경험했습니다. 에러가 특별히 발생하지 않고 멈추는 경우는 대개 쓰레드 관련 문제인 경우가 많은데, Kiwoom에서 답변한 내용을 검토해본 결과 일단 Kiwoom OpenAPI+는 Thread-Safe가 아니라고 합니다. 즉, 만약 어딘가에서 API 함수/이벤트를 처리할 때, 동시에 다른 함수를 처리하려고 하면, (나의 콜은 다른 콜이 끝나기를 기다리는데 다른 콜은 내가 끝나기를 기다린다. 즉 circular waiting) 두 함수 모두가 영원히 기다리는 Deadlock이 발생할 수 있다는 말이며, 이런 종류의 데드락은 함수를 콜하는 횟수와 빈도가 많아질수록 멈출 확률이 더 높아집니다. 코드를 살펴보면 Kiwoom OpenAPI를 호출하는 부분 참여자분들 중에 KOAPY가 응답이 없는 경우가 발생하면, 제가 쓴 #78 참고하셔서 API 컨트롤을 비동기 호출하도록 수정해보셨으면 좋겠습니다. (저는 그냥 되는대로 썼는데, async/await 사용해서 더 깔끔하게 코드를 쓸 수 있는 방법이 있을라나 모르겠습니다...) 호출 실패하는 경우가 상관 없으면 그냥 동기 호출을 |
koapy/koapy/backend/kiwoom_open_api_plus/grpc/event/KiwoomOpenApiPlusRealEventHandler.py Lines 181 to 215 in b4cc36b
|
여기서 언급된 koapy/koapy/backend/kiwoom_open_api_plus/utils/pyside2/QSlotLikeExecutor.py Lines 62 to 63 in ff982db
koapy/koapy/backend/kiwoom_open_api_plus/utils/pyside2/QRateLimitedExecutor.py Lines 98 to 99 in ff982db
|
안녕하세요?
koapy 내에 backtrader sample프로그램을 활용하고자 합니다.
몇번의 테스트를 해 보았지만 원인을 찾기가 어렵네요.
kiwoom_broker_iteration을 활용해서 테스트를 해보았습니다.
로직상은 이상없는 것처럼 잘 돌아 갑니다.
그런데 약 2시간 정도(정확하지는 않음, 즉 하루종일 구동할수 없음)를 구동하고나면 아무런 응답이 없습니다.
그냥 realtimedata를 가져오지 못하는 듯합니다.
추정해보다면 어떤 특정 시간을 제한하고 있는 것 처럼 느껴지는데.. 이건 느낌일 뿐이고..
그래서 realtimedata를 for loop로 구동했더니 이건 하루종일 구동되었습니다.
backtrader에서 고동하는 하기코드는 중단되는데.. backtrader의 qcheck일까 싶어서 조정해 보았지면 Check시간만 길어지고
약 2 ~3시간후에는 realdata 수신이 되지 않습니다.
혹 방법이 있을까요?
QueueBasedBufferedIterator가 import 되지 않은 프로그램이 있어서 import 해 놓으시면 감사하겠습니다.
좋은 프로그램 공개해 주셔서 많은 도움이 되겠습니다.
고맙습니다.
The text was updated successfully, but these errors were encountered: