RicardoSantos

HarmonicPattern

Library "HarmonicPattern"
Functions to detect/check harmonic patterns from provided values.

line_price_rate(point_c, point_b, point_a) Compute the price rate of the line AB divided by the the line BC
Parameters:
  • point_c: float, the price at point C.
  • point_b: float, the price at point B.
  • point_a: float, the price at point A.
Returns: float

line_time_rate(_c, _b, _a) Compute the time rate of the line AB divided by the the line BC
Parameters:
  • _c: float, the time or bar_index at point C.
  • _b: float, the time or bar_index at point B.
  • _a: float, the time or bar_index at point A.
Returns: float

is_inrange(value, min, max) Check if value is within min/max range of tolerance.
Parameters:
  • value: float, value to check tolerance.
  • min: float, minimum value in range of tolerance.
  • max: float, maximum value in range of tolerance.
Returns: bool

isHarmonicTriangle(rate_cba, margin_of_error) Check if the rate(s) correspond to pattern ("Harmonic Triangle").
Parameters:
  • rate_cba: float, percent rate of the triangle CBA . expects a negative rate.
  • margin_of_error: float, percent rate of expected error margin, default 0.05(5%).
Returns: bool

is2Tap(rate_cba, margin_of_error) Check if the rate(s) correspond to pattern ("2Tap", 'Double Top / Bottom').
Parameters:
  • rate_cba: float, percent rate of the triangle CBA . expects a negative rate.
  • margin_of_error: float, percent rate of expected error margin, default 0.05(5%).
Returns: bool

is3Tap(rate_edc, rate_cba, margin_of_error) Check if the rate(s) correspond to pattern ("3Tap", "Triple Top / Bottom").
Parameters:
  • rate_edc: float, percent rate of the triangle EDC . expects a negative rate.
  • rate_cba: float, percent rate of the triangle CBA . expects a negative rate.
  • margin_of_error: float, percent rate of expected error margin, default 0.05(5%).
Returns: bool

is4Tap(rate_gfe, rate_edc, rate_cba, margin_of_error) Check if the rate(s) correspond to pattern ("4Tap", "Quadruple Top / Bottom").
Parameters:
  • rate_gfe: float, percent rate of the triangle GFE. expects a negative rate.
  • rate_edc: float, percent rate of the triangle EDC . expects a negative rate.
  • rate_cba: float, percent rate of the triangle CBA . expects a negative rate.
  • margin_of_error: float, percent rate of expected error margin, default 0.05(5%).
Returns: bool

isABCD(rate_cba, rate_dcb, margin_of_error) Check if the rate(s) correspond to pattern ("AB=CD").
Parameters:
  • rate_cba: float, percent rate of the triangle CBA . expects a negative rate.
  • rate_dcb: float, percent rate of the triangle DCB. expects a negative rate.
  • margin_of_error: float, percent rate of expected error margin, default 0.05(5%).
Returns: bool

isBat(rate_edc, rate_dcb, rate_cba, rate_eda, margin_of_error) Check if the rate(s) correspond to pattern ("Bat").
Parameters:
  • rate_edc: float, percent rate of the triangle EDC . expects a negative rate.
  • rate_dcb: float, percent rate of the triangle DCB. expects a negative rate.
  • rate_cba: float, percent rate of the triangle CBA . expects a negative rate.
  • rate_eda: float, percent rate of the triangle EDA . expects a negative rate.
  • margin_of_error: float, percent rate of expected error margin, default 0.05(5%).
Returns: bool

isButterfly(rate_edc, rate_dcb, rate_cba, rate_eda, margin_of_error) Check if the rate(s) correspond to pattern ("Butterfly").
Parameters:
  • rate_edc: float, percent rate of the triangle EDC . expects a negative rate.
  • rate_dcb: float, percent rate of the triangle DCB. expects a negative rate.
  • rate_cba: float, percent rate of the triangle CBA . expects a negative rate.
  • rate_eda: float, percent rate of the triangle EDA . expects a negative rate.
  • margin_of_error: float, percent rate of expected error margin, default 0.05(5%).
Returns: bool

isGartley(rate_edc, rate_dcb, rate_cba, rate_eda, margin_of_error) Check if the rate(s) correspond to pattern ("Gartley").
Parameters:
  • rate_edc: float, percent rate of the triangle EDC . expects a negative rate.
  • rate_dcb: float, percent rate of the triangle DCB. expects a negative rate.
  • rate_cba: float, percent rate of the triangle CBA . expects a negative rate.
  • rate_eda: float, percent rate of the triangle EDA . expects a negative rate.
  • margin_of_error: float, percent rate of expected error margin, default 0.05(5%).
Returns: bool

isCrab(rate_edc, rate_dcb, rate_cba, rate_eda, margin_of_error) Check if the rate(s) correspond to pattern ("Crab").
Parameters:
  • rate_edc: float, percent rate of the triangle EDC . expects a negative rate.
  • rate_dcb: float, percent rate of the triangle DCB. expects a negative rate.
  • rate_cba: float, percent rate of the triangle CBA . expects a negative rate.
  • rate_eda: float, percent rate of the triangle EDA . expects a negative rate.
  • margin_of_error: float, percent rate of expected error margin, default 0.05(5%).
Returns: bool

isShark(rate_edc, rate_dcb, rate_cba, rate_eda, margin_of_error) Check if the rate(s) correspond to pattern ("Shark").
Parameters:
  • rate_edc: float, percent rate of the triangle EDC . expects a negative rate.
  • rate_dcb: float, percent rate of the triangle DCB. expects a negative rate.
  • rate_cba: float, percent rate of the triangle CBA . expects a negative rate.
  • rate_eda: float, percent rate of the triangle EDA . expects a negative rate.
  • margin_of_error: float, percent rate of expected error margin, default 0.05(5%).
Returns: bool

is5o(rate_edc, rate_dcb, rate_cba, rate_eda, margin_of_error) Check if the rate(s) correspond to pattern ("5o").
Parameters:
  • rate_edc: float, percent rate of the triangle EDC . expects a negative rate.
  • rate_dcb: float, percent rate of the triangle DCB. expects a negative rate.
  • rate_cba: float, percent rate of the triangle CBA . expects a negative rate.
  • rate_eda: float, percent rate of the triangle EDA . expects a negative rate.
  • margin_of_error: float, percent rate of expected error margin, default 0.05(5%).
Returns: bool

isWolfe(rate_edc, rate_dcb, rate_cba, rate_eda, margin_of_error) Check if the rate(s) correspond to pattern ("Wolfe").
Parameters:
  • rate_edc: float, percent rate of the triangle EDC . expects a negative rate.
  • rate_dcb: float, percent rate of the triangle DCB. expects a negative rate.
  • rate_cba: float, percent rate of the triangle CBA . expects a negative rate.
  • rate_eda: float, percent rate of the triangle EDA . expects a negative rate.
  • margin_of_error: float, percent rate of expected error margin, default 0.05(5%).
Returns: bool

is3Driver(rate_edc, rate_dcb, rate_cba, rate_eda, margin_of_error) Check if the rate(s) correspond to pattern ("3 Driver").
Parameters:
  • rate_edc: float, percent rate of the triangle EDC . expects a negative rate.
  • rate_dcb: float, percent rate of the triangle DCB. expects a negative rate.
  • rate_cba: float, percent rate of the triangle CBA . expects a negative rate.
  • rate_eda: float, percent rate of the triangle EDA . expects a negative rate.
  • margin_of_error: float, percent rate of expected error margin, default 0.05(5%).
Returns: bool

isConTria(rate_edc, rate_dcb, rate_cba, rate_eda, margin_of_error) Check if the rate(s) correspond to pattern ("Contracting Triangle").
Parameters:
  • rate_edc: float, percent rate of the triangle EDC . expects a negative rate.
  • rate_dcb: float, percent rate of the triangle DCB. expects a negative rate.
  • rate_cba: float, percent rate of the triangle CBA . expects a negative rate.
  • rate_eda: float, percent rate of the triangle EDA . expects a negative rate.
  • margin_of_error: float, percent rate of expected error margin, default 0.05(5%).
Returns: bool

isExpTria(rate_edc, rate_dcb, rate_cba, rate_eda, margin_of_error) Check if the rate(s) correspond to pattern ("Expanding Triangle").
Parameters:
  • rate_edc: float, percent rate of the triangle EDC . expects a negative rate.
  • rate_dcb: float, percent rate of the triangle DCB. expects a negative rate.
  • rate_cba: float, percent rate of the triangle CBA . expects a negative rate.
  • rate_eda: float, percent rate of the triangle EDA . expects a negative rate.
  • margin_of_error: float, percent rate of expected error margin, default 0.05(5%).
Returns: bool

isHnS(rate_fed, rate_feb, rate_edc, rate_dcb, rate_cba, rate_eda, margin_of_error) Check if the rate(s) correspond to pattern ("Head and Shoulders").
Parameters:
  • rate_fed: float, percent rate of the triangle FED. expects a negative rate.
  • rate_feb: float, percent rate of the triangle FEB. expects a negative rate.
  • rate_edc: float, percent rate of the triangle EDC . expects a negative rate.
  • rate_dcb: float, percent rate of the triangle DCB. expects a negative rate.
  • rate_cba: float, percent rate of the triangle CBA . expects a negative rate.
  • rate_eda: float, percent rate of the triangle EDA . expects a negative rate.
  • margin_of_error: float, percent rate of expected error margin, default 0.05(5%).
Returns: bool
Notes de version: added a extra calculation method for computing the margin of error of the rates, thanks to HeWhoMustNotBeNamed, CryptoArch_ for bringing it up 🙌

this adds a extra optional parameter to all the functions, "calculation_type" can be either "additive" or "multiplicative"
Notes de version: v3

Added:
extract() Extract the available patterns from zigzag prices.
  Returns: string array.

Bibliothèque Pine

Dans le véritable esprit de TradingView, l'auteur a publié ce code Pine en tant que bibliothèque open-source afin que d'autres programmeurs Pine de notre communauté puissent le réutiliser. Bravo à l'auteur ! Vous pouvez utiliser cette bibliothèque à titre privé ou dans d'autres publications open-source, mais la réutilisation de ce code dans une publication est régie par notre Règlement.

Clause de non-responsabilité

Les informations et les publications ne sont pas destinées à être, et ne constituent pas, des conseils ou des recommandations en matière de finance, d'investissement, de trading ou d'autres types de conseils fournis ou approuvés par TradingView. Pour en savoir plus, consultez les Conditions d'utilisation.

Vous voulez utiliser cette bibliothèque?

Copiez le texte dans le presse-papiers et collez-le dans votre script.