개발

[개발] Windows 10에서 작업 스케줄러 사용하여 배치파일 실행시키기

성민석 2021. 10. 13. 00:28

안녕하세요 성민석입니다.

시스템 트레이딩은 정해진 규칙에 따라서 시스템이 매매를 하는데 있습니다. 근데 이러한 시스템을 키는데까지 정말 수고로운 과정이 필요하죠. 물론 Linux 계열에서는 쉘스크립트를 작성하여 crontab을 이용하면 되겠지만 Windows 10에서는 쉘스크립트가 없으니 배치파일로, crontab이 없으니 작업 스케줄러를 활용해야합니다. 

 


배치파일 생성하기

일단 가장 먼저 하셔야할 일은 배치파일을 만드는 일입니다. 실행에 필요한 배치파일은 아래와 같은 형식으로 작성하시면 됩니다. 마우스 우클릭을 하여 메모장을 열어서 아래의 스크립트를 작성하고 trade.bat와 같은 형식으로 저장해주세요. 다만 여기에서 각자 환경에 맞는 폴더 위치와 가상환경의 이름을 넣어주세요.

 

set root=C:\Users\minsuksung\Anaconda3
call %root%\Scripts\activate.bat %root%
call conda activate kiwoom
call cd C:\Users\minsuksung\Workspace\Kiwoom-System-Trading
call python trade.py
pause

 

만약 아직 증권사 API를 활용하기 위한 32비트 가상환경을 만드는 법을 모르시는 분들은 아래 제 포스팅을 참고해주세요.

 

2021.10.01 - [트레이딩/증권사 API] - 증권사 API를 사용하기 위한 32비트 가상환경 만들기

 

증권사 API를 사용하기 위한 32비트 가상환경 만들기

안녕하세요 성민석입니다. 새롭게 블로그를 만들다보니 이전 블로그에서는 다루지 못했던 다양한 컨텐츠를 다뤄보려고 합니다. 제가 지난 1년동안 증권사 API를 사용해보면서 처음에 가장 힘들

minsuk-sung.tistory.com

 

그렇게 스크립트를 작성 완료하시면 아래와 그림과 같이 trade.bat이 완성됩니다. 배치파일에 들어가는 기본적인 문법이나 명령어를 잘 모르시더라도 저를 따라하시면 됩니다. 궁금하신 분들은 이 포스팅이 아닌 다른 포스팅에서 찾아보시길 바랍니다.

 

 

이제 이 배치파일을 더블 클릭해보시면 CMD창이 열리고 기존의 코드가 실행되는 것을 확인하실 수 있습니다. 배치파일을 만드는 과정은 생각보다 과정이 어렵지 않아서 누구나 따라오실 수 있습니다. 

 

 

사실 이렇게 배치파일을 만들지 않아도 스크립트를 돌려야할 가상환경의 python.exe나 pythonw.exe를 이용해서 직접 py 스크립트 파일을 실행시킬 수 있습니다. 하지만 제 경우에는 배치파일을 만드는 편이 더 나은 것 같습니다. 이런 방법이 궁금하신 분들은 아래 링크를 참고해보세요.

 

https://wikidocs.net/93389

 

01) 키움 자동 버전처리 적용하기

[TOC] ## 키움 버전 처리 키움증권의 OpenAPI+는 비주기적으로 업데이트 되는데 이러한 업데이트를 여러분의 PC에 반영하는 과정을 버전처리라고 부릅니다. 키움 ...

wikidocs.net


작업 스케줄러를 이용해 배치파일 실행하기

앞에서 만든 배치파일을 제가 직접 실행시켜주지 않아도 알아서 돌아가게 하기 위한 작업이 필요합니다. 이러한 번거로운 작업을 해주는 게 바로 작업 스케줄러가 할 일입니다. 아래 시작버튼 옆에 돋보기를 누르시고 검색을 하셔서 '작업 스케줄러'를 찾아주세요. 

 

 

이미 제 경우에는 매매와 익일 유니버스를 구하는 여러 스크립트가 등록되어 있습니다. 아마 여러분의 경우는 처음 하시는 분들이라면 저와 달리 없을 거라고 생각됩니다. 그렇기 때문에 오른쪽 작업 만들기를 눌러야 새로운 작업이 생성될 겁니다. 

 

 

이제 새 작업 만들기를 눌렀다면 일반에서 이름은 원하는 작업 이름으로 작성해주세요. 제 경우에는 KiwoomTest로 해봤습니다. 다른 버튼을 가급적이면 누르지 마시고 다음 스텝으로 따라오시길 바랍니다.

 

 

이제 트리거 탭으로 가셔서 새로 만들기를 눌러줍니다. 여기서는 이제 특정 시간이나 날짜가 될때마다 관련된 스크립트를 실행시켜주는 부분입니다. 아래 새로 만들기 버튼을 눌러서 새로운 트리거를 만들어주세요.

 

 

주식 시장은 일반적으로 평일 오전 9시에서 오후 3시반까지 열립니다. 따라서 설정에서 매주를 눌러주시고 저와 같이 월요일부터 금요일까지 모두 체크를 해주세요. 제 경우에는 장전 동시호가가 끝난 이후인 8:45 쯤에 실행시키도록 설정했습니다. 이 시간은 본인이 편한 시간으로 설정하시면 됩니다. 다만 9시 정각에 들어가게 된다면 조금 늦을 수 있으니 미리 들어가시는걸 추천드립니다.

 

 

다음으로 동작탭으로 가신 뒤 새로 만들기를 눌러줍니다. 드디어 여기 부분이 여러분이 앞에서 작성하신 배치파일을 넣어주실 부분입니다. 아래 새로 만들기를 눌러주시고 다음 스텝으로 따라와주세요.

 

 

아래 프로그램/스크립트 부분에서 아까 만드신 배치파일을 추가하시면 완료됩니다. 만약 python.exe나 pythonw.exe와 같은 인터프리터를 직접 넣으신 분들은 인수 추가에 py파일을 그리고 시작 위치를 py파일이 있는 위치로 해주셔야 코드가 정상적으로 돌아갑니다. 제 경우 이걸 놓쳐서 제대로 작업 스케줄러를 활용 못 했었습니다.

 

 

마지막 조건에서는 전원쪽 옵션을 끕니다. 저는 노트북으로 실행하기 때문에 이 옵션을 껐지만 필요에 따라서 끄지 않으셔도 됩니다. 만약 데스크탑으로 시스템을 운영하시는 분들은 이 옵션을 따로 건들지 않아도 될 것 같습니다.

 

 

이 모든 과정을 잘 따라오셨다면 드디어 아래와 같이 새로 만든 작업이 추가되어 있는 것을 확인하실 수 있습니다.

 

 


마지막으로 같이 트레이딩하는 분들과 소통하고 싶습니다.

언제든지 트레이딩이나 인공지능과 관련된 내용을 함께 공유하고 토론하고 싶으시다면 아래의 오픈 카카오톡 링크로 연락주세요.
https://open.kakao.com/me/minsuksung

 

성민석님의 오픈프로필

안암에서 인공지능을 연구하고 있습니다

open.kakao.com

 

728x90
반응형