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

请求修复Pinescript突破策略:优化高点交叉标记逻辑

解决方案(针对需求2)

以下是修改后的代码,实现“突破信号间隔至少4个交易时段”的要求:

// 计算20周期前高(延迟1周期,避免未来函数)
high20 = ta.highest(high, 20)[1]

// 基础突破逻辑:当前收盘价突破前高,且前4个周期均未突破该前高
breakoutCondition = close >= high20 and close[1] <= high20 and close[2] <= high20 and close[3] <= high20 and close[4] <= high20

// 记录上一次信号的K线位置,var关键字确保变量值持续保存
var int lastSignalBar = na
// 信号触发条件:满足突破逻辑,且距离上一次信号至少4个周期(首次信号无前置判断)
signalCondition = breakoutCondition and (ta.barssince(lastSignalBar) >= 4 or na(lastSignalBar))

// 更新上一次信号的位置
if signalCondition
    lastSignalBar = bar_index

// 绘制参考线与信号
plot(high20)
plotshape(signalCondition, shape.cross, color=color.orange)

关键修改说明

  1. 修正原代码逻辑错误:原close[1] and close[2]的写法无实际判断意义,改为明确判断前4个周期收盘价均低于等于high20
  2. 添加信号间隔控制:通过ta.barssince(lastSignalBar)计算两次信号的周期差,确保间隔≥4个交易时段,na(lastSignalBar)处理首次信号的初始化情况
  3. 使用var关键字保存上一次信号的索引,避免脚本每次重新运行时重置变量值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 13:35:17