每日盘中 return

Intraday daily return

我是 python 的新手,我需要你们的帮助! 我的数据结构

此数据是从 2001/01/02 到 31/12/2019 5 分钟的盘中数据。从数据中可以看出,0表示日期,2表示股票价格。 每天,比如 2001/01/02 有 79 个观测值。 首先,我需要创建一个每日 return 作为新栏目。通常我正在处理每日数据,每日日志 return 如下

def lr(x):
return np.log(x[1:]) - np.log(x[:-1])

如何根据 5 分钟的数据为每日 return 创建新列。

如果您将数据加载到 pandas.DataFrame 中,您可以使用 df.groupby(),然后应用您的 lr 函数进行最小的更改:

df = pd.read_excel('path/to/your/file.xlsx', header=None, 
                   names=['Index', 'Date', 'Some_var', 'Stock_price'])

不过,关键是要决定您希望如何从 5 分钟的数据中生成每日价值。我不是股票专家,但我猜您想使用每天的最后一个值来表示股票价值。如果是这样,您可以使用

daily_values = df.groupby('Date')['Stock_price'].agg('last')

然后应用你的 lr 函数得到 returns

lr(daily_values)