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:
Returns: float
line_time_rate(_c, _b, _a) Compute the time rate of the line AB divided by the the line BC
Parameters:
Returns: float
is_inrange(value, min, max) Check if value is within min/max range of tolerance.
Parameters:
Returns: bool
isHarmonicTriangle(rate_cba, margin_of_error) Check if the rate(s) correspond to pattern ("Harmonic Triangle").
Parameters:
Returns: bool
is2Tap(rate_cba, margin_of_error) Check if the rate(s) correspond to pattern ("2Tap", 'Double Top / Bottom').
Parameters:
Returns: bool
is3Tap(rate_edc, rate_cba, margin_of_error) Check if the rate(s) correspond to pattern ("3Tap", "Triple Top / Bottom").
Parameters:
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:
Returns: bool
isABCD(rate_cba, rate_dcb, margin_of_error) Check if the rate(s) correspond to pattern ("AB=CD").
Parameters:
Returns: bool
isBat(rate_edc, rate_dcb, rate_cba, rate_eda, margin_of_error) Check if the rate(s) correspond to pattern ("Bat").
Parameters:
Returns: bool
isButterfly(rate_edc, rate_dcb, rate_cba, rate_eda, margin_of_error) Check if the rate(s) correspond to pattern ("Butterfly").
Parameters:
Returns: bool
isGartley(rate_edc, rate_dcb, rate_cba, rate_eda, margin_of_error) Check if the rate(s) correspond to pattern ("Gartley").
Parameters:
Returns: bool
isCrab(rate_edc, rate_dcb, rate_cba, rate_eda, margin_of_error) Check if the rate(s) correspond to pattern ("Crab").
Parameters:
Returns: bool
isShark(rate_edc, rate_dcb, rate_cba, rate_eda, margin_of_error) Check if the rate(s) correspond to pattern ("Shark").
Parameters:
Returns: bool
is5o(rate_edc, rate_dcb, rate_cba, rate_eda, margin_of_error) Check if the rate(s) correspond to pattern ("5o").
Parameters:
Returns: bool
isWolfe(rate_edc, rate_dcb, rate_cba, rate_eda, margin_of_error) Check if the rate(s) correspond to pattern ("Wolfe").
Parameters:
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:
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:
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:
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:
Returns: bool
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
Release Notes
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"
Release Notes
v3Added:
extract() Extract the available patterns from zigzag prices.
Returns: string array.
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 publications is governed by House Rules.
Disclaimer
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.
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 publications is governed by House Rules.
Disclaimer
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.