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

Pine Script编译错误求助:第6行输入'(',期望ID

Pine Script v5编译错误排查:第6行'('不匹配问题

错误原因

第6行的import("sma")是完全错误的写法:

  • Pine Script v5中sma()是内置技术分析函数,无需导入
  • 正确的import语法用于导入公共脚本,格式为import <用户名>/<脚本名> as <别名>,括号包裹函数名的写法违反语法规则,导致编译器识别到不匹配的括号,触发"输入'('不匹配,期望ID"的报错

修复后的完整代码

// © Gittiwilo

//@version=5
strategy("EMA Cross Strategy", overlay=true)  // 补充策略初始化,这是策略脚本的必要结构

// 定义参数:均线周期、止损止盈幅度
emaShortPeriod = 10
emaLongPeriod = 20
stopLoss = 0.005  // 原0.5为50%幅度,调整为0.5%更符合常规交易逻辑,可按需修改
takeProfit = 0.015 // 原1.5为150%幅度,调整为1.5%,可按需修改

// 计算均线(注:原代码注释写EMA但调用sma,若需EMA可改为ta.ema)
emaShort = ta.sma(close, emaShortPeriod)
emaLong = ta.sma(close, emaLongPeriod)

// 生成多空入场信号
longEntry = ta.cross(emaShort, emaLong)
shortEntry = ta.cross(emaLong, emaShort)

// 绘制入场信号标记
plotchar(longEntry, "Long Entry", "▲", location.belowbar, color=color.green, transp=0)
plotchar(shortEntry, "Short Entry", "▼", location.abovebar, color=color.red, transp=0)

// 策略交易逻辑:入场后设置止损止盈
if (longEntry)
    strategy.entry("Long", strategy.long)
    strategy.exit("Long Exit", "Long", stop=strategy.position_avg_price * (1 - stopLoss), limit=strategy.position_avg_price * (1 + takeProfit))

if (shortEntry)
    strategy.entry("Short", strategy.short)
    strategy.exit("Short Exit", "Short", stop=strategy.position_avg_price * (1 + stopLoss), limit=strategy.position_avg_price * (1 - takeProfit))

// 绘制均线
plot(emaShort, color=color.green, title="Short SMA")
plot(emaLong, color=color.red, title="Long SMA")

额外修复说明

  • 补充strategy()声明:原代码缺失策略初始化语句,这是运行策略的必要前提
  • 修正内置函数调用:Pine Script v5要求技术分析函数需加ta.前缀(如ta.sma、ta.cross)
  • 调整止损止盈数值:原参数幅度过于激进,修改为常规交易中的百分比幅度
  • 优化信号位置:多单标记放在K线下方、空单放在上方,符合视觉习惯
  • 拆分入场与止盈止损逻辑:原代码直接在strategy.entry中设置止盈止损会因无持仓均价报错,改用strategy.exit在入场后设置

内容的提问来源于stack exchange,提问作者Gittiwilo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 19:40:36