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

TradingView策略:如何为trigger_buy添加无ta.crossover(bull, bear)限制?

实现方法

要让trigger_buy仅在bull上穿signal且未发生bull上穿bear时触发,分两种场景处理:

场景1:排除同一K线同时触发两个交叉的情况

直接在原trigger_buy条件中添加**非ta.crossover(bull, bear)**的判断,确保两个交叉不同时发生时才触发:

// 自定义ADX阈值(按需调整)
adx_threshold1 = input(25, title="ADX 阈值1")

// 原强买入信号条件
adx_strongbuy = ta.crossover(bull, bear) and ta.crossover(bull, signal)

// 调整后的普通买入触发条件
trigger_buy = adx > adx_threshold1 and ta.crossover(bull, signal) and not ta.crossover(bull, bear)

这段代码会过滤掉同一根K线上同时出现bull上穿bear和bull上穿signal的情况,保证trigger_buy只在bull单独上穿signal且ADX达标时触发。

场景2:排除强买入信号触发后的一段时间内的所有普通信号

如果你的需求是在adx_strongbuy触发后的一段冷却期内,完全不触发trigger_buy,可以通过状态变量记录强信号触发状态,再加入冷却期判断:

// 自定义参数
adx_threshold1 = input(25, title="ADX 阈值1")
cooloff_period = input(5, title="强信号冷却期(K线数量)")

// 原强买入信号条件
adx_strongbuy = ta.crossover(bull, bear) and ta.crossover(bull, signal)

// 记录强信号触发状态及冷却期
var bool strongbuy_active = false
strongbuy_active := adx_strongbuy ? true : (ta.barssince(adx_strongbuy) >= cooloff_period ? false : strongbuy_active)

// 调整后的普通买入触发条件
trigger_buy = adx > adx_threshold1 and ta.crossover(bull, signal) and not strongbuy_active and not ta.crossover(bull, bear)

这段代码会在adx_strongbuy触发后,保持strongbuy_active为true直到冷却期结束,期间trigger_buy不会被触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 07:18:20