You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何将EMA指标固定为1天周期?适配不同时间框架的实现

实现固定1天周期的EMA指标(适配任意时间框架)

要让EMA指标始终对应1天的周期,无需手动根据时间框架调整参数,可以利用Pine Script的内置变量自动计算周期长度:

核心逻辑是:用一天的总分钟数(1440分钟)除以当前图表时间框架的单K线分钟数,得到对应时间框架下的EMA周期值。比如1分钟框架下1440/1=1440,15分钟框架下1440/15=96,完全匹配你的需求。

修改后的完整代码如下:

indicator("EMA", "EMA", overlay=true)

// 自动计算1天周期对应的EMA长度
dailyMinutes = 1440
currentTFMinutes = timeframe.multiplier * (timeframe.isminutes ? 1 : timeframe.ishours ? 60 : 1440)
length = input.int(dailyMinutes / currentTFMinutes, "Length", tooltip="自动适配1天周期,无需手动修改")

lineColor = input.color(#000000, "Line-Color")
emaTop = ta.ema(input.source(high, "Top-Source"), length)
emaBot = ta.ema(input.source(low, "Bot-Source"), length)

fillColor =  close < emaBot ? input.color(color.rgb(255, 0, 0, 67), "Fill-Color-Below") : 
             close > emaTop ? input.color(color.rgb(27, 255, 27, 67), "Fill-Color-Above") : 
                              input.color(color.rgb(120, 123, 134, 67), "Fill-Color-Neutral")

pTop = plot(emaTop, color=lineColor)
pBot = plot(emaBot, color=lineColor)
fill(pTop, pBot, color=fillColor, fillgaps=true)

关键修改说明

  • dailyMinutes = 1440:定义一天的总分钟数
  • currentTFMinutes:通过timeframe.multiplier获取当前时间框架的单位数量,再乘以对应单位的分钟数(分钟框架乘1,小时框架乘60,日线框架乘1440),得到当前时间框架的单K线分钟数
  • length:自动计算出适配1天周期的EMA长度,同时保留输入框方便你临时手动调整(默认值是自动计算结果)

切换任何时间框架时,EMA都会自动对应1天的周期,无需手动修改参数。

内容的提问来源于stack exchange,提问作者Notorious

火山引擎 最新活动