저 PBR X 저 DPS 퀀트투자 백테스트를 하고 나서 실제 종목을 스크리닝 할 수 있는 코드를 작성했다.
간단한 코드인데 잘 만든 것 같다. 사실 내가 잘 했다기 보다는 여러 똑똑한 프로그래머들이 만든 모듈을 적절히 사용한 것 밖에 없다.
이 코드로 실제 투자를 했다. 1년을 기다려야 한다. 1년 후에 이 투자 방식이 검증이 되겠지.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
from pykrx import stock
import pandas as pd
import numpy as np
def make_pbr_dps_list(date):
codes = stock.get_market_ticker_list(date, market='ALL')
corp = []
for code in codes:
name = stock.get_market_ticker_name(code)
corp.append([code, name])
df = pd.DataFrame(data=corp, columns=['code', '종목명'])
df = df.set_index('code')
df_f = stock.get_market_fundamental_by_ticker(date, market='ALL')
df_c = stock.get_market_cap_by_ticker(date, market='ALL')
df = pd.merge(df, df_f, left_index=True, right_index=True)
df = pd.merge(df, df_c, left_index=True, right_index=True)
df = df[df['PBR']>0]
df['pbr_rank'] = df['PBR'].rank()
df = df[df['DIV']>0]
df['div_rank'] = df['DIV'].rank()
df = df[df['거래량']>0]
df['total_rank'] = df['pbr_rank'] + df['div_rank']
df = df.sort_values('total_rank')
df = df[:20]
df['리스트기준일'] = np.array([date]*len(df))
print(df)
return df
date = '20211027' #종목선정일
file_name = 'E:\\4.주식투자\\1.Quant List\\퀀트리스트(' + date + ').xlsx'
print(make_pbr_dps_list(date).to_excel(file_name))
|
cs |
728x90
'파이썬(Python) > 퀀트투자' 카테고리의 다른 글
파이썬 퀀트투자 쉽게하기 - 9. 영업일만 가져와서 List로 만들기(주식거래일 구하기) (6) | 2021.12.22 |
---|---|
파이썬 퀀트투자 쉽게하기 - 8. 모듈가져오기 (2) | 2021.12.20 |
퀀트투자 백테스트 코드 (저PBR X 저DPS) (0) | 2021.12.14 |
파이썬 퀀트투자 쉽게 하기 - 7. 파이썬 기초 (4) | 2021.12.13 |
파이썬 퀀트투자 쉽게하기 - 6 파이썬(Python) 설치하기 (2) | 2021.12.03 |
댓글