 # Levinson-Durbin Autocorrelation Extrapolation of Price [Loxx]

업데이트됨 Levinson-Durbin Autocorrelation Extrapolation of Price is an indicator that uses the Levinson recursion or Levinson–Durbin recursion algorithm to predict price moves. This method is commonly used in speech modeling and prediction engines.

What is Levinson recursion or Levinson–Durbin recursion?
Is a linear algebra prediction analysis that is performed once per bar using the autocorrelation method with a within a specified asymmetric window. The autocorrelation coefficients of the window are computed and converted to LP coefficients using the Levinson algorithm. The LP coefficients are then transformed to line spectrum pairs for quantization and interpolation. The interpolated quantized and unquantized filters are converted back to the LP filter coefficients to construct the synthesis and weighting filters for each bar.

Data inputs
Source Settings: -Loxx's Expanded Source Types. You typically use "open" since open has already closed on the current active bar
LastBar - bar where to start the prediction
PastBars - how many bars back to model
LPOrder - order of linear prediction model; 0 to 1
FutBars - how many bars you want to forward predict

Things to know
• Normally, a simple moving average is caculated on source data. I've expanded this to 38 different averaging methods using Loxx's Moving Avreages.
• This indicator repaints

Included
• Bar color muting

Implementing the Levinson-Durbin Algorithm on the StarCore™ SC140/SC1400 Cores

LevinsonDurbin_G729 Algorithm, Calculates LP coefficients from the autocorrelation coefficients. Intel® Integrated Performance Primitives for Intel® Architecture Reference Manual

릴리즈 노트:
Changed plot to line and cleaned up coordinate drawing functions.
릴리즈 노트:
Coordinate cleanup.
릴리즈 노트:
Updated drawing functions.
릴리즈 노트:
Increased lookback range to max of 2000 bars. Future bar draws are limited to math.min(array output calcs, FutBars) settings. All settings work now.. You'll need to adjust the settings if it shows an error that ran out of processing time or took too long to execute.
릴리즈 노트:
Fixed error and removed smoothing, it wasn't having the desired effect.
릴리즈 노트:
Removed unused inputs.
릴리즈 노트:
Updated lines calculation
릴리즈 노트:
I added the following comment to the code so folks can better understand what is going on here. You can see the original Levinson-Durbin Recursion algorithm in the commented out note.

// Original Levinson-Durbin algorithm used to implement Levinson recursion
// where a - coefficients of the model, p - order of the model.
// Here we need to find the autoregressive coefficients by solving directly
// our set of equations with n=2*p by the Levinson-Durbin method. Such method
// of prediction is called Prony Method; however, its disadvantage is the
// instability during the prediction of the future values of the series. That's
// why this method has not been included and instead we use a modified
// Levinson Recursion to calculate the prediction coefficients.
// I've included the origina method so one can compare the differences. You'll
// notice that both methods are very similar but the modified version gives the
// desired results. The difference is that the modified version calculates the
// coefficients a by decreasing the mean-root-square error on the training
// last n-p bars