# 간단한 모멘텀 전략 모의투자 (LS) KOSDAQ 지수의 이동평균선과 개별 종목의 모멘텀을 활용하는 전략을 구현하고, LS(구 이베스트투자)증권 모의투자 환경에서 검증해보도록 하겠습니다. ## 전략 만들기 임의의 이름을 가진 디렉토리(폴더)를 만듭니다. 이 예제에서는 `example`이라는 디렉토리를 만들어 사용하겠습니다. ```bash $ mkdir example $ cd example ``` 이제 파이썬 가상환경을 만듭니다. ```bash $ python -m venv .venv $ source .venv/bin/activate ``` ```{note} 윈도우에서는 .venv\Scripts\activate 또는 .venv\Scripts\activate.bat 실행 ``` 전략 실행에 필요한 패키지는 `requirements.txt` 파일에 나열합니다. ``` pyqqq>=0.12.117 ``` 이후, 패키지를 설치합니다. ```bash $ pip install -r requirements.txt ``` ### 환경변수 모의투자 계좌의 API 정보를 `.env` 파일에 저장합니다. ``` EBEST_APP_KEY= EBEST_APP_SECRET= ``` ### 실행 설정 `app.yaml` 파일을 생성하여 실행 설정을 지정합니다. 이번 전략 구현은 `Hook` 을 활용하도록 하겠습니다. ```yaml executor: hook ``` ### 전략 코드 간단한 모멘텀 전략을 구현한 샘플 코드입니다. 샘플 코드는 `simple_momentum.py`로 저장합니다. ```{literalinclude} ../../../../examples/user_guide/simple_momentum.py ``` 이 전략의 주요 특징은 다음과 같습니다: #### 매수 조건 - KOSDAQ 지수의 종가가 3일, 5일, 10일 이동평균선 중 하나라도 높으면 매수 시그널 - 거래대금 기준 상위 5% 종목들 중에서 4일간의 종가 변동률이 높은 상위 20개 종목을 매수 #### 매도 조건 - 1일 이상 보유한 종목은 다음날 시작가에 매도 - 장중 3% 이상 수익 발생 시 익절 ### 디렉토리 구조 최종적으로 `example` 디렉토리 구성을 보면 다음과 같습니다. ``` . ├── .env ├── .venv ├── app.yaml ├── simple_momentum.py └── requirements.txt ``` ## PC에서 실행하기 전략 코드에 문제는 없는지 배포하기 이전에 PC에서 실행하여 봅니다. `Hook` 방식은 python 으로 실행이 되지 않고, `qqq` 명령줄 도구를 사용해야 합니다. ```bash $ qqq run ./simple_momentum.py ``` 실행 시 로그를 통해 주문 현황, 포지션, 계좌 정보 등을 확인할 수 있습니다. ## 배포하기 `qqq deploy` 명령어를 사용해 배포할 수 있습니다. 위 명령어를 실행하면 디렉토리의 모든 파일을 압축하여 업로드 합니다. ```bash $ qqq deploy ./simple_momentum.py Deploying ./simple_momentum.py as simple_momentum Uploading ./simple_momentum.py to GCS bucket ... ```