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

如何用Pine Script高亮符合特定EMA100条件的价格信号?

Pine Script 指标编写解决方案

基础需求实现

需求:当蜡烛穿越前一根收盘价位于EMA100线上方的蜡烛时,高亮价格点位。

实现代码(以向下跌破为例,若需向上突破可修改穿越条件):

//@version=5
indicator("EMA100 穿越信号", overlay=true)

ema100 = ta.ema(close, 100)
// 前一根蜡烛收盘价在EMA100上方
prev_close_above_ema = close[1] > ema100[1]
// 当前蜡烛跌破前一根蜡烛最低价(向下穿越)
current_break_down = close < low[1]
// 合并触发条件
signal = prev_close_above_ema and current_break_down

// 高亮标记满足条件的点位
plotshape(signal, location=location.belowbar, color=color.red, style=shape.circle, size=size.small)
// 绘制EMA100均线
plot(ema100, color=color.blue)

进阶需求问题修正

原代码问题排查

你的代码存在两处核心逻辑错误:

  1. EMA判定对象错误:emaGapAbove = low > ema100 判定的是当前蜡烛,而非需求要求的前一根蜡烛。
  2. 条件组合逻辑错误:close < emaGapAbove 是将收盘价与布尔值(true/false对应1/0)做比较,完全不符合需求逻辑。

修正后的代码

//@version=5
indicator("EMA100 跌破下影线信号", overlay=true)

ema100 = ta.ema(close, 100)
// 前一根蜡烛(含下影线)完全在EMA100上方:最低价高于EMA100
prev_candle_full_above_ema = ta.low[1] > ema100[1]
// 当前蜡烛跌破前一根蜡烛的下影线低点
current_break_prev_low = close < ta.low[1]
// 合并触发信号的条件
entry_signal = prev_candle_full_above_ema and current_break_prev_low

// 绘制高亮标记
plotshape(entry_signal, title="跌破信号", location=location.belowbar, color=color.red, style=shape.labeldown, text="跌破", textcolor=color.white, size=size.small)
// 显示EMA100均线
plot(ema100, color=color.blue, title="EMA100")

关键说明

  • 使用ta.low[1]和ema100[1]获取前一根K线的数据,精准匹配需求中对前一根蜡烛的判定要求。
  • 用and合并两个条件,确保只有同时满足时才触发信号。
  • plotshape设置为标签式箭头,直观展示信号位置,也可根据需求修改为shape.circle、shape.cross等样式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:45:26