TradingView的Pinescript如何获取指定K线对应的EMA数值
PineScript获取指定历史K线EMA数值方案
如果你是在日线周期图表上运行脚本,直接通过序列偏移语法即可获取对应历史K线的EMA值:
- 先定义20周期日线EMA:
ema20 = ta.ema(close, 20) - 获取往前数第12根日线的EMA值,直接在序列后加方括号填写偏移量即可:
ema20_at_bar12 = ema20[12]
注:偏移量从0开始计数,
ema20[0]为当前未闭合K线的实时EMA值,ema20[1]为上一根已完全收盘的日线EMA,以此类推。
如果你需要对比该K线的最低价与对应EMA值,同步偏移最低价序列即可:
// 获取第12根日线的最低价 low_at_bar12 = low[12] // 对比逻辑示例:判断该K线最低价是否低于对应EMA low_below_ema = low_at_bar12 < ema20_at_bar12
如果你是在小于日线的周期图表上运行脚本,需要先通过request.security函数调取日线级别的EMA数据,再做偏移:
// 调取当前品种的日线级别20周期EMA daily_ema20 = request.security(syminfo.tickerid, "D", ta.ema(close, 20)) // 获取12根日线前的EMA值 daily_ema20_at_bar12 = daily_ema20[12]
注意事项
- 偏移操作要求图表加载的历史K线数量大于偏移值,否则会返回空值
na,可在逻辑中添加not na(ema20_at_bar12)的判断来过滤空值场景 - 如果你需要获取固定日期而非偏移量对应的EMA值,可通过时间匹配实现:
// 自定义目标日期,参数顺序为年、月、日、时、分 target_date = timestamp(2024, 5, 20, 0, 0) // 匹配时间获取对应K线的EMA值 target_date_ema = ta.valuewhen(time == target_date, ema20, 0)
内容的提问来源于stack exchange,提问作者Benny Rodríguez
相关产品推荐
相关产品推荐

