You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

1分钟交易周期下如何判断45秒EMA与1分钟EMA趋势是否一致?

多时间周期EMA趋势一致性判断与信号标记

需求说明

  • 在1分钟交易周期下,生成布尔值判断45秒EMA与1分钟EMA的趋势是否一致
  • 趋势一致时,用绿色标记看涨、红色标记看跌,用于短期预测下一根K线走势
  • 实现方式包括图表背景上色、K线位置标记买卖信号

现有尝试代码

study("Multi Timeframe EMA",overlay=true)
emaCurrent = ema(close,20)
ema15m = security(ticker,"15",ema(close,20))
plot(emaCurrent, color=red, title="ema current")
plot( ema15m , color=orange, title="ema 15m")
bgcolor(color=cross(emaCurrent, ema15m) ? blue : red)

期望应用的信号逻辑框架

plot(low, "BG", s20_ema>s80ema?color.new(color.blue,60):s20_ema<s80ema?color.new(color.red,60):na, style = plot.style_columns)

plotshape(series=longCond, title='BUY', style=shape.triangleup, location=location.belowbar, color=color.new(color.blue, 0), textcolor=color.new(color.white, 0), text='BUY', size=size.small) 
plotshape(series=shortCond, title='SELL', style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), text='SELL', size=size.small)

解决方案代码

//@version=5
indicator("45s vs 1min EMA Trend Alignment", overlay=true)

// 定义EMA计算周期
ema_period = 20

// 计算1分钟周期EMA及趋势方向(当前EMA高于前值则为上涨趋势)
ema_1min = ta.ema(close, ema_period)
trend_1min = ema_1min > ta.ema(close[1], ema_period)

// 获取45秒周期数据并计算EMA及趋势方向
// 使用request.security_lower_tf避免重绘问题
[close_45s, _] = request.security_lower_tf(syminfo.tickerid, "45", [close, ta.ema(close, ema_period)])
ema_45s = ta.ema(close_45s, ema_period)
trend_45s = ema_45s > ta.ema(close_45s[1], ema_period)

// 判断两个周期趋势是否一致
trend_alignment = trend_1min == trend_45s

// 生成买卖信号:趋势一致且对应方向
longCond = trend_alignment and trend_1min
shortCond = trend_alignment and not trend_1min

// 绘制两条EMA线
plot(ema_1min, color=color.new(color.red, 0), title="1min EMA")
plot(ema_45s, color=color.new(color.orange, 0), title="45s EMA")

// 趋势一致时的背景色:看涨绿,看跌红
bgcolor(longCond ? color.new(color.green, 80) : shortCond ? color.new(color.red, 80) : na)

// 对应期望逻辑的柱状背景
plot(low, "BG", longCond ? color.new(color.blue,60) : shortCond ? color.new(color.red,60) : na, style = plot.style_columns)

// 在K线位置标记买卖信号
plotshape(series=longCond, title='BUY', style=shape.triangleup, location=location.belowbar, color=color.new(color.blue, 0), textcolor=color.new(color.white, 0), text='BUY', size=size.small) 
plotshape(series=shortCond, title='SELL', style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), text='SELL', size=size.small)

代码说明

  • 采用request.security_lower_tf替代旧版security函数,解决低周期数据调用的重绘问题
  • 通过比较当前EMA与前一根EMA的数值,判断单周期的趋势方向(上涨/下跌)
  • trend_alignment为布尔值,直接返回45秒与1分钟周期的趋势是否一致
  • 基于趋势一致性和方向生成买卖信号,同步实现背景色填充、柱状背景和K线标记三个需求

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 12:23:32