Pine Script收盘价突破20周期前高策略无订单问题求助
Pine Script 20周期高点突破策略无订单问题修复方案
问题根因
- 你猜测的高点计算逻辑问题确实存在:
highest(high, 20)默认包含当前K线的高点,要收盘价突破包含当前高点在内的20周期高点,相当于要求收盘价超过当前K线自身的高点,逻辑不可能成立,自然无法触发开仓条件 - 若你使用的是Pine Script v5版本,内置指标函数需要加
ta.前缀,否则代码会直接报错无法运行 - 你代码中引用的
inDateRange变量没有做任何定义,该判断条件永远为假,直接阻断了订单触发
修复后完整代码
//@version=5 strategy("20周期高点突破策略", overlay=true) // 可选:定义回测日期范围,不需要可以删除这段以及对应判断条件 start = timestamp(2023, 1, 1, 0, 0) end = timestamp(2024, 12, 31, 23, 59) inDateRange = time >= start and time <= end // 计算不含当前K线的最近20根K线最高值 oldhigh = ta.highest(high, 20)[1] newhigh = close > oldhigh plot(oldhigh, color=color.blue, title="20周期前高") strategy.entry("Buy", strategy.long, when=newhigh and inDateRange, comment="New High") strategy.close("Buy", when=(close < close[1]), comment="Close")
补充说明
如果不需要限制回测的日期范围,直接把strategy.entry条件里的and inDateRange删掉即可,不需要保留日期定义部分的代码。
内容的提问来源于stack exchange,提问作者poonted
相关产品推荐
相关产品推荐

