증권사는 C언어로 되어있는 환경이고
일반인이 접근하기 힘들기 때문에 API를 제공한다.
API는 Application Programing Interface의 약자로
파이썬으로 코딩을 해서 API에 요청을 하면
C언어로 변환하여 증권사에 보내고
증권사에서 보내는 정보를 다시 API가
내게 맞는 언어로 보내주는 중재자 역할을 제공한다.
코어 하나당 쓰레드를 몇개씩 가진다.
병렬처리
만약 처리해야할 종목이 1000개라고 하면
쓰레드가 4개있으면 250개씩 종목을 할당하여 처리를 부탁하게된다.
이벤트루프
쓰레드별로 데이터는 순차적으로 처리된다.
요청->Task->API->callback->Task->출력
Task와 Callback사이의 신호 교환을 Event loop라고 한다.
GUI : Graphic User Interface
pyQT : 파이썬 기반 GUI 편집가능하게 해주는 여러 Class,함수 집함
pyQT안에는 QEventLoop()라는 함수가 있는데
이 함수를 쓰면 이벤트 루프를 관리할 수 있다
만약 키움 증권에 데이터를 요청한다고 해보자
데이터를 받기 전에 다른 함수들이 작동하면 데이터 꼬임이 있을 수 있다
이 때 Block 기능을 사용하면 데이터 요청 건을 먼저 처리 한 뒤, 다른 함수들을 실행시키게된다
한가지 예시를 더해, 키움에 현재가를 요청하는 상황을 가정해보자
현재가를 아직 받지 못했어도
쓰레드 입장에서는 현재가 요청 코드를 실행했으므로
바로 다음코드로 넘어간다
만약 다음 코드가 방금 받았어야 하는 현재가를 필요로 하면
쓰레드 에러가 발생한다. 이것을 데이터가 엉켰다고 말한다.
키움 증권을 안쓰다보니...
이것저것 등록했는데 오늘은 로그인이 안되는 상황이라
내일은 Open API 설치부터 시작할 생각이다.
안돼면 파이썬 기초 좀 더 공부해볼것이다.
'공부 > 시스템 개발 일기' 카테고리의 다른 글
시스템트레이딩 개발일기 D+14 (0) | 2025.03.24 |
---|---|
시스템트레이딩 개발일기 D+13 (0) | 2025.03.23 |
시스템트레이딩 개발일기 D+10 (0) | 2025.03.20 |
시스템트레이딩 개발일기 D+9 (0) | 2025.03.19 |
시스템트레이딩 개발일기 D+8 (0) | 2025.03.19 |