Pine Script指标修改:新增VOL大于VOL20+K线收于EMA9的买入信号条件
修改方案
你需要调整原脚本的触发逻辑,去掉成交量上穿交叉的限制,同时新增EMA9的判断即可,具体修改如下:
核心修改点
- 新增EMA9指标计算项
- 将原买入条件中的
crossover(volume,sma)替换为volume > sma,只要成交量大于20周期均量就满足量能条件 - 新增
close >= ema9的价格判断规则,匹配收盘价落在EMA9上的要求
修改后完整代码
//@version=4 study(title="Volume & EMA9 Buy Signal", overlay=false, format=format.volume) // 输入参数定义 vol_ma_length = input(20,"成交量均量周期", type=input.integer) ema_length = input(9, "EMA周期", type=input.integer) // 指标计算 kline_color = close > open ? color.new(color.green,50) : color.new(color.red,50) vol_sma = sma(volume, vol_ma_length) ema9 = ema(close, ema_length) // 买入条件:1.阳线 2.成交量大于20周期均量 3.收盘价大于等于EMA9 buy = close > open and volume > vol_sma and close >= ema9 // 绘图 plot(volume, title="成交量", style=plot.style_columns, color= kline_color, histbase=0) plot(vol_sma, title = "20周期均量线", color = color.red) plotshape(buy,title = "买入信号", location = location.top, style=shape.triangleup, text="Buy", color = color.new(color.green,50))
逻辑说明
修改后只要同时满足三个条件就会触发买入信号,完全匹配你要求的规则:
- K线为阳线(收盘价>开盘价,即绿色K线)
- 当期成交量大于20周期均量线
- 当期收盘价位于9周期EMA线之上(含刚好落在EMA线上的情况)
如果需要信号只在首次满足条件时出现,避免连续满足时重复标记,可以把buy条件修改为:
buy = close > open and volume > vol_sma and close >= ema9 and not buy[1]
内容的提问来源于stack exchange,提问作者hasyil
相关产品推荐
相关产品推荐

