This indicator was designed based on Harmonic Pattern Book written by Scott Carney. It was simplified to user who may always used tools such as XABCD Pattern and Long Position / Short Position, which consume a lot of time, recommended for both beginner and expert of Harmonic Pattern Traders. XABCD Pattern require tool usage of Magnet tool either Strong Magnet, Week Magnet or none, which cause error or human mistake especially daily practice.
Simplified Guideline by sequence for Harmonic Pattern if using manual tools :
- Step 1 : Trade Identification - XABCD Pattern
- Step 2 : Trade Execution - Any manual tools of your choice
- Step 3 : Trade Management - Position / Short Position
- Inspired by design, code and usage of CAGR. Basic usage of custom range / interactive, pretty much explained here. Credits to TradingView.
- I use a lot of XABCD Pattern and Long Position / Short Position, require 5 to 10 minutes on average, upon determine the validity of harmonic pattern.
- Upon creating this indicator, I believed that time can be reduced, gain more confidence, reduce error during drawing XABCD, which helps most of harmonic pattern users.
- Table can positioned by any postion and font size can be resized.
- Table can be display through optimized display or manual control.
- Validility of harmonic pattern depends on BC ratio.
- Harmonic pattern can be displayed fully or optimized while showing BC ratio validity.
- Trade Execution at point D can be displayed on / off.
- Stop Loss and Take Profit can be calculated automatically or manually.
- Optimized table display based extend line setup and profit and loss setup.
- Execution zone can be offset to Point C, by default using Point D.
- Currency can be show or hide.
- Profit and Loss can be displayed on axis once line is extended.
█ HOW TO USE
- Step 1 : Trade Identification - Draw points from Point X to Point C. Dont worry about magnet, point will attached depends on High or Low of the candle.
- Step 2 : Trade Execution - Check the validity of BC to determine the validity of harmonic pattern generated. Pattern only generate 1 pattern upon success. Otherwise, redraw to other points.
- Step 3 : Trade Management - Determine the current candle either reach Point D or Potential Reversal Zone (PRZ). Check for Profit & Loss once reach PRZ.
█ USAGE LIMITATIONS
- Harmonic Patterns only limits to patterns mentioned in Harmonic Trading Volume 3 due to other pattern may have other or different philosophy.
- Only can be used for Daily timeframe and below due to bar_time is based on minutes by default.
- Not recommended for Weekly and Monthly timeframe.
- If Point X, A, B, C and D is next to each other, it is recommend to use lower timeframe.
- Automated alert is not supported for this release. However, alert can be done manually. Alert will updated on the version.
█ PINE SCRIPT LIMITATIONS
- Known bug for when calculate time in array, causing label may not appeared or offset.
- Unable to convert to library due to usage of array.get(). I prefer usage for a combination of array.get(id, 0), array.get(id, 1), array.get(id, 2) into custom function, however I faced this issue during make arrays of label. Index can be simply refered as int, for id, i not sure, already try id refered as simple, nothing happens.
- linefill.new() will appeared as diamond box if overused.
- Text in box.new() unable to use ternary condition or switch to change color. Bgcolor also affected.
- Label display is larger than XABCD tool. Hopefully in future, have function to resize label similar to XABCD tools.
- Trade Management (Profit & Loss) is calculated from Point A to D.
- Take Profit is calculated based on ratio 0.382 and 0.618 of Point A to D.
- Always check BC validity before proceed to Trade Management.
- Length of XABCD is equal to XAB plus BCD, where XAB and BCD are one to one ratio. Length is measured in time.
- Use other oscillator to countercheck. Normally use built-in Relative Strength Index (RSI) and Divergence Indicator to determine starting point of Point X and A.
█ HARMONIC PATTERNS SUPPORTED
// Credits to Scott M Carney, author of Harmonic Trading Volume 3: Reaction vs. Reversal
- Alt Bat - Page 101
- Bat - Page 98
- Crab - Page 104
- Gartley - Page 92
- Butterfly - Page 113
- Deep Crab - Page 107
- Shark - Page 119 - 220
- Pattern such as 5-0, perfect XABCD and ABCD that not included, will updated on either next version or new release.
- Point D time is for approximation only, not including holidays and extended session.
- Basic explaination for Harmonic Trading System (Trade Identification, Trade Execution and Trade Management).
- Harmonic Patterns values is pretty much summarized here including Stop Loss.
- Basic explanation for Alt Bat, Bat, Crab, Gartley, Deep Crab and Butterfly.
█ USAGE / TIPS EXAMPLES (Description explained in each image)
Remove bool X_higher_A.
Separate switch for bool X_lower_A.
- Add library PriceTimeInteractive
- Add library DeleteArrayObject
- Remove custom function for getprForTime() and replaced with pti.hlc_time()
- Remove custom function for delete drawings such as f_delete_label(), f_delete_line(), f_delete_linefill() and f_delete_box()
- Replace delete drawings with obj.delete()
- Update necessary comments
- Add library HarmonicDB
- Remove switch for i_f_gart and i_f_shark
- arr_B_XA1 renamed to spec_B_XA_min
- arr_B_XA2 renamed to spec_B_XA_max
- arr_C_AB1 renamed to spec_C_AB_min
- arr_C_AB2 renamed to spec_C_AB_max
- arr_D_BC1 renamed to spec_D_BC_min
- arr_D_BC2 renamed to spec_D_BC_max
- arr_D_XA renamed to spec_D_XA_nom
- arr_E_SL renamed to spec_E_SL_nom
- Rename short title from XABCD to XABCD_HP_CRI
- Add HarmonicSwitches library
- Add HarmonicCalculation library
- Remove necessary constants for inputs
- Remove f_diff(), f_pr_tuple(), f_avg_price(), f_avg_time(), f_abs(), f_abs_tuple(), f_ratio(), f_range() and f_price()
In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in a publication is governed by House Rules. You can favorite it to use it on a chart.