2022.10.19 - [개발기록] - 주식 단타 전략 모니터링 시스템 개발 일지 - 0. 개요
2022.10.19 - [개발기록] - 주식 단타 전략 모니터링 시스템 개발 일지 - 1. 주식 가격 조회
2022.10.19 - [개발기록] - 주식 단타 전략 모니터링 시스템 개발 일지 - 2. 매수 기준 감지
2022.10.19 - [개발기록] - 주식 단타 전략 모니터링 시스템 개발 일지 - 3. 단기 기술적 지표 백테스팅
2022.10.24 - [개발기록] - 주식 단타 전략 모니터링 시스템 개발 일지 - 4. 카카오톡 API 나에게 메세지 보내기
주식 가격 조회, 매수 기준 감지, 카카오톡 API가 준비가 되었다면, 이제 자동 감지 프로그램을 구축할 차례다.
import FinanceDataReader as fdr
import numpy as np
import pandas as pd
개발에 필요한 패키지를 import 해주고
df_krx = fdr.StockListing('KRX')
kospi_data = df_krx[df_krx["Market"].str.contains("KOSPI")]
kospi_data = kospi_data[~kospi_data["Sector"].isna()]
Kospi 종목만 가져온다.
kospi_200_list = pd.read_csv("./ETF_Tiger/TIGER_200.csv",index_col = 0 )
200개 종목만 가져오기 위해 Tiger 200에 포함되는 종목만 뽑았다.
kospi_data = kospi_data[kospi_data["Name"].isin(kospi_200_list[kospi_200_list["Symbol"]==102110].STK_NM_KOR)]
전체 종목 중 200개 기업으로 조건문을 걸어 뽑아낸다.
199개가 뽑혔다.(1개는 어디로 갔지..)
이제 전날의 가격을 기준으로 매수 기준가를 만들기 위해 Range를 계산해야한다.
Range는 전날 고가 - 저가임으로 전날의 가격 정보를 수집한다.
t_date = "2022-10-24"
before_price = None
for t_i2 in kospi_data["Symbol"]:
t_n = kospi_data[kospi_data["Symbol"]==t_i2]["Name"].values[0]
price_data = fdr.DataReader(t_i2, t_date,t_date)
price_data.insert(0,"Symbol",t_i2)
price_data.insert(0,"Name",t_n)
before_price = pd.concat([before_price,price_data.tail(1)],axis = 0)
before_price["range"] = before_price["High"] - before_price["Low"]
뽑은 199개 종목을 개별로 반복문을 돌려서 가격 정보를 수집하고 마지막에 range값을 계산해주면,
이런 테이블이 만들어진다.
글을 작성하는 날이 10월 25일이므로 전날인 24일 데이터를 뽑았다.
이제 실시간으로 조회하기 위한 준비가 되었다.
while True:
for t_i in kospi_data["Symbol"]:
t_n = kospi_data[kospi_data["Symbol"]==t_i]["Name"].values[0]
price_data = fdr.DataReader(t_i, t_date).tail(1)
price_data.insert(0,"Symbol",t_i)
price_data.insert(0,"Name",t_n)
target_band = before_price[before_price["Symbol"]==t_i]["range"].values[0]
price_data["Price_stand"] = price_data["Open"] + int(target_range*1.5)
base_price = price_data["Price_stand"].values[0]
current_price = price_data["Close"].values[0]
if current_price >= base_price:
print(t_n, current_price, base_price,target_band)
내가 구현한 코드이다.
먼저 지속적으로 반복할 수 있게 while문을 걸어주고 모든 종목에 대해 반복하도록 for문을 넣었다.
전략은 앞서 소개한 글과 동일하게 구현했다.
전날 range의 1.5배가 되는 가격을 기준가로 설정해 두고,
현재 가격이 기준 가격을 넘어설 때 시그널을 print문을 통해 종목과 현재가, 기준가, range를 출력해준다.
10월 25일 1시 42분 코드를 실행해보니
DB하이텍 43700 42375 750
삼성전자 58300 58200 800
두 개 기업이 나왔다.
코드가 정상적으로 실행되고 있는 것 같다.
기본적인 감지 코드는 구현이 되었다.
그럼 이제 생각해 봐야 할 부분을 몇 가지 나열해보면
1. 날짜가 바뀔 때마다 전날 데이터를 새로 수집해야 하는지
2. 주식 시장이 열릴 때 일일이 실행시켜주어야 하는지
3. 실행시켰을 때 반복적으로 같은 종목이 출력되는 부분
4. 실행 내역과 모니터링 내역의 로그 기록
5. 카카오톡 API로 나에게 메세지 보내기
6. 카카오톡 API 토큰 자동 갱신
정도가 될 것 같다.
한 글에 담기에 내용이 많아 다음 글부터 하나하나 풀어보겠다.
'개발일지 > 주식 단타 전략' 카테고리의 다른 글
7. 주식 단타 전략 모니터링 시스템 - 파이썬 자동 감지 프로그램(3) (0) | 2022.10.28 |
---|---|
6. 주식 단타 전략 모니터링 시스템 - 파이썬 자동 감지 프로그램(2) (0) | 2022.10.25 |
4. 주식 단타 전략 모니터링 시스템 - 카카오톡 API 나에게 메세지 보내기 (0) | 2022.10.24 |
3. 주식 단타 전략 모니터링 시스템 - 단기 기술적 지표 백테스팅 (0) | 2022.10.19 |
2. 주식 단타 전략 모니터링 시스템 - 매수 기준 감지 (2) | 2022.10.19 |
댓글