投资者B采用的投资策略是“定投策略”,即从2020年首个交易日在每个交易日均按照当日收盘价对每只股票各购买100股,计算每个交易日投资者B持有每只股票市值的盈亏情况并可视化,再计算每个交易日投资者B投资组合的整体市值盈亏情况并可视化,对数据分析结果进行解释阐述。
现在已经得到了5只股票的每日收盘价数据框,每日以收盘价数据买入100股,然后根据当天收盘价数据表示出股票每日市值,盈亏情况就是今日收盘价减去上一日收盘价乘以股数,总手数是360手。
jqr ndsd lcxx zggj zwzx
Date
2020-01-02 14.31 107.52 28.44 9.88 4.26
2020-01-03 14.36 109.55 29.28 9.83 4.26
2020-01-06 14.63 109.09 29.03 9.75 4.38
2020-01-07 14.74 108.50 28.97 9.79 4.50
2020-01-08 14.60 109.60 27.68 9.56 4.26
... ... ... ... ...
2021-06-24 10.22 467.30 28.21 6.38 6.23
2021-06-25 10.55 476.23 28.38 6.45 6.25
2021-06-28 10.51 493.90 28.47 6.38 6.28
2021-06-29 10.54 508.51 28.02 6.38 6.22
2021-06-30 10.67 534.80 28.13 6.37 6.14
#已经有了5只股票收盘价数据库
shares=pd.DataFrame(0, index=data.index,columns=data.columns)#这是AI给的代码,运行了之后报AttributeError: 'DataFrame' object has no attribute 'DataFrame'错误
portfolio_value=pd.Series()
for date, prices in data.iterrows():
shares.loc[date] += 100
value = (shares * prices).sum(axis=1)
pnl=value-(shares * data.iloc[0]).sum(axis=1)
portfolio_value[date] = value.sum()
daily_returns = pnl.sum() / (shares * data.iloc[0]).sum().sum()
print(portfolio_value)
print(daily_returns)