把A股市场的股票收益率排序十等分然后算涨幅最大的10作为赢家最低的作为输家然后分别构建投资组合画图的python代码
以下是一个可能的实现,使用pandas和matplotlib库:
import pandas as pd
import matplotlib.pyplot as plt
# 读取股票收益率数据
returns = pd.read_csv('stock_returns.csv')
# 计算每支股票的收益率排名百分比
rank_pct = returns['return'].rank(pct=True)
# 将排名百分比分成十等分,并找出涨幅最大的10%和最小的10%
deciles = rank_pct.apply(lambda x: int(x*10)+1)
winners = returns[deciles == 10]
losers = returns[deciles == 1]
# 构建赢家和输家投资组合,并计算累计收益率
winners_portfolio = (1 + winners['return']).cumprod()
losers_portfolio = (1 + losers['return']).cumprod()
# 绘制投资组合曲线
plt.plot(winners_portfolio, label='Winners')
plt.plot(losers_portfolio, label='Losers')
plt.legend()
plt.title('Winners vs. Losers Portfolio')
plt.xlabel('Date')
plt.ylabel('Cumulative Return')
plt.show()
其中,假设股票收益率数据保存在名为stock_returns.csv的CSV文件中,其中第一列为股票代码,第二列为收益率。代码将收益率排名百分比分成十等分,并找出排名最高的10%和最低的10%,然后构建赢家和输家投资组合,并计算其累计收益率。最后使用matplotlib库绘制投资组合曲线
原文地址: http://www.cveoy.top/t/topic/fgXy 著作权归作者所有。请勿转载和采集!