如何修正TradingView中Net Income YoY指标的偏移与显示问题?
解决TradingView Net Income同比变动指标的两个问题
针对你代码中的两个问题,以下是具体修改方案和解释:
问题1:数据点与内置Net Income指标右移
原因:request.financial默认使用barmerge.lookahead_off,会将财务数据对齐到报告期结束后的下一根K线;同时手动指定timeframe='3M'可能和图表时间框架冲突,导致错位。
解决方法:
- 移除手动指定的
timeframe参数,让指标适配当前图表的时间框架 - 在
request.financial中添加barmerge.lookahead_on参数,确保数据对齐到报告期对应的K线位置
问题2:非光标位置显示0
原因:当没有足够的历史财务数据时,item[4]会返回空值(na),此时计算出的chg_pct会变成0;且默认plot会将na值填充为0显示。
解决方法:
- 增加空值判断,仅当当前和4期前的Net Income数据都存在时才计算同比变动,否则返回
na - 给
plot添加gap=true参数,隐藏无数据段的连线,仅在有有效数据的位置显示点
修改后的完整代码
//@version=6 indicator("NET_INCOME YoY", overlay = false) import TradingView/ta/10 // 请求季度Net Income数据,设置lookahead确保对齐报告期K线 item = request.financial(syminfo.tickerid, "NET_INCOME", "FQ", barmerge.lookahead_on) // 仅当前后两期数据都有效时计算同比变动 chg_pct = na(item) or na(item[4]) ? na : (item - item[4]) / math.abs(item[4]) * 100 // 绘制带钻石标记的阶梯线,无数据段隐藏连线 plot(chg_pct, style = plot.style_stepline_diamond, gap=true)
内容的提问来源于stack exchange,提问作者dharmatech
相关产品推荐
相关产品推荐

