图表出现蓝色竖线异常:蜡烛点值检测代码求助
问题原因及解决方法
你的代码运行后出现蓝色竖线,核心原因是部分K线的CandleSize数值突然暴涨,plot默认的连线样式将异常大的数值和前后正常小数值连接,形成了垂直竖线。这种情况通常发生在跳空形成的超大实体K线,或是存在数据异常的K线中。
解决方法
方法1:过滤极端值
通过设置阈值,把超过合理范围的数值替换为na(不绘制),避免异常点影响图表:
BodyRange() => math.abs(close - open) CandleSize = (BodyRange() / syminfo.mintick)/10 // 可根据交易品种调整阈值,这里以100为例 filteredCandleSize = CandleSize > 100 ? na : CandleSize plot(filteredCandleSize)
方法2:修改绘图样式
改用非连线的绘图样式,比如柱状图或散点,避免数值突变形成竖线:
BodyRange() => math.abs(close - open) CandleSize = (BodyRange() / syminfo.mintick)/10 plot(CandleSize, style=plot.style_columns) // 柱状图样式 // 也可使用散点:plot(CandleSize, style=plot.style_circles)
方法3:检查数据有效性
部分品种的历史K线可能存在数据错误,导致实体范围异常。可切换数据来源,或是检查当前交易合约的设置是否正确。
内容的提问来源于stack exchange,提问作者Grisha
相关产品推荐
相关产品推荐

