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

如何筛选完全未触碰15周期EMA线的K线?

筛选完全位于15周期EMA线上方或下方且未触碰的K线

要实现这类K线的筛选,核心是判断K线的整个价格区间是否完全处于EMA的单侧:

  • 完全在EMA上方:K线的最低价(low)大于15周期EMA值,说明从最低到最高的所有价格都在EMA之上,无任何部分触碰EMA
  • 完全在EMA下方:K线的最高价(high)小于15周期EMA值,说明从最高到最低的所有价格都在EMA之下,无任何部分触碰EMA

以下是实现该逻辑的Pine Script代码示例,我们保留了你原有的策略框架,同时添加了筛选标记和对应交易逻辑:

strategy("My script", overlay=true)
ema = ta.ema(close, 15)
plot(ema, color=color.blue)

// 定义核心筛选条件
isAboveEma = low > ema  // 完全位于EMA上方的K线
isBelowEma = high < ema // 完全位于EMA下方的K线

// 用形状标记符合条件的K线,方便可视化验证
plotshape(isAboveEma, title="Above EMA", location=location.belowbar, color=color.new(color.green, 0), style=shape.labelup, text="Above")
plotshape(isBelowEma, title="Below EMA", location=location.abovebar, color=color.new(color.red, 0), style=shape.labeldown, text="Below")

// 原时间范围控制
start = timestamp(2022,1,1,0,0,0)
end = timestamp(2022,6,1,0,0,0)    

if time >= start and time <= end
    // 示例:基于筛选条件触发交易信号
    if isAboveEma
        strategy.entry("long", strategy.long, 100)
    if isBelowEma
        strategy.entry("short", strategy.short, 100)
    
    // 原平仓逻辑(可按需调整)
    buy_price = strategy.opentrades.entry_price(strategy.opentrades-1)
    strategy.close("short", when=buy_price*1.00)

关键说明

  • isAboveEma和isBelowEma是筛选的核心判断,直接通过K线的高低价与EMA的对比实现
  • plotshape函数用于在图表上直观标记符合条件的K线,便于你快速验证筛选结果
  • 你可以根据实际需求,将这些筛选条件替换或应用到自定义的交易信号、指标计算场景中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 03:20:16