더북(TheBook)

프로그램 개선

현재 프로젝트 구조는 실행부, 전략부, 유틸부로 나뉘어 있습니다. 사실 소스양이 엄청나게 많은 편은 아니므로 그저 .py 파일 한두 개에 모든 소스를 넣어 개발할 수도 있었습니다. 하지만 그러지 않고 구조를 나눈 이유는 확장성 때문입니다. 이 프로젝트는 하나의 전략만 수행하도록 만들었지만, 직접 개발할 때는 복수 전략을 만들어 운영할 수도 있으므로 모듈별로 나누었습니다.

다만 복수 전략을 운영하기 전에 해결해야 할 숙제가 있습니다. 예를 들어 전략마다 Kiwoom API를 필수적으로 이용해야 하지만, 현재 Kiwoom.py 파일은 전략별로 분리되어 호출될 수 있는 완벽한 구조가 아닙니다. 무슨 말이냐면 Kiwoom 클래스가 생성될 때 수행하는 로직들이 클래스 생성 때마다 다시 수행되는 것은 적절하지 못할 수 있습니다. 또 현재는 접수한 주문과 보유 종목들이 하나의 계좌로 묶여 있기 때문에 전략을 여러 개 운영한다면 데이터베이스를 이용하여 어느 전략에서 접수한 주문인지, 보유 중인 종목인지를 구분해서 전략별로 관리할 수 있도록 구현해야 합니다.

이외에도 로깅(logging) 처리가 있으면 유용합니다. 로깅이란 이벤트를 기록하는 것이라고 생각하면 좋습니다. 현재는 시스템에서 에러가 발생하면 알림으로 에러가 발생했다는 사실은 알 수 있지만, 에러가 발생하기까지 어느 단계들을 거쳤는지 확인하기는 어려울 수 있습니다. 따라서 시스템을 운영 및 개발하며 발생하는 일들을 기록하려고 로깅 처리를 넣는다면 혹시 모를 에러가 발생했을 때 원인을 더 수월하게 찾을 수 있을 것입니다.

이 책으로 파이썬 자체를 처음 접한 사람도 있고, 파이썬은 알고 있지만 증권사 API를 이용한 자동매매 프로그램 개발처럼 뭔가 유의미한 프로젝트를 경험하고 싶었던 사람도 있었을 것입니다. 목적이 무엇이든 이 책이 원하는 바를 이루는 데 조금이나마 도움이 되었길 바랍니다.

마지막으로 당부하고 싶은 점은 책 머리말에서 언급한 것처럼 제공되는 예제 코드 및 전략은 어디까지나 프로그램을 구성하는 방법을 학습하는 참고용이므로 이를 바탕으로 하여 여러분만의 매매 전략을 개발해야 합니다. 지면 관계상 많은 이야기를 할 수는 없지만 혹시 도움이 필요하거나 좀 더 많은 이야기를 나누고 싶다면 필자 블로그를 이용합니다.

URL https://jsp-dev.tistory.com

끝으로 이 책을 보는 모든 독자의 건승을 진심으로 바랍니다. 감사합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.