Pine Script优化:按PineCoders指南替换valuewhen函数的方案验证
写法正确性说明
你理解的替换思路是对的,只是有小细节需要补全,分版本说明:
Pine v3及更早版本
你写的基础逻辑不完整,漏了信号触发时的赋值步骤,正确的完整写法如下:
EntryPrice = 0.0 EntryPrice := nz(EntryPrice[1]) EntryPrice := EnterLong or EnterShort ? close : EntryPrice
替换后和原valuewhen逻辑完全一致,不会有预警场景下的重绘问题。
Pine v4及更高版本
你写的逻辑是正确的,只要注意变量名和你代码里的信号变量大小写匹配即可,完整可运行写法:
var float entryPrice = na if EnterLong or EnterShort entryPrice := close
你当前脚本的修改方案
你贴的完整代码是v3版本的,直接把原来的EntryPrice = valuewhen(EnterLong or EnterShort, close, 0)这一行替换成上面v3版本的三行代码即可正常运行。
内容的提问来源于stack exchange,提问作者nop
相关产品推荐
相关产品推荐

