为何出现"Syntax error at input '('"语法错误?如何解决?
解决Pine Script语法错误"Syntax error at input '('"
错误原因
你的代码存在两个核心问题:
strategy.entry参数未指定名称:函数调用的第三个参数直接写了strategy.equity/close,但Pine Script要求必须明确参数名(比如qty或size),编译器无法识别无名称参数的用途,进而触发括号位置的语法错误。- if语句逻辑结构混乱:两个并列的
if没有合理嵌套,会导致逻辑不符合预期——你应该是想在longEntry条件满足且无持仓时才开仓,而非两个独立判断。
修正后的代码
//@version=5 strategy("Fix Example", overlay=true) // 替换为你实际的longEntry判断条件 longEntry = close > ta.sma(close, 20) if longEntry if strategy.position_size == 0 // 明确指定qty参数,定义开仓数量 strategy.entry(id = "Long", direction = strategy.long, qty = strategy.equity / close)
关键修正说明
- 给持仓量参数添加
qty =前缀,让编译器正确识别该参数的作用,解决语法解析错误。 - 将第二个
if缩进嵌套在第一个if内部,确保开仓逻辑符合“条件满足且无持仓”的预期。 - 补充版本声明
//@version=5,避免版本兼容问题。
内容的提问来源于stack exchange,提问作者Eduardo
相关产品推荐
相关产品推荐

