Pinescript入门级更高低点策略无法生成订单,求技术协助
问题分析与修复方案
你的代码逻辑本身没有核心错误,但可能因为ta.pivotlow()的特性或测试场景原因未触发订单,以下是具体说明和优化后的代码:
核心问题说明
ta.pivotlow(leftleg, rightleg)的返回规则是:只有当某个低点右侧走完rightleg根K线,确认后续没有更低价格时,才会返回该低点的价格。比如你设置rightleg=3,需要等目标低点出现后的第3根K线完成,才会识别这是有效pivot low,此时才会触发后续逻辑。如果图表中还没出现两个满足“新pivot low高于前一个”的确认信号,自然不会生成订单。
优化后的代码
//@version=5 strategy("HigherLows", overlay=true, margin_long=100, margin_short=100) int leftleg = input(3, "左侧确认K线数") int rightleg = input(3, "右侧确认K线数") // 存储上一个已确认的pivot low价格 var float prev_pivot_low = na // 获取当前已确认的pivot low价格 current_pivot_low = ta.pivotlow(leftleg, rightleg) if not na(current_pivot_low) // 存在前一个pivot low且当前价格更高时开多仓 if not na(prev_pivot_low) and current_pivot_low > prev_pivot_low strategy.entry("Long", strategy.long, 1) // 更新前一个pivot low为当前值 prev_pivot_low := current_pivot_low
测试建议
- 缩小
leftleg和rightleg的数值(比如改为1),更容易生成pivot low信号,方便测试订单是否正常触发。 - 检查图表中是否存在至少两个已确认的pivot low,且第二个价格高于第一个。
- 确保图表的策略设置中已勾选“启用策略”,且初始资金设置合理。
内容的提问来源于stack exchange,提问作者Nightbany
相关产品推荐
相关产品推荐

