作业
来源:3-12 【实战】:比较3只股票的夏普指数

树叶1116
2021-07-16
import pandas as pd import matplotlib.pyplot as plt import data.stock as st import strategy.base as stb import strategy.strategy as sts # 定义列表,用于存储三只股票的代码 # 比亚迪:002594 # 宁德时代:300750 # 隆基股份:601012 codes = ['002594.XSHE', '300750.XSHE', '601012.XSHG'] # 定义列表,存放三只股票的夏普比率 sharpes = [] # 创建dataframe,存放三只股票的每日收盘价 daily_closes = pd.DataFrame() # 创建dataframe,存放三只股票的最大回撤,窗口期为252个交易日 max_drawdown = pd.DataFrame() # 创建dataframe,存放三只股票应用周四买,周一卖的交易策略的累计收益 week_period = pd.DataFrame() for code in codes: data = st.get_single_price(code, 'daily', '2018-10-01', '2021-01-01') # print(data.head()) # 计算每只股票的夏普比率 daily_sharpe, annual_sharpe = stb.calculate_sharpe(data) sharpes.append([code, annual_sharpe]) # 获取每日收盘价 daily_closes[code] = data['close'] # 获取最大回撤 max_drawdown[code] = abs(stb.culculate_max_drawdown(data)['max_dd']) # 计算本只股票应用周四买、周一卖的策略的累计收益 week_period[code] = sts.week_period_strategy(code, 'daily', '2018-10-01', '2021-01-01')['cum_profit'] # 可视化三只股票的夏普比率 sharpes = pd.DataFrame(sharpes, columns=['code', 'sharpe']).set_index('code') sharpes.plot.bar(title='Compare Annual Sharpe Ratio') plt.xticks(rotation=15) # 可视化三只股票的每日收盘价 daily_closes.plot(title='Compare Daily Close Price') # 可视化三只股票的年最大回撤 max_drawdown.plot(title='Compare Annual Max Drawdown') # 可视化三只股票采用周四买入,周一卖出的策略的累计收益 week_period.plot(title='Compare Sum Profit') plt.show()
三只股票的夏普比率对比:
三只股票的日收盘价对比:
三只股票的最大回撤对比(窗口期为252个工作日):
三只股票应用周四买入、周一卖出的策略累计收益对比:
分析:
1、隆基股份的夏普比率最高,最大回撤相对也比较低,投资风险更小;
2、隆基股份的日收盘价虽然波动不是很剧烈,但是应用周四买入,买一卖出的策略,滚动收益更高。
我通过这次作业复习了本章的一些知识,自己对于有些知识的理解还不透彻。作业不一定正确,请老师和同学们批评指导。感谢。
写回答
1回答
-
DeltaF
2021-07-20
棒棒哒,祝学习愉快
00