You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

指标信号异常: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)

关键修改说明

  1. 精准交易日识别:用ta.newbar(timeframe.period="D")判断新交易日,每日重置信号触发标记,彻底避免跨交易日的状态残留
  2. 完整突破覆盖:重新定义突破条件,包含影线(high/low)、实体开盘价(open)、实体收盘价(close)三种触及阈值的场景,支持等于情况
  3. 首次信号控制:用var变量持久化当日触发状态,确保同一交易日内仅触发一次信号,比原逻辑更可靠

内容的提问来源于stack exchange,提问作者marcq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 02:45:29