如何在Pine Script中获取资本支出(Capital Expenditures)的TTM值?
如何在Pine Script中计算资本支出(CAPEX)的TTM值
核心思路
资本支出的TTM值为最近4个完整季度的资本支出总和,和营收TTM的计算逻辑完全一致。由于仅能获取FQ(季度)和FY(年度)数据,我们需要基于季度数据滚动求和,并保持值的连续性直到下一个季度财报更新。
完整Pine Script v5代码
//@version=5 indicator("CAPEX TTM", overlay=false) // 1. 获取季度资本支出(FQ)数据 capex_quarterly = request.financial(syminfo.tickerid, "CAPEX", "FQ") // 2. 识别季度切换节点(用于触发TTM计算) is_quarter_end = ta.change(time.quarter) != 0 // 3. 计算最近4个季度的CAPEX总和(TTM值),仅在季度结束时更新 capex_ttm_calc = ta.sum(capex_quarterly, 4) when is_quarter_end // 4. 保持TTM值连续显示(直到下一个季度更新),和营收TTM展示逻辑一致 capex_ttm = valuewhen(is_quarter_end, capex_ttm_calc, 0) // 绘制TTM曲线(蓝色)和季度CAPEX柱状图(红色) plot(capex_ttm, title="CAPEX TTM", color=color.new(color.blue, 0), linewidth=2) plot(capex_quarterly, title="Quarterly CAPEX", color=color.new(color.red, 0), style=plot.style_columns)
代码说明
- 季度数据获取:通过
request.financial调用官方季度资本支出数据,参数"FQ"指定季度维度 - 季度节点识别:
ta.change(time.quarter)判断K线是否跨季度,确保仅在季度结束时计算TTM - TTM计算逻辑:
ta.sum(capex_quarterly, 4)直接求和最近4个季度的CAPEX值,符合TTM定义 - 连续值展示:
valuewhen将计算出的TTM值延续到下一个季度结束,避免中间出现空值,完全匹配营收TTM的展示效果
特殊情况处理(仅年度FY数据可用时)
如果标的仅提供年度资本支出数据,TTM值等价于最近一个完整财年的CAPEX值,可通过以下代码实现:
capex_annual = request.financial(syminfo.tickerid, "CAPEX", "FY") capex_ttm_annual = valuewhen(ta.change(time.year) != 0, capex_annual, 0) plot(capex_ttm_annual, title="CAPEX TTM (Annual Data)", color=color.green)
内容的提问来源于stack exchange,提问作者X Y
相关产品推荐
相关产品推荐

