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
相关产品推荐
相关产品推荐

