如何在单个指标中实现四类移动平均线分三时间框架显示?
多移动平均线时间框架显示控制方案
要实现指定时间框架下仅显示对应均线的需求,我们可以利用Pine Script内置的timeframe.is.*系列函数判断当前图表时间周期,通过条件赋值让非目标周期下的均线返回na(不绘制)。
修改后的完整代码
study(title="Moving Averages", shorttitle="MAs", overlay=true) exponential = input(true, title="Exponential MA") src = close ma10 = exponential ? ema(src, 10) : sma(src, 10) ma20 = exponential ? ema(src, 20) : sma(src, 20) ma50 = exponential ? ema(src, 50) : sma(src, 50) ma30 = exponential ? ema(src, 30) : sma(src, 30) // MA10仅在5分钟时间框架可见 plot(timeframe.is.m5 ? ma10 : na, color=orange, style=line, title="MMA10", linewidth=1) // MA20与MA50仅在小时和日线时间框架可见 plot((timeframe.is.hourly or timeframe.is.daily) ? ma20 : na, color=fuchsia, style=line, title="MMA20", linewidth=1) plot((timeframe.is.hourly or timeframe.is.daily) ? ma50 : na, color=purple, style=line, title="MMA50", linewidth=1) // MA30仅在周线时间框架可见 plot(timeframe.is.weekly ? ma30 : na, color=black, style=line, title="MMA30", linewidth=1)
关键修改说明
- 时间周期匹配:用
timeframe.is.m5(5分钟)、timeframe.is.hourly(1小时)、timeframe.is.daily(日线)、timeframe.is.weekly(周线)函数精准定位目标时间框架。 - 条件绘制逻辑:通过三元运算符
condition ? value : na控制渲染逻辑,符合条件时绘制对应均线,否则返回na(不显示)。 - 原有功能保留:完整保留了原代码中指数/简单均线切换的输入选项,核心计算逻辑未改动。
内容的提问来源于stack exchange,提问作者kkmb
相关产品推荐
相关产品推荐

