파이썬/백테스팅

백테스팅 연습

대전집주인 2024. 3. 23. 15:54
728x90
SMALL

 

 

vectorized 백테스팅 - 몇년치를 모아서 한번에 벡터처리(속도 면에서 좋다.)

event-base 백테스팅 - 하루하루 이벤트들을 시물레이션화(좀더 실전성에 좋다.)

투입되는 시간/자원

금융데이터 수집 : 40%

데이터 전처리/분석 : 30%

백테스팅 : 20%

기타 : 10%

python -m notebook

pandas series는 Data의 '순서'가 아니라 index label이 자동으로 정렬되어 연산이 진행됨!(리스트보다는 딕셔러니 개념)

# 하나의 cell에서 multiple output을 출력을 가능하게 하는 코드

from IPython.core.interactiveshell import InteractiveShell

InteractiveShell.ast_node_interactivity = "all"

import FinanceDataReader as fdr

# 삼성전자

df1 = fdr.DataReader("005930", '2018-01-02', '2018-10-30')

# KODEX 200 (ETF)

df2 = fdr.DataReader("069500", '2018-01-02', '2018-10-30')

과거 데이터로 nan데이터 채워넣기

new_df2.fillna(method="ffill")

quantile - serires와 같음

value_counts() 는 NAN 취급안함

n개중에 사이즈 정의

# PER이 가장작은 100개중에서, 그 중에서 당기순이익이 가장 큰 5개 종목의 데이터

df.nsmallest(100, "PER(배)").nlargest(5, '당기순이익(억원)')

정렬

df.sort_values(

['순이익률(%)', 'EPS(원)'],

ascending=[True, False]

).head()

필터

df.filter(like="P").head()

df.filter(regex="P\w+R").head()

df.get_dtype_counts() 대신 df.dtypes.value_counts() 사용 데이터타입 개수구하는 함수

728x90
LIST