Pine Script v4运行报Cannot call 'operator-'输入字符串错误咨询
Pine Script v4报错原因及修复方案
错误诱因
你代码的核心问题是输入变量的类型声明错误:
input("1", title="Period")、input(".0025", title="Fees")两处的默认值加了双引号,Pine Script v4会自动将带引号的默认值识别为字符串类型,后续你在1-fees这类数值运算中用字符串和数字做运算,就会触发类型不匹配的报错。- 此前类似逻辑代码可正常运行,大概率是之前的输入变量默认值没有加引号,被识别为数值类型,没有类型冲突。
修复后的代码
// © Crystal_Catalyst //@version=4 strategy("My Script") // 移除默认值的引号,指定输入类型为整数/浮点数避免歧义 period = input.int(1, title="Period") fees = input.float(0.0025, title="Fees") var price=close if close>price/(1-fees) strategy.order("Tab Beta", false, qty=20, when = close>price/(1-fees)) price := close if close<price*(1-fees) strategy.order("Tab Beta", true, qty=20, when = close<price*(1-fees)) price := close
补充说明
如果需要保留字符串类型的输入,需要手动用str.tonum()函数将字符串转为数值类型后再参与运算,不过直接声明对应数值类型的输入是更规范的写法。
内容的提问来源于stack exchange,提问作者Crystal_Catalyst
相关产品推荐
相关产品推荐

