Page 8 -
P. 8
이제부터 본격적으로 시스템 트레이딩 프로젝트를 진행하겠습니다. 이 장의 절 제목을 훑어보면
알겠지만, 데이터베이스 사용 및 유니버스 구성(크롤링) 등 지금까지 다루지 않았던 부분까지 이
용하여 프로젝트를 진행합니다. 이렇게 갑자기 등장하는 어려운 내용들 때문에 다소 어렵다고 느
낄 수도 있지만, 여기서 소개하는 프로젝트를 발전시키거나 응용하는 데 데이터베이스나 유니버
스 구성 부분이 꼭 필요하다고 판단했습니다. 동시에 코드도 길어질 수밖에 없는데, 지금까지 한
것처럼 천천히 흐름을 파악하면서 살펴본다면 충분히 해낼 수 있으리라 믿습니다.
5.1 프로젝트 구조 PYTHON AUTO TRADING SYSTEM
프로젝트의 전체 구조를 살펴보겠습니다.
그림 5-1 실전 프로젝트 구조 설명
[실행부] [전략부] [유틸부]
Kiwoom.py
호출 호출 db_helper.py
main.py RSIStrategy.py
make_up_universe.py
...
왼쪽에 보이는 실행부의 main.py 파일은 전략을 호출하는 영역입니다. 사용할 전략을 호출하는
용도로 main.py 코드를 구성합니다. main에서 호출해서 사용하는 전략부인 RSIStrategy.py 파
일은 시스템 동작에 필요한 기능을 모아 놓은 클래스입니다. 시스템 동작에 필요한 기능들을 전략
내부에서 모두 구현하는 것이 아니라 분리할 수 있는 영역은 유틸부(Utility)로 분리했습니다. 이렇
게 하면 다수 전략을 운영할 때 전략부마다 유틸을 호출하여 사용할 수 있습니다.
유틸에 들어가는 모듈을 소개하면, 3장에서 만든 Kiwoom API를 제어하는 기능을 담은
Kiwoom.py 파일, 그리고 앞으로 등장할 데이터베이스 제어 역할을 하는 db_helper.py 파일,
유니버스 구성 역할을 하는 make_up_universe.py 파일 등이 들어 있습니다. 그림 5-2와 같이
프로젝트 구조에 새 모듈들을 추가합니다.
296
주식매매_05.indd 296 2021-09-30 오후 3:20:42