多重股票组合收益与再平衡

2024-10-06 12:35:43 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个投资组合(投资组合中包括一些股票),在特定的日期我需要重新平衡-这意味着投资组合的组成发生了变化。 Dataframe包含列['Names';'Date_rebalance';'Weights']

然后我有另一个大的数据框,上面有所有可能股票的每日回报。 我需要每天提取投资组合回报。你知道吗

因此,当再平衡日期发生时,下一天的投资组合回报率是sumproduct(权重;回报率仅适用于那些公司)。计算每日收益。你知道吗

stock_return=prices.apply(lambda x: x/x.shift(1)-1)

我希望有一份每日投资组合收益表


Tags: 数据dataframedatereturnnamesstock公司收益
2条回答

在你的大数据框上,你需要过滤,使之与你的投资组合相匹配。所以使用.isin()

df_select = df_big.loc[df_big['name'].isin.[df_port['name'],:]

dfèu select现在是一个数据帧,只包含您的股票日值。为了获得每日收益,有一个内置函数pct_return()。(#默认为一个期间)

假设你的收盘价列叫做“收盘价”。然后根据每日回报创建一个新的列。你知道吗

df_select['return'] = df['Close'].pct_return()  

这将给你的股票和百分之日回报值的数据框。你知道吗

df_unique_dates是再平衡应该发生的日期。我已经为stock_return中的每只股票做了回报,但在每个再平衡日,我只能选择那些出现在投资组合list_stocks中的股票

    for i in range(len(df_unique_dates)):
    list_stocks=dataset.Name.loc[df_unique_dates[i]]
    for j in range(len(stock_return)):
        if stock_return.index[j]>df_unique_dates[i] and stock_return.index[j]<=df_unique_dates[i+1]:
             stock_return['portfolio']=0.1*stock_return[list_stocks].sum(axis=1)
stock_return

相关问题 更多 >