본문 바로가기

카테고리 없음

[Python][자동매매] 중간정리, event loop

반응형

2주정도? 코딩을 열심히 해본 것 같다.

그 결과, 자동매매는 절반정도 완성이 됐다고 볼 수 있겠다.

 

지금까지 공부한바로는, 결국 다양한 함수들을 기반으로, 잘 "요청"하는것이 핵심이다.

요청하고, 이벤트루프를 걸고, 다시 이벤트루프를 지우고...

이런 일련의 과정을 반복하며 조건에 맞는 주식을 사고 파는 것.

그런 방식으로 코드가 돌아간다고 이해하고 있다.

 

Event loop

 

사람이 매매를 할때는 계좌를 보다가 매매할 타이밍을 놓칠수도 있다.

여러 종목을 동시에 보지 못할수도 있다.

하지만, 코드로 구성된 system trading은 그래서야 의미가 퇴색된다.

이럴때 사용되는 것이 이벤트루프다.

 

우리가 어떤 동작을 이벤트루프로 묶어준다면, 그 동작은 다른 이벤트루프와는 무관하게, 비동기적으로 돌아갈 수 있다.

 

 

 

    def signal_login_commConnect(self):#1 로그인 함수
        self.dynamicCall("CommConnect()")
        self.login_event_loop.exec_() #2 이벤트 루프 시작

    def login_slot(self, errCode): #3 로그인 후 신호 대기
        print(errors(errCode))

        self.login_event_loop.exit() #4 이벤트루프 종료

예를들어 가져온 로그인 관련 함수.

코드의 증권계좌 로그인과정은 다음과 같다.

1. signal_login_commConnect(self) 에서 로그인을 진행한다.

2. self.login_event_loop.exec_() 라는 명령어로 '이벤트루프'를 시작한다.

3. login_slot(self,errCode) 에서 로그인 후 반응을 기다린다.

4. 로그인 후 signal을 받아 self.login_event_loop.exit() 로 이벤트루프를 종료한다.

 

즉 동일한 event loop를 .exec_()로 실행하는 과정으로 시작하여 .exit()로 끝나는 과정을 한 사이클로,

각 사이클마다 증권사에서 실제로 이용하는 동작을 이어준다고 생각하면 될 것 같다.(로그인, 계좌 조회, 매매 등)

 

지금까지의 결과?

 

사실, 결과라고 할게 아직은 없다.

왜냐면 투자를 시작하지 않았으니까!

 

다만 지금에 와서 글을 쓰는 이유는, 이제야 코드의 구성을 직접 조작할 수 있는 단계에 왔기 때문이다.

 

코드의 조건을 수정하여 원하는 종목만을 추려낼 수 있는 선별의 단계에 왔기에 곧 유의미한 결과를 낼 수 있지 않을까 내심 기대하고있다.

 

 

출근하기전 아침시간과

퇴근하기전 밤잠을 줄여가며 공부하는 물건이라... 나름 감회가 깊다.

반응형