Pinescript编译警告异常:未用when参数却触发strategy.close()弃用警告
排查Pine Script
strategy.close()无额外参数却触发弃用警告的原因 版本兼容的参数解析问题:Pine Script迭代中调整过
strategy.close()的参数定义,早期版本里该函数第二个参数是when,后来官方将when改为命名参数。如果你的脚本基于v4及更早版本编写,即使只传一个字符串ID参数,编译器也可能误判你在使用旧的重载形式,触发警告。脚本存在其他违规调用:检查脚本其他位置是否有
strategy.close()的错误调用,比如写成strategy.close('golong', 某个条件)这种把判断条件当第二个位置参数的写法,或者自定义了同名函数strategy.close,导致编译器整体解析时误触发警告。编译器解析bug:少数情况下Pine Script编译器存在解析逻辑问题,会误识别单一参数的调用为旧重载形式。可以尝试两种解决方式:
- 显式用命名参数指定ID:改写为
strategy.close(id='golong'),明确告诉编译器传递的是id参数,而非旧的when参数,通常能直接消除警告。 - 升级到最新Pine Script版本:新版本修复了大量解析问题,更新后警告大概率会自动消失。
- 显式用命名参数指定ID:改写为
相关变量定义异常:检查
exit_long或关联变量是否被错误定义,比如被设为非布尔值,可能导致编译器解析if块内代码时出现偏差,间接触发该警告。
内容的提问来源于stack exchange,提问作者krueger17
相关产品推荐
相关产品推荐

