퀀트투자 종목 스크리닝 파이썬 코드
본문 바로가기
파이썬으로 만든 것들/퀀트투자

퀀트투자 종목 스크리닝 파이썬 코드

by Squat Lee 2021. 12. 15.

 

저 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
반응형

댓글