자 각각 K가 0.3, 0.7로 바꿔서 놓고 실행해보면 목표가가 0.3일 때 36561.5원, 0.7일 때 36723.5원 으로 바뀌는 것을 볼 수 있다.
K = 0.3
K = 0.5
K = 0.7
\36561.5
\36642.5
\36723.5
이 매수조건에 현재가가 5일 이동평균선과 10일 이동평균선 위에 있어야 한다는 조건이 추가되어 있는데
이 부분이 buy_etf() 함수에서 get_movingaverage() 함수를 불러 이동평균을 구하고 조건을 추가하는식이다.
...
ma5_price = get_movingaverage(code, 5) # 5일 이동평균가
ma10_price = get_movingaverage(code, 10) # 10일 이동평균가 ...
if current_price > target_price and current_price > ma5_price and current_price > ma10_price:
자 그렇다면 이제
1. 무엇을 살 것인가는 ETF 중에서 또는 관심가는 종목 중 골라서 종목코드를 매수대상 종목리스트 symbol_list에 넣어두면 되고
2. 얼마에 살 것인가는 위에 조건처럼 K값과 이동평균선 조건에 따라서 매수하고 장마감에 매도
이런 아주 기초적인 조건으로 매매는 시작할 수 있게 되겠다.
그러고보니 매수대상을 종목리스트에 넣어두는 것은 자동은 아니네 --a
그리고 추가로 설명할 부분이 주문조건과 주문호가가 있는데 프로그램에서는 ETF를 기본으로 하고 있다보니
거래량이 다른 주식대비 많지 않아 비싼 가격을 지불하지 않도록 [최유리 FOK 매수 주문] 방법으로 매수하고
매도는 [최유리 IOC 매도] 방법으로 매도하도록 되어있다.
비록 아직은 매수대상 종목리스트는 수작업으로 하지만 프로그램의 실행은 윈도우가 알아서 실행하도록 해보자.
우선 PC가 켜지는 것은
1) 켜두거나
2) BIOS가 지원한다면 BIOS에서 해야하는데 각 회사마다 다르겠지만
기본적으로 BIOS진입 - Advanced - ACPI Configuration - RTC Alarm Power On 에서 예약 부팅 을 해두면 된다.
그리고 PC가 켜지면 윈도우키 + S 를 누른뒤 "작업 스케줄러"로 검색/실행을 하면 아래와 같이 작업스케줄러가 실행이된다.
그리고 좌측 창의 [작업 스케줄러 라이브러리] 클릭하면 가운데 창이 아래 그림처럼 나오는데 그 창에서
우측 클릭 - 새 작업 만들기
그러면 나타나는 창에서
이름과 설명은 원하는 대로 작성하고 형광펜의 '가장 높은 수준의 권한으로 실행' 에 체크
그리고 트리거 탭으로 가서 '새로만들기' 누른뒤 나타나는 창에서 '매일' '오전 8:20' 그리고 아래에 '사용'에 체크
그럼 트리거가 하나 만들어진다.
그리고 동작탭으로 넘어가서 역시 '새로만들기'
설정의 프로그램/스크립트 에서는 찾아보기 버튼을 누른뒤 python.exe가 있는 폴더에 들어가서 선택해주고
인수추가에는 실행할 python 파일 이름 위 그림엔 AutoConnect.py 시작위치는 AutoConnect.py가 있는 폴더의 경로 그리고 확인을 누르면 된다.
그리고 같은 방법으로 8:30 정도에 AutoTrade.py도 등록해주면 윈도우즈의 작업스케줄러가 알아서 실행한다.
- 지금까지 대부분의 정보는 "파이썬 증권 데이터 분석" 이라는 책의 내용을 보고 정리한 내용이며 일부 현재 동작하지 않는 Slack의 requests 같은 부분은 내가 검색해서 수정하였음을 미리 밝힌다. 그래서 세세한 소스는 직접 책에서 제공하는 github로 링크하였다.
- 현재 나도 아직 이 방식으로 주식거래를 시작하지 않았다. '주식투자자동화' 관련 포스팅은 여기서 끝나는게 아니고
일단 서둘러 해보고 싶은 분들을 위해 1부? 여튼 일단 시작할 수 있는 정도까지 서둘러 포스팅한다.
나는 여기서 종목을 골라서 리스트에 넣는 부분과 K값을 조금씩 조절하고 그에 따른 결과를 자동으로 기록하는 부분까지는 조금 더 프로그램하고 작은 금액이라도 실제 투자해볼 생각이다.
그 부분은 차근차근 여기다 포스팅하고 수익이 나던 손해가 나던 일정 기간 후 역시 결과도 포스팅 해 볼 예정이다.
------------------------------------------------------------------------------------------------------- from pywinauto import application import time import os
os.system('taskkill /IM coStarter* /F /T') os.system('taskkill /IM CpStart* /F /T') os.system('taskkill /IM DibServer* /F /T') os.system('wmic process where "name like \'%coStarter%\'" call terminate') os.system('wmic process where "name like \'%CpStart%\'" call terminate') os.system('wmic process where "name like \'%DibServer%\'" call terminate') time.sleep(5)
14번째줄 (끝에서 두번째줄) userid 에 ID 넣고, pwd에 password 넣고 pwdcert에 인증서암호 넣고
그리고 Autoconnect.py 로 저장하고 실행하면 끝
소스의 설명은 딱히 할게 없다.
11번째 줄까지는 혹시 CREON Plus가 실행하고 있으면 끝내고
5초 대기
CREON Plus 를 실행하고 60초 대기
그리고 이 소스에서 ------------------------------------------------------------------------------------------------------- from pywinauto import application import time import os
os.system('taskkill /IM coStarter* /F /T') os.system('taskkill /IM CpStart* /F /T') os.system('taskkill /IM DibServer* /F /T') os.system('wmic process where "name like \'%coStarter%\'" call terminate') os.system('wmic process where "name like \'%CpStart%\'" call terminate') os.system('wmic process where "name like \'%DibServer%\'" call terminate') time.sleep(5)