chore: 백테스트 코드 주석 및 bt 라이브러리 제거
This commit is contained in:
parent
4c9908a7ac
commit
5d204e0bba
@ -3,7 +3,6 @@ attrs==25.3.0
|
|||||||
bcrypt==4.3.0
|
bcrypt==4.3.0
|
||||||
beautifulsoup4==4.13.3
|
beautifulsoup4==4.13.3
|
||||||
blinker==1.9.0
|
blinker==1.9.0
|
||||||
bt==1.1.0
|
|
||||||
cachetools==5.5.2
|
cachetools==5.5.2
|
||||||
captcha==0.7.1
|
captcha==0.7.1
|
||||||
certifi==2025.1.31
|
certifi==2025.1.31
|
||||||
|
|||||||
@ -1,48 +1,48 @@
|
|||||||
import bt
|
# import bt
|
||||||
import matplotlib.pyplot as plt
|
# import matplotlib.pyplot as plt
|
||||||
|
#
|
||||||
import pandas as pd
|
# import pandas as pd
|
||||||
|
#
|
||||||
from db.common import DBManager
|
# from db.common import DBManager
|
||||||
import streamlit_quant.strategy.multi_factor as multi_factor
|
# import streamlit_quant.strategy.multi_factor as multi_factor
|
||||||
import streamlit_quant.strategy.magic_formula as magic_formula
|
# import streamlit_quant.strategy.magic_formula as magic_formula
|
||||||
|
#
|
||||||
|
#
|
||||||
qc = DBManager()
|
# qc = DBManager()
|
||||||
mf = multi_factor.get_multi_factor_top(qc, 20)
|
# mf = multi_factor.get_multi_factor_top(qc, 20)
|
||||||
magic_formula = magic_formula.get_magic_formula_top(20)
|
# magic_formula = magic_formula.get_magic_formula_top(20)
|
||||||
|
#
|
||||||
codes = ','.join(magic_formula['종목코드'].array)
|
# codes = ','.join(magic_formula['종목코드'].array)
|
||||||
price = qc.get_price_list_by_code(codes)
|
# price = qc.get_price_list_by_code(codes)
|
||||||
|
#
|
||||||
# price = price.set_index(['날짜'])
|
# # price = price.set_index(['날짜'])
|
||||||
# price.rename(columns={"날짜": "Date"})
|
# # price.rename(columns={"날짜": "Date"})
|
||||||
price["Date"] = pd.to_datetime(price["날짜"])
|
# price["Date"] = pd.to_datetime(price["날짜"])
|
||||||
|
#
|
||||||
pivot_df = price.pivot(index="Date", columns="종목코드", values="종가")
|
# pivot_df = price.pivot(index="Date", columns="종목코드", values="종가")
|
||||||
|
#
|
||||||
# print(pivot_df.tail)
|
# # print(pivot_df.tail)
|
||||||
|
#
|
||||||
strategy = bt.Strategy("Asset_EW", [
|
# strategy = bt.Strategy("Asset_EW", [
|
||||||
bt.algos.SelectAll(), # 모든 데이터 사용
|
# bt.algos.SelectAll(), # 모든 데이터 사용
|
||||||
bt.algos.WeighEqually(), # 동일 비중 투자
|
# bt.algos.WeighEqually(), # 동일 비중 투자
|
||||||
bt.algos.RunMonthly(), # 매 월말 리밸런싱
|
# bt.algos.RunMonthly(), # 매 월말 리밸런싱
|
||||||
bt.algos.Rebalance() # 계산된 비중에 따라 리밸런싱
|
# bt.algos.Rebalance() # 계산된 비중에 따라 리밸런싱
|
||||||
])
|
# ])
|
||||||
|
#
|
||||||
# 가격 데이터 중 시작 시점이 모두 다르므로, dropna() 함수를 통해 NA를 모두 제거하여 시작 시점을 맞춤
|
# # 가격 데이터 중 시작 시점이 모두 다르므로, dropna() 함수를 통해 NA를 모두 제거하여 시작 시점을 맞춤
|
||||||
pivot_df.dropna(inplace=True)
|
# pivot_df.dropna(inplace=True)
|
||||||
|
#
|
||||||
# 백테스트 생성
|
# # 백테스트 생성
|
||||||
backtest = bt.Backtest(strategy, pivot_df)
|
# backtest = bt.Backtest(strategy, pivot_df)
|
||||||
|
#
|
||||||
# 백테스트 실행
|
# # 백테스트 실행
|
||||||
result = bt.run(backtest)
|
# result = bt.run(backtest)
|
||||||
# prices: 누적 수익률이 데이터프레임 형태로 나타나며, 시작 시점을 100으로 환산하여 계산
|
# # prices: 누적 수익률이 데이터프레임 형태로 나타나며, 시작 시점을 100으로 환산하여 계산
|
||||||
# to_returns: 수익률 계산
|
# # to_returns: 수익률 계산
|
||||||
# print(result.prices.to_returns())
|
# # print(result.prices.to_returns())
|
||||||
|
#
|
||||||
result.plot(figsize=(10, 6), legend=False)
|
# result.plot(figsize=(10, 6), legend=False)
|
||||||
plt.show()
|
# plt.show()
|
||||||
|
#
|
||||||
result.display()
|
# result.display()
|
||||||
Loading…
x
Reference in New Issue
Block a user