You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PineScript中引用往期财报EPS值以计算其增长率?

获取往期财年稀释EPS并计算增长率(Pine Script)

要获取往期报告期的稀释每股收益(EARNINGS_PER_SHARE_DILUTED),核心是利用request.financial函数的period_offset参数,指定相对于最新报告期的偏移量,以此获取历史财年的数据。

核心实现逻辑

request.financial的默认period_offset为0,对应最新的财年报告;设置为1则获取上一财年的数据,设置为2则获取前两年的数据,以此类推。

完整示例代码

//@version=5
indicator("EPS变动与增长率计算", overlay=false)

// 获取最新财年稀释EPS(默认period_offset=0)
current_fy_eps = request.financial(syminfo.tickerid, "EARNINGS_PER_SHARE_DILUTED", "FY")
// 获取上一财年稀释EPS(偏移1期)
prev_fy_eps = request.financial(syminfo.tickerid, "EARNINGS_PER_SHARE_DILUTED", "FY", period_offset=1)
// 可选:获取前两年财年EPS(偏移2期)
two_years_ago_eps = request.financial(syminfo.tickerid, "EARNINGS_PER_SHARE_DILUTED", "FY", period_offset=2)

// 计算EPS变动额与同比增长率
eps_change = current_fy_eps - prev_fy_eps
// 避免除数为0的情况,上一期EPS为0时返回na
eps_growth_rate = prev_fy_eps != 0 ? (eps_change / prev_fy_eps) * 100 : na

// 可视化输出
plot(current_fy_eps, title="当前财年EPS", color=color.new(color.green, 0), linewidth=2)
plot(prev_fy_eps, title="上一财年EPS", color=color.new(color.red, 0), linewidth=2)
plot(eps_growth_rate, title="EPS同比增长率(%)", color=color.new(color.blue, 0), display=display.data_window)

// 右上角显示统计数据
var table stats_table = table.new(position.top_right, 2, 3, bgcolor=color.new(color.black, 70))
if barstate.islast
    table.cell(stats_table, 0, 0, "指标", text_color=color.white)
    table.cell(stats_table, 1, 0, "数值", text_color=color.white)
    table.cell(stats_table, 0, 1, "当前财年EPS", text_color=color.green)
    table.cell(stats_table, 1, 1, str.tostring(current_fy_eps, "#.##"), text_color=color.green)
    table.cell(stats_table, 0, 2, "EPS同比增长率(%)", text_color=color.blue)
    table.cell(stats_table, 1, 2, str.tostring(eps_growth_rate, "#.##") + "%", text_color=color.blue)

关键说明

  • period_offset参数:控制获取的报告期偏移量,0=最新财年,1=上一财年,n=前n个财年。
  • 异常值处理:必须判断上一期EPS是否为0,避免计算增长率时出现除以0的错误。
  • 季度数据适配:如果需要计算季度EPS变动,只需将第三个参数从"FY"改为"FQ",同时调整period_offset获取对应季度的历史数据。
  • 数据有效性:部分标的可能缺失历史财年数据,此时request.financial会返回na,可通过na()函数做进一步的异常处理。

内容的提问来源于stack exchange,提问作者user20384302

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 03:48:30