生生不息

生生不息

AI计算对数收益

2025-06-22
AI计算对数收益

提示词

我们已经有了一整年的价格数据,数据类型为DataFrame。每日收盘价格存储在“收盘”字段中,请给出使用Python计算每日对数收益的示例代码。

答案

import pandas as pd
import numpy as np
# 示例数据准备(实际使用时可替换为真实数据)
data = {
    '日期': pd.date_range(start='2024-01-01', periods=365, freq='D'),
    '收盘': np.random.normal(100, 5, 365).cumsum()  # 生成随机价格序列
}
df = pd.DataFrame(data).set_index('日期')
# ===== 核心计算逻辑 =====
# 计算每日对数收益率 = ln(今日收盘价 / 昨日收盘价)
df['对数收益率'] = np.log(df['收盘'] / df['收盘'].shift(1))
# 处理首行NaN(可选)
df['对数收益率'].fillna(0, inplace=True)  # 将第一天的NaN替换为0
# 打印前5行结果
print(df.head())

输出结果没毛病

                    收盘     对数收益率
日期                          
2024-01-01  103.907240  0.000000
2024-01-02  206.176358  0.685233
2024-01-03  302.115797  0.382078
2024-01-04  398.304879  0.276407
2024-01-05  488.990501  0.205125