-
[파이썬/백테스트/적립식] 매달 비트코인을 10만원씩 구입했다면?Python/파이썬과 주식 2025. 2. 19. 20:54반응형
2018년부터 매달 비트코인을 10만원씩 적립했다면...
from datetime import datetime import FinanceDataReader as fdr import matplotlib.pyplot as plt import pandas as pd buy_money = 100_000 start_date = datetime.strptime('2018-01-01', '%Y-%m-%d') end_date = datetime.strptime('2025-01-01', '%Y-%m-%d') df = fdr.DataReader('BTC/KRW', start_date, end_date) df = df[(start_date <= df.index) & (end_date > df.index)] close_sr = df['Adj Close'].resample('ME').last() money_sr = pd.Series([buy_money] * len(close_sr), index=close_sr.index) money_cumsum = money_sr.cumsum() btc_num = money_sr / close_sr btc_cumsum = btc_num.cumsum() btc_cumsum_KRW = btc_cumsum * close_sr print('[', df.index[0].date(), '~', df.index[-1].date(), ']', f"{money_cumsum.iloc[-1]:,} => {btc_cumsum_KRW.iloc[-1]:,.0f} / " f"ROI: {btc_cumsum_KRW.iloc[-1] / money_cumsum.iloc[-1]:.2f}" ) plt.plot(btc_cumsum_KRW.index, btc_cumsum_KRW, label='backtest', color='violet') plt.plot(money_cumsum.index, money_cumsum, label='cumulative', color='b') plt.legend(loc='upper left') plt.show()
결과는?
[ 2018-01-01 ~ 2024-12-31 ] 8,400,000 => 72,315,229 / ROI: 8.61
2020년부터 시작했다면?
[ 2020-01-01 ~ 2024-12-31 ] 6,000,000 => 27,393,674 / ROI: 4.57
월복리 연리 52~53% 정도?
반응형