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

我的策略不执行交易如何修复?3周高点突破策略添加至图表后无成交

策略不触发交易的解决方案

核心问题定位

你提供的代码存在关键计算错误,叠加开仓条件设置过严,共同导致无法触发交易:

  • 均量计算错误:原代码中AvgVol = sum(volume, 50)计算的是过去50个周期的总成交量,而非日均成交量,后续Long6要求当日成交量大于总成交量的1.5倍,这个条件几乎不可能满足,是无法开仓的核心原因。
  • 开仓条件叠加过严:6个多头条件同时要求长中短期均线完全多头排列、突破15周期高点、成交量放大、空仓状态,同时满足的概率极低。
  • 时间范围变量未生效:你定义了TimePeriod限制回测从2010年开始,但未将该条件加入开仓判断逻辑,不符合原本的策略设计。

修复后的代码

//@version=4
strategy("Breakout 3 Weeks High", overlay=true)

Long1 = ema(close, 150) > ema(close, 200)
Long2 = sma(close, 50) > ema(close, 150)
Long3 = ema(close, 21) > sma(close, 50)
Long4 = close > ema(close, 21)
Long5 = crossover(close, high[15])
// 修正均量计算:总成交量除以50得到平均值
AvgVol = sum(volume, 50) / 50
Long6 = volume > AvgVol * 1.5
OutofTrade = strategy.position_size <= 0
TimePeriod = time > timestamp(syminfo.timezone, 2010, 01, 01, 0, 0)

// 补全时间条件到开仓判断中
if(Long1 and Long2 and Long3 and Long4 and Long5 and Long6 and OutofTrade and TimePeriod)
    strategy.entry("Long", strategy.long)
    
if strategy.position_size != 0
    StopLoss = strategy.position_avg_price * 0.97
    TakeProfit = strategy.position_avg_price * 1.09
    strategy.exit("Exit", "Long", stop=StopLoss, limit=TakeProfit)

额外排查项

如果修复后还是没有触发交易,可以检查以下设置:

  • 回测时间范围:确认TradingView的回测起始时间设置在2010年之后,覆盖到有符合条件的行情区间
  • 策略属性设置:检查策略设置中的「初始资金」「手续费」「持仓上限」参数是否设置合理,没有限制开仓
  • 标的适配:当前策略是偏趋势的长周期策略,建议在股指、流动性好的行业ETF等趋势性较强的标的上测试,波动率过低的标的很难满足突破条件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:24:03