Pine脚本中能否仅取N根K线窗口执行操作?求移动平均绘制方法
Pine脚本中指定K线窗口操作的实现
1. 能否选取N根K线窗口执行特定操作?
完全可以。你可以通过bar_index(K线索引,从0开始递增)判断当前K线是否处于目标窗口范围内,再在该条件下执行对应操作(比如计算指标、标记信号、绘制图形等)。
举个简单例子:在最后10根K线里,给阳线添加浅绿色背景
//@version=5 indicator("指定窗口操作示例") window_size = input.int(10, "窗口K线数量") // 判断当前K线是否在最后N根窗口内 in_target_window = bar_index >= bar_index - window_size + 1 // 仅在目标窗口内执行操作:标记阳线背景 bgcolor(in_target_window and close > open ? color.new(color.green, 90) : na)
2. 能否仅针对最后N根K线应用移动平均并绘制?
当然可以。核心思路是先计算移动平均,再通过条件判断,只在最后N根K线范围内显示指标,超出范围的部分设为na(不绘制)。
比如针对最后5根K线绘制5周期SMA:
//@version=5 indicator("仅最后N根K线的MA", overlay=true) N = input.int(5, "目标K线数量") // 计算5周期简单移动平均 sma_5 = ta.sma(close, 5) // 仅在最后N根K线内绘制MA plot(bar_index >= bar_index - N + 1 ? sma_5 : na, color=color.blue, linewidth=2)
代码里用input.int让你可以随时调整N的数值,三元运算符? :用来控制是否显示MA值——符合窗口条件时显示计算出的SMA,否则返回na(不绘制)。
内容的提问来源于stack exchange,提问作者Grootax
相关产品推荐
相关产品推荐

