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

回测时TradingView策略测试器未生成我的策略交易记录是什么原因?

问题排查原因
  • 核心逻辑错误:止损止盈计算时机错误
    你在尚未执行开仓指令的if分支头部,就调用strategy.position_avg_price计算止损止盈。此时你还处于空仓状态(if判断条件包含OutTrade = strategy.position_size <= 0),strategy.position_avg_price返回值为na,导致后续strategy.exit的stop和limit参数均为无效值,直接造成整条开平仓指令组失效。
  • 时间过滤条件未生效
    你定义了仅交易2010年之后的TimePeriod变量,但没有将该条件加入入场的if判断中,若你的回测时间范围小于2010年,也会触发无交易的问题。
  • 额外冗余参数问题
    你在strategy.entry中重复添加了when=OutTrade参数,虽然不是直接原因,但和外层if判断逻辑重复,会增加逻辑出错概率。
  • 其他可排查配置项
    检查TradingView策略测试器的基础配置:初始资金是否足够买入至少1手对应交易品种、手续费/滑点设置是否极端、回测时间范围是否覆盖了符合均线多头排列的行情区间。
修复后的参考代码
//@version=4
strategy("Simple Long", overlay=true)

Long1 = sma(close,150) > sma(close,200)
Long2 = sma(close,50) > sma(close,150)
Long3 = ema(close,21) > sma(close,50)
Long4 = close > ema(close,21)

OutTrade = strategy.position_size <= 0
TimePeriod = time > timestamp(syminfo.timezone, 2010, 01, 01, 0, 0)

if(Long1 and Long2 and Long3 and Long4 and OutTrade and TimePeriod)
    strategy.entry("Long", strategy.long)
    // 开仓后再计算止损止盈,此时position_avg_price已更新为开仓价
    StopLoss = strategy.position_avg_price * 0.95
    TakeProfit = strategy.position_avg_price * 1.2
    strategy.exit("Exit", "Long", stop=StopLoss, limit=TakeProfit)

你提供的回测结果截图如下:
回测结果截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:18:00