PINE LIBRARY

FunctionDynamicTimeWarping

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
reference:
en.wikipedia.org/wiki/Dynamic_time_warping
towardsdatascience.com/dynamic-time-warping-3933f25fcdd
github.com/shunsukeaihara/pydtw/blob/master/pydtw/dtw.pyx

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

traceback(M)
  perform a backtrace on the cost matrix and retrieve optimal paths and cost between arrays.
  Parameters:
    M: matrix<float>, cost matrix.
  Returns: tuple:
array<int> aligned 1st array of indices.
array<int> aligned 2nd array of indices.
float final cost.
reference:
github.com/shunsukeaihara/pydtw/blob/master/pydtw/dtw.pyx

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

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.

Disclaimer