TradingView Pinescript V5:编写延后一根K线检查Open=Low的代码
Pine Script V5 实现延后一根K线检查开盘价等于最低价
需求明确
我们需要实现:在指定开盘时间(如9:15)的下一根K线(9:16)时,检查开盘K线是否满足开盘价等于最低价(Open=Low),且仅触发一次检查/提醒。
完整代码实现
//@version=5 indicator("开盘价等于最低价延后检查", overlay=true) // 初始化仅触发一次的标记 var bool alerted = false // 定义市场开盘时间(可根据实际市场调整) marketOpenHour = 9 marketOpenMinute = 15 // 判断当前K线是否是开盘后的第一根K线(即9:16的K线) isPostOpenBar = time("D", str.tostring(marketOpenHour) + ":" + str.tostring(marketOpenMinute + 1) + "-" + str.tostring(marketOpenHour) + ":" + str.tostring(marketOpenMinute + 1)) != na // 检查前一根K线(9:15)是否满足Open=Low prevBarOpenEqualsLow = open[1] == low[1] // 触发条件:当前是开盘后第一根K线 + 前一根K线满足条件 + 未触发过提醒 triggerCondition = isPostOpenBar and prevBarOpenEqualsLow and not alerted // 满足条件时执行操作(这里示例是绘制标记+标记已提醒) if triggerCondition label.new(bar_index, low, "开盘价=最低价", color=color.green, textcolor=color.white) alerted := true // 每日重置提醒标记 if dayofmonth != dayofmonth[1] alerted := false
关键逻辑说明
- 精准时间定位:通过
time()函数指定开盘后第一根K线的时间区间,确保只在该时段触发检查,避免非目标时间的误触发 - 延后检查机制:调用
open[1]和low[1]获取前一根K线的开盘价与最低价,实现延后一根K线验证目标条件 - 防重复触发:用
var声明的alerted变量标记是否已触发提醒,每日通过日期变更条件重置该变量,保证每个交易日仅执行一次检查操作
内容的提问来源于stack exchange,提问作者P Chatterjee
相关产品推荐
相关产品推荐

