You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 05:06:04