求助:如何让TradingView策略每日交易超2次(不含日终平仓)
TradingView策略增加每日交易次数的修改方案
核心调整方向(针对原策略逻辑)
- 放宽开仓条件阈值:原策略大概率用了较严格的过滤规则(比如RSI区间收窄、均线交叉需多K线确认),可直接调整参数:
- 若依赖RSI信号,把超卖阈值从30调低到25,超买从70调高到75,或者将RSI计算周期从14缩至9
- 若用均线交叉,缩小均线周期差(比如从50/200改成20/50),去掉交叉后的额外K线确认要求
- 叠加多维度开仓信号:在原信号基础上加入辅助触发条件,用
or逻辑合并,比如:- 原策略仅用均线交叉,可叠加MACD柱线拐头、布林带突破中轨这类信号,满足任一即可开仓
- 删除单日交易次数限制:检查代码中是否有自定义的交易计数变量(比如
dailyTrades)或strategy.risk相关的次数限制,直接删除这类代码,或把计数上限调高 - 优化平仓逻辑:原策略每日强制平仓,可改为部分止盈(比如盈利5%平仓一半),这样当日剩余仓位不影响新信号触发开仓
关键代码修改示例
1. 放宽RSI开仓条件
// 原代码 rsiValue = ta.rsi(close, 14) longCondition = rsiValue < 30 and ta.crossover(rsiValue, 30) // 修改后 rsiValue = ta.rsi(close, 9) // 缩短计算周期 longCondition = rsiValue < 25 or ta.crossover(rsiValue, 25) // 放宽阈值+简化确认逻辑
2. 合并多信号触发开仓
// 原单一均线信号 maFast = ta.sma(close, 50) maSlow = ta.sma(close, 200) entryCondition = ta.crossover(maFast, maSlow) // 修改后叠加MACD信号 macdLine = ta.macd(close, 12, 26, 9)[0] macdSignal = ta.macd(close, 12, 26, 9)[1] macdCondition = ta.crossover(macdLine, macdSignal) entryCondition = entryCondition or macdCondition // 任一信号满足即可开仓
3. 移除单日交易次数限制
如果策略有类似以下限制代码,直接删除或调整:
// 原限制代码 var int dailyTrades = 0 if ta.change(time("D")) dailyTrades := 0 if dailyTrades < 2 // 限制单日最多2次交易 strategy.entry("Long", strategy.long) dailyTrades += 1 // 修改后 var int dailyTrades = 0 if ta.change(time("D")) dailyTrades := 0 // 取消次数限制,直接执行开仓 strategy.entry("Long", strategy.long) dailyTrades += 1
注意事项
- 修改后要跨品种、跨周期回测,避免过度优化导致曲线拟合
- 保留原策略的止损逻辑,防止单次亏损失控
- 每日强制平仓逻辑可保留,但需确保开仓信号足够密集才能触发多次交易
内容的提问来源于stack exchange,提问作者sam the trade
相关产品推荐
相关产品推荐

