Library "FunctionDynamicTimeWarping"
"In time series analysis, dynamic time warping (DTW) is an algorithm for
measuring similarity between two temporal sequences, which may vary in
speed. For instance, similarities in walking could be detected using DTW,
even if one person was walking faster than the other, or if there were
accelerations and decelerations during the course of an observation.
DTW has been applied to temporal sequences of video, audio, and graphics
data — indeed, any data that can be turned into a linear sequence can be
analyzed with DTW. A well-known application has been automatic speech
recognition, to cope with different speaking speeds. Other applications
include speaker recognition and online signature recognition.
It can also be used in partial shape matching applications."
"Dynamic time warping is used in finance and econometrics to assess the
quality of the prediction versus real-world data."
~~ wikipedia

cost_matrix(a, b, w)
  Dynamic Time Warping procedure.
    a: array<float>, data series.
    b: array<float>, data series.
    w: int , minimum window size.
  Returns: matrix<float> optimum match matrix.

  perform a backtrace on the cost matrix and retrieve optimal paths and cost between arrays.
    M: matrix<float>, cost matrix.
  Returns: tuple:
array<int> aligned 1st array of indices.
array<int> aligned 2nd array of indices.
float final cost.

report(a, b, w)
  report ordered arrays, cost and cost matrix.
    a: array<float>, data series.
    b: array<float>, data series.
    w: int , minimum window size.
  Returns: string report.
Pine library

In true TradingView spirit, the author has published this Pine code as an open-source library so that other Pine programmers from our community can reuse it. Cheers to the author! You may use this library privately or in other open-source publications, but reuse of this code in a publication is governed by House Rules.


The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this library?

Copy the following line and paste it in your script.