作业

来源: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()

三只股票的夏普比率对比:

http://img.mukewang.com/szimg/60f05dc509b3a0f606400480.jpg

三只股票的日收盘价对比:

http://img.mukewang.com/szimg/60f05dd40933a27906400480.jpg

三只股票的最大回撤对比(窗口期为252个工作日):

http://img.mukewang.com/szimg/60f05e9c0943396806400480.jpg

三只股票应用周四买入、周一卖出的策略累计收益对比:

http://img.mukewang.com/szimg/60f05ea50908f66d06400480.jpg

分析:

  1、隆基股份的夏普比率最高,最大回撤相对也比较低,投资风险更小;

  2、隆基股份的日收盘价虽然波动不是很剧烈,但是应用周四买入,买一卖出的策略,滚动收益更高。


  我通过这次作业复习了本章的一些知识,自己对于有些知识的理解还不透彻。作业不一定正确,请老师和同学们批评指导。感谢。

写回答

1回答

DeltaF

2021-07-20

棒棒哒,祝学习愉快

0
0

程序员理财课 Python量化交易系统实战

打造一个自动交易平台,新手也能提升理财收益

2028 学习 · 416 问题

查看课程

相似问题

作业

回答 1

作业

回答 1

作业

回答 1

作业

回答 1