length * 0.5 // 计算预测移动平均(PMA)
[PMA, SMA, Slope] // 返回PMA、SMA和斜率的值
// 调用pma函数计算PMA、SMA和Slope
[pma, sma, slope] = pma(src, length)
// 计算预测的PMA和Slope
float predictPMA = pma + 0.5 * (slope - slope[2]) * length // 预测PMA值
float predictSlp = 1.5 * slope - 0.5 * slope[4] // 预测Slope值
// 计算市场的波动范围
float aRng = ta.cum(high - low) / bar_index + 1 // 累计的波动范围
// 判断PMA是否高于SMA
bool above = pma > sma
// 颜色设定
color cSl_pred = predictPMA > pma ? #0DFF00 : #FF0000 // 根据预测值设置颜色
color col_pred = color.new(cSl_pred, 25) // 设置预测颜色
color cSMA = color.new(chart.fg_color, 50) // 设置SMA颜色
color cPma = color.new(cSlp, 35) // 设置PMA颜色
// 绘制主图
plot(pma, "PMA", color.blue) // 绘制PMA曲线
plot(predictPMA, "Predict", cSl_pred) // 绘制预测PMA
plot(sma, "SMA", color.gray) // 绘制SMA曲线 代码应用品种及参数建议 根据不同品种和市场的特点,建议使用以下参数进行优化: 适用品种 推荐参数 (length) 说明 股票 20-50 适合于中长期趋势的股票交易,较长的`length`有助于平滑价格波动。 外汇 10-30 适合外汇市场的高波动特性,较短的`length`能较快响应市场变化。 期货 15-40 适合期货市场的多变性,`length`设置为中等可以较好适应波动。 加密货币 10-50 加密货币市场波动剧烈,短期内的响应较为重要。 代码优化建议 使用`ta.linreg_slope()`代替手动计算斜率,简化代码并提升计算速度。 为高波动品种添加ATR(Average True Range)滤波器,减少误信号。 结合更高阶的回归模型,进一步提高预测精度,减少偏差。 允许用户自定义SMA和PMA交叉阈值,增加策略的灵活性。 代码调试方法 使用`plot(slope)`来可视化斜率的变化,帮助判断趋势的强弱。 调节`length`参数,观察不同设置下PMA和SMA的变化,调整最适合的周期。 对比SMA与PMA在不同市场环境下的表现,分析信号的有效性。 使用历史回测功能,验证不同品种和市场条件下的表现。 编辑总结 该Pine Script代码通过结合SMA与线性回归斜率,提出了无滞后移动平均(PMA)概念,显著减少了传统SMA的滞后性,并通过预测未来的PMA和Slope为交易者提供更多的信号。尽管该方法在剧烈波动市场中表现出较好的效果,但需要根据不同市场和品种调整参数。优化后的PMA不仅适应性强,还能提供更加精准的市场判断。 术语解释 PMA:预测移动平均(Projected Moving Average),一种通过结合线性回归斜率预测未来价格的移动平均方法。 SMA:简单移动平均(Simple Moving Average),通过计算一定周期内的平均值来平滑价格数据。 Slope:线性回归斜率,表示价格变动的速度和方向。 ATR:平均真实波幅(Average True Range),衡量市场波动性的指标。 2025年相关大事件 2025年2月:John Ehlers在TASC期刊发布了“Removing Moving Average Lag”文章,提出了无滞后移动平均的理论。 2025年3月:TradingView发布了Pine Script v6,新增了对线性回归斜率的原生支持。 来源:今日美股网lg...