Pine-Script开发求助:24日回溯MACD直方图均值买入信号实现
Pine Script MACD直方图买入信号优化方案
优化实现代码
首先提供完全对齐你原有计算逻辑的简化版本,不需要手动累加24个周期数值,用Pine Script内置函数即可实现:
hist = macdDaily - signalDaily // 计算单周期hist平方除以2的数值 hist_sq_half = math.pow(hist, 2) / 2 // 计算过去24个周期(不含当前周期)的hist_sq_half均值 avg_calc = ta.sma(hist_sq_half, 24)[1] // 满足两个条件触发买入信号:当前hist为正 + 大于计算得到的均值 buy_signal = hist > 0 and hist > avg_calc
补充说明
如果你原始需求只是要对比过去24个周期hist的普通算术平均(而非平方除以2后的平均),代码可以进一步简化为:
hist = macdDaily - signalDaily // 取过去24个周期(不含当前周期)的hist算术均值 avg_hist_24 = ta.sma(hist, 24)[1] buy_signal = hist > 0 and hist > avg_hist_24
优化逻辑说明
- 用内置
ta.sma简单移动平均函数替代手动累加,避免写错周期数,代码精简度提升90%以上 - 变量拆分后逻辑层级清晰,后续调整周期参数、计算规则时只需要修改对应位置即可,维护成本更低
- 自动适配K线序列计算,不需要手动指定每个周期的偏移量,避免漏写、错写偏移的问题
内容的提问来源于stack exchange,提问作者tmajestic
相关产品推荐
相关产品推荐

