当前位置:首页|资讯

线性回归振荡器(Linear Regression Oscillator,LRO)的指标代码

作者:米波聊指标发布时间:2024-09-11

这段 Pine Script™ 是用于绘制 线性回归振荡器(Linear Regression Oscillator,LRO)的指标代码,分析股价的线性趋势,并提供超买/超卖信号。它同时包含一些视觉增强的功能,如颜色变化、信号标记和反转信号。以下是对代码的详细分析:

1. 用户输入

  • length: 定义了线性回归的回溯周期(默认为 20)。

  • upperlower: 设定了振荡器的上限和下限(默认为 1.5 和 -1.5),用来判断市场的超买和超卖区域。

  • candles: 布尔值,用于决定是否根据振荡器的值改变K线的颜色。

  • col_upcol_dn: 定义了上涨和下跌的颜色。

2. 数据源定义

  • source: 选取当前柱(bar)的收盘价作为数据源。

  • lowesthighest: 用于存储最近 5 根 K 线的最低和最高价格,这在后面的反转信号中有使用。

3. 线性回归振荡器计算

  • 函数 linear_regression_osc:计算线性回归的斜率(slope)和截距(intercept),并生成线性回归振荡器值。核心部分是通过循环求和计算斜率和截距,并使用这些值计算出每一根柱的回归值。


pine

复制代码

m = (n * sum_xy - sum_x * sum_y) / (n * sum_x_squared - sum_x * sum_x) c = (sum_y - m * sum_x) / n

这部分通过手动计算线性回归模型中的斜率 m 和截距 c,并将其应用到每根 K 线的索引上来计算对应的回归值。

4. 振荡器的标准化

  • 将线性回归振荡器的值通过 移动平均标准差 进行标准化处理:


pine

复制代码

linear_regression := (linear_regression - ta.sma(linear_regression, 100)) / ta.stdev(linear_regression, 100)

这样处理后,振荡器值会围绕0波动,便于超买和超卖的识别。

5. 信号条件

  • cond1cond2: 用于检测线性回归值是否与0发生交叉,从而发出趋势反转信号。

  • cond_1cond_2: 用于检测线性回归振荡器的自我交叉(例如,当振荡器值高于上限时发生下穿信号)。


pine

复制代码

cond1 = ta.crossunder(linear_regression, 0) cond2 = ta.crossover(linear_regression, 0)

6. 最大和最小值存储

  • 使用 lowest.push(low)highest.push(high) 将最近 5 个 K 线的最低价和最高价保存到数组中,用于后续的价格反转信号和无效化价格水平的计算。

  • 当数组超过 5 个元素时,移除最早的数据点:


pine

复制代码

switch    lowest.size() > 5 => lowest.shift(), highest.shift()

7. 可视化

  • 振荡器的绘制:使用 plot 函数根据振荡器的数值绘制颜色渐变的区域。

  • 阈值和零线:绘制上限和下限,以及中间的0轴线来辅助视觉判断。

  • 信号标记:当条件满足时,在图表上添加标记,标注趋势反转的信号。


pine

复制代码

plotchar(cond1 ? 0 : na, "", "◆", ...) plotchar(cond_1, "", "◇", ...)

  • 标签绘制:当振荡器超过阈值或者发生趋势反转时,在图表上显示标签来帮助交易者做出判断。


pine

复制代码

label.new(chart.point.from_index(bar_index, low), "▲", ...)

8. 无效化价格水平

  • 当信号条件满足时,将无效化价格水平绘制在图表上,并使用不同的颜色来标记价格无效的点:


pine

复制代码

plot(not ta.change(points) ? points : na, ...)

9. K线颜色变化

  • 根据振荡器值,选择性改变K线的颜色:


pine

复制代码

candle_col = candles ? (linear_regression < 0 ? col_dn : col_up) : na plotcandle(open, high, low, close, ...)

总结:

这段代码主要实现了线性回归振荡器,用于判断市场的趋势反转和价格超买/超卖情况,并通过一系列条件和可视化工具,帮助用户进行交易判断。




Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1