指标信号异常:Wick未触发crossunder/crossover信号求助
解决Pine Script中日内突破信号触发问题(包含等于+每日首次)
你的代码存在两个核心问题导致信号未正确触发:
ta.crossover()/ta.crossunder()是严格交叉逻辑,要求前一根K线未突破阈值、当前K线突破,无法覆盖「直接触及等于」或「实体突破但影线未交叉」的场景- 未针对「每日首次信号」做专门的交易日重置逻辑,仅用
buy and not buy[1]可能会在同一交易日内多次触发(如果后续K线再次满足交叉)
以下是修正后的完整代码,完全匹配你的需求:
//@version=5 indicator("Daily Breakout Signal", overlay=true) // 输入参数 entryPips = input.float(1, title="Entry Pips") showOnlyFirstSignal = input.bool(true, title="Show Only First Daily Signal") delayElapsed = input.bool(true, title="Delay Elapsed") // 保留原有变量逻辑 // 计算每日高低点及突破阈值 dailyHigh = ta.highest(high, ta.barssince(ta.newbar(timeframe.period="D")) + 1) dailyLow = ta.lowest(low, ta.barssince(ta.newbar(timeframe.period="D")) + 1) longPoint = dailyHigh + (entryPips * 10 * syminfo.mintick) shortPoint = dailyLow - (entryPips * 10 * syminfo.mintick) // 识别新交易日 isNewDay = ta.newbar(timeframe.period="D") // 定义突破条件:覆盖影线、实体开盘/收盘价触及或超过阈值(包含等于) longBreakout = high >= longPoint or close >= longPoint or open >= longPoint shortBreakout = low <= shortPoint or close <= shortPoint or open <= shortPoint // 持久化当日信号触发状态,确保每日仅触发一次 var bool longTriggeredToday = false var bool shortTriggeredToday = false // 每日重置触发标记 if isNewDay longTriggeredToday := false shortTriggeredToday := false // 生成最终信号:满足延迟条件+首次突破 buy = delayElapsed and longBreakout and not longTriggeredToday sell = delayElapsed and shortBreakout and not shortTriggeredToday // 更新当日触发标记 if buy longTriggeredToday := true if sell shortTriggeredToday := true // 绘制信号,保留原开关逻辑 plotshape(showOnlyFirstSignal ? buy : (delayElapsed and longBreakout), title='Long Entry', style=shape.triangleup, location=location.belowbar, color=color.green, size=size.tiny) plotshape(showOnlyFirstSignal ? sell : (delayElapsed and shortBreakout), title='Short Entry', style=shape.triangledown, location=location.abovebar, color=color.red, size=size.tiny)
关键修改说明
- 精准交易日识别:用
ta.newbar(timeframe.period="D")判断新交易日,每日重置信号触发标记,彻底避免跨交易日的状态残留 - 完整突破覆盖:重新定义突破条件,包含影线(high/low)、实体开盘价(open)、实体收盘价(close)三种触及阈值的场景,支持等于情况
- 首次信号控制:用
var变量持久化当日触发状态,确保同一交易日内仅触发一次信号,比原逻辑更可靠
内容的提问来源于stack exchange,提问作者marcq
相关产品推荐
相关产品推荐

