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

TradingView运行简单Pinescript策略时策略标签无显示问题咨询

TradingView策略无信号修复方案

问题根源

  • 未声明Pine Script版本:TradingView当前默认运行Pine Script v5,未声明版本会导致旧语法执行异常
  • 止损止盈作用域错误:strategy.exit()及止损止盈值定义在开仓条件的if块内,仅开仓当根K线生效,后续K线会丢失止损止盈配置,触发订单逻辑异常
  • 回测范围不匹配:代码硬编码回测区间为2018年1月1日至2020年1月1日,若图表未加载对应时间段K线,或策略设置的回测区间与该范围无重叠,不会产生任何交易信号
  • 止损止盈取值问题:使用当前未走完K线的low/high计算止损止盈,会导致数值随K线波动反复变化,无法固定开仓时的风险收益比

修复后完整代码

//@version=5
strategy ("LONG TERM STRAT", overlay = true, initial_capital = 5000, default_qty_value = 5, default_qty_type = strategy.percent_of_equity)

// 可自定义回测时间参数,无需修改核心代码
timeStart = input.time(timestamp("2018-01-01"), "回测开始时间")
timeEnd = input.time(timestamp("2020-01-01"), "回测结束时间")
inBacktestRange = time >= timeStart and time <= timeEnd

noTrade = strategy.position_size <= 0

// 均线计算,保留原EMA翻倍逻辑,如需标准SMMA可替换为ta.smma(),周期改为21/50/100即可
SMMA21= ta.ema(close,42)
SMMA50= ta.ema(close,100)
SMMA100= ta.ema(close,200)

// 绘制均线方便核对触发条件
plot(SMMA21, color=color.blue, linewidth=2, title="21SMMA")
plot(SMMA50, color=color.yellow, linewidth=2, title="50SMMA")
plot(SMMA100, color=color.red, linewidth=2, title="100SMMA")

// RSI计算
RSIval= ta.rsi(close,14)

// 多头开仓条件
longCon1 = SMMA21 > SMMA50 and SMMA50 > SMMA100
longCon2 = RSIval > 50
longCondition = longCon1 and longCon2 and noTrade and inBacktestRange

if (longCondition)
    // 取前一根K线高低点计算止损止盈,避免未来函数问题
    stopLoss = low[1] * 0.95
    takeProfit = high[1] * 1.1
    strategy.entry("long", strategy.long)
    strategy.exit("exit", "long" , stop=stopLoss, limit=takeProfit)

验证步骤

  • 导入脚本后打开策略设置,确认回测时间范围覆盖你设置的回测区间
  • 拉取图表K线直到显示对应回测时间段的行情,即可看到策略信号和回测业绩
  • 如需调整止损止盈比例,直接修改0.95和1.1两个参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:57:02