基于HMA指标编写Pine Editor多空仓位入场策略的技术咨询
Pine Script HMA指标多空入场信号实现方案
核心逻辑说明
你现有代码已经实现了HMA的趋势识别:当hma>hma2时HMA为蓝色代表上升趋势,反之为橙色代表下降趋势,我们直接基于趋势反转的临界节点生成入场信号即可:
- 多头入场触发条件:HMA从橙色转为蓝色,即上一周期
hma <= hma2、当前周期hma > hma2,对应趋势由跌转涨 - 空头入场触发条件:HMA从蓝色转为橙色,即上一周期
hma >= hma2、当前周期hma < hma2,对应趋势由涨转跌
修改后完整代码(保留原有逻辑,新增信号标记)
//@version=3 study(title="HMA带多空信号", overlay=true) n=input(title="period",type=integer,defval=14) // 原有HMA计算逻辑不变 wma1=2*wma(close,round(n/2)) wma2=wma(close,n) diff=wma1-wma2 sqn=round(sqrt(n)) NextDaywma1=2*wma(close[1],round(n/2)) NextDaywma2=wma(close[1],n) NextDaydiff=NextDaywma1-NextDaywma2 hma=wma(diff,sqn) hma2=wma(NextDaydiff,sqn) c=hma>hma2?blue:orange plot(hma,color=c, linewidth=3) // 新增:多空信号判断 longCondition = hma > hma2 and hma[1] <= hma2[1] shortCondition = hma < hma2 and hma[1] >= hma2[1] // 新增:信号可视化标记 plotshape(series=longCondition, title="多头入场", location=location.belowbar, color=green, style=shape.arrowup, size=size.small, text="多") plotshape(series=shortCondition, title="空头入场", location=location.abovebar, color=red, style=shape.arrowdown, size=size.small, text="空") // 可选:新增信号提醒触发条件 alertcondition(condition=longCondition, title="多头信号", message="HMA触发多头入场") alertcondition(condition=shortCondition, title="空头信号", message="HMA触发空头入场")
可选优化方向
如果你需要结合已有的随机震荡指标过滤假信号,可以在信号判断条件中增加随机指标的规则,比如:
- 多头入场额外要求随机指标K线低于20(超卖区间)且K线上穿D线
- 空头入场额外要求随机指标K线高于80(超买区间)且K线下穿D线
如果需要做策略回测,可以将代码开头的study改为strategy,再添加strategy.entry、strategy.close等仓位控制代码即可实现自动开平的回测统计。
内容的提问来源于stack exchange,提问作者Lamont Cranston
相关产品推荐
相关产品推荐

