如何引用特定bar并永久识别,实现策略仅在该bar之后触发交易
实现方法
要永久识别指定bar并让策略仅在该bar出现后执行交易,核心是用var关键字定义全局状态变量,匹配到目标bar后永久标记为激活状态,后续所有K线都会保留这个状态。
完整代码示例
你可以根据自己的需求二选一匹配逻辑:
方式1:按K线特征匹配
适合根据形态、量价等特征识别目标bar,你可以自行修改条件匹配图中你要的那根bar:
// 此处以「涨幅超2.5%、成交量为前一根bar的1.8倍」为例,替换为你目标bar的独有特征即可 targetBarMatch = close / open > 1.025 and volume > volume[1] * 1.8 // var声明的变量仅初始化时赋值一次,不会随K线刷新重置 var afterBar = false if targetBarMatch afterBar := true longCondition = ta.change(ta.rsi(close, 14)) if afterBar and longCondition strategy.entry("多单开仓", strategy.long)
方式2:按固定时间匹配
如果你要指定某一固定时间的bar,直接用时间戳判断更精准,不会出现特征重复匹配的问题:
// 替换括号内的年、月、日、时、分为你目标bar对应的时间即可 isTargetBar = ta.time == timestamp(2023, 10, 12, 0, 0) var afterBar = false if isTargetBar afterBar := true longCondition = ta.change(ta.rsi(close, 14)) if afterBar and longCondition strategy.entry("多单开仓", strategy.long)
注意事项
- 必须加
var关键字,否则变量每根K线都会重置为初始值false,无法永久保留标记 - 如果用特征匹配,尽量选目标bar独有的组合特征,避免误匹配其他K线
内容的提问来源于stack exchange,提问作者bbnm
相关产品推荐
相关产品推荐

