【发布时间】:2018-07-03 15:51:28
【问题描述】:
目前我正在使用带有日期时间字段的数据框来生成不同股票代码的月度回报系列。
return_series=data.groupby([data['Date'].dt.year,data['Date'].dt.month]).apply(monthly_returns)
当前输出看起来像这样,其中元组值为 pnl、capital 和 return。
Date Date
2008 6 (-742.58, 150001.16, -0.495049504951)
7 (123142.08, 299304.14, 41.1427920777)
8 (-5963.05, 426217.67, -1.39906212711)
9 (-137316.34, 868529.72, -15.8102062414)
10 (4503.44, 685906.3, 0.656567814)
我想将元组分成三列(Capital、PnL、Returns)并将日期列更改为显示年、月。
每月返回函数汇总给定月份的符号
defmonthly_returns(df_monthly):
symbols_pnl=df_monthly.groupby(df_monthly['Symbol']).apply(symbol_return) symbols_invested_capital=df_monthly.groupby(df_monthly['Symbol']).apply(symbol_capital)
return(sum(symbols_pnl),sum(symbols_invested_capital),sum(symbols_pnl)/sum(symbols_invested_capital)*100)
输入数据每日头寸值
日期符号位置上一个位置价格执行价格 2008 年 6 月 24 日 ABC 100 0 5 4.85 2008 年 6 月 25 日 EFG 200 150 10 9.8
【问题讨论】:
-
你能告诉我们你的
monthly_returns函数是什么样的吗?此外,一些示例输入数据也会有所帮助。 -
请在您的问题中,而不是作为评论。