Pine Script中数据不足3个月时如何计算平均成交量?
解决Pine Script新股成交量平均显示NaN的问题
要实现交易天数不足63天时用已有K线计算平均成交量,核心是先获取当前品种的已交易K线总数,再动态调整EMA计算周期,具体修改如下:
完整代码示例
// 获取已交易的K线总数(bar_index从0开始计数,加1得到实际数量) totalTradingDays = bar_index + 1 // 动态确定EMA周期:有63天及以上数据用63,否则用实际已交易天数 targetPeriod = math.min(totalTradingDays, 63) // 计算日均成交量EMA AvgVol = ta.ema(volume, targetPeriod) // 表格单元格显示逻辑 table.cell(infoDisplay, 0, 3, 'Vol ' + str.tostring(AvgVol, format.volume), bgcolor = AvgVolCondition, text_size = size.small)
关键逻辑说明
totalTradingDays = bar_index + 1:通过bar_index获取当前K线的索引值,加1后得到该品种已完成交易的K线总数。targetPeriod = math.min(totalTradingDays, 63):取已交易天数和63的较小值,确保当K线数量不足63根时,用实际存在的天数计算EMA,避免出现NaN。
内容的提问来源于stack exchange,提问作者Se99jmk
相关产品推荐
相关产品推荐

