如何用Pine代码判断TradingView图表时间框架是否在指定区间?
Pine代码判断时间框架区间的修正方案
你的代码存在两个核心问题:逻辑运算符使用错误,且未覆盖小时、天单位的时间框架,以下是修正后的实现:
问题分析
- 逻辑错误:原代码用
or替代了and,导致条件范围完全错误(比如multiplier >=240 or multiplier <660会匹配所有分钟数),区间判断必须用and来限定上下边界。 - 单位覆盖不全:仅判断了
timeframe.isminutes的情况,漏掉了小时(如4H、6H)和天(如1D、2D)单位的时间框架,这类场景下原函数会返回错误结果。
修正后的代码
// 将当前时间框架统一转换为总分钟数 tfTotalMinutes() => minutes = timeframe.multiplier if timeframe.ishours minutes * 60 else if timeframe.isdays minutes * 60 * 24 else minutes // 判断是否处于4小时至11小时区间(240分钟 ≤ TF ≤ 660分钟) Is4To11HourTF() => totalMinutes = tfTotalMinutes() totalMinutes >= 240 and totalMinutes <= 660 // 判断是否处于12小时至4天区间(720分钟 ≤ TF ≤ 5760分钟) Is12HourTo4DayTF() => totalMinutes = tfTotalMinutes() totalMinutes >= 720 and totalMinutes <= 5760
代码说明
tfTotalMinutes():把分钟、小时、天单位的时间框架统一转换为总分钟数,比如4H对应240分钟,2D对应2880分钟,方便统一判断。Is4To11HourTF():通过总分钟数判断是否在4小时(240分钟)到11小时(660分钟)的区间内。Is12HourTo4DayTF():判断是否在12小时(720分钟)到4天(5760分钟)的区间内。
内容的提问来源于stack exchange,提问作者dawid
相关产品推荐
相关产品推荐

