每日盘中 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)
我是 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)