Pine Script如何检测均线触碰跌破及K线对应EMA值
Pine Script 回撤入场误判修复实现
问题说明
原有入场判断逻辑仅校验「最近5根K线最低价 < 当前K线的EMA100数值」,未校验回溯周期内K线是否在自身生成时点真实跌破对应EMA,因此会触发无效入场信号。
有效入场的前置校验要求:最近5根K线中,至少存在1根K线的最低价低于该K线收盘时点计算出的EMA100值。
实现代码
// 计算100周期指数移动平均线 ema100 = ta.ema(close, 100) // 校验最近5根K线是否存在有效回撤跌破对应时点EMA valid_pullback = ta.lowest(low < ema100, 5) // 整合原有入场条件,输出有效多头入场信号 long_entry_signal = valid_pullback and CrossUp and Uptrend
逻辑说明
low < ema100为单K线判断规则,逐根返回布尔结果:当前K线最低价是否小于该K线对应时点的EMA100数值ta.lowest(low < ema100, 5)会遍历最近5根K线的判断结果,只要周期内存在任意1根K线满足跌破条件,就返回true;如果5根K线全部未跌破自身对应EMA,则返回false,直接过滤掉误判场景
兼容提示:若使用Pine Script v4及更早版本,布尔类型无法直接传入
ta.lowest()函数,可替换为兼容写法:valid_pullback = ta.lowest(ta.barssince(low < ema100), 5) < 5,判断逻辑完全一致。
内容的提问来源于stack exchange,提问作者Dev The Hall
相关产品推荐
相关产品推荐

