如何在图表上标记15日新低K线的信号点?
15日新低信号标记逻辑验证与代码修正
你的需求是在K线创出15日新低时显示信号点,但原代码存在逻辑问题,导致信号无法正常触发,以下是具体分析和修正方案:
原代码核心问题
原代码中ta.lowest(bars_back)默认会包含当前K线的低点,因此tl < ll这个条件永远无法成立——因为ll已经是包含当前K线在内的15日最低值,当前低点不可能比它更低,自然不会显示标记。
另外,tl = ta.lowest(source=low, length=1)属于冗余代码,length=1的lowest结果就是当前K线的low,直接使用low即可。
修正后的代码
//@version=5 indicator('15日新低信号', overlay=true) bars_back = input(15, title='回溯K线数量') // 获取过去bars_back根K线(不含当前)的最低点 prev_ll = ta.lowest(bars_back)[1] // 判断当前K线低点是否低于之前的bars_back日最低 is_new_low = low < prev_ll // 在符合条件的K线下方标记信号 plotchar(is_new_low, char='•', color=color.fuchsia, size=size.tiny, location=location.belowbar)
关键逻辑说明
ta.lowest(bars_back)[1]:通过[1]引用上一根K线的计算结果,确保我们比较的是当前K线之前15根K线的最低点,这样当前K线的低点如果低于这个值,就真正创出了15日新低。is_new_low变量清晰定义了触发条件,提升了代码可读性。
内容的提问来源于stack exchange,提问作者Frei und Schön
相关产品推荐
相关产品推荐

