• Overview
  • Reviews (2)
  • Comments (170)
  • What's new

PZ Harmonics

Finding harmonic patterns in the chart and calculating ratios and projections can be time consuming, but not anymore! The PZ Harmonics indicator is probably the most complete harmonic patterns auto-recognition indicator, and has a set of features which make it unique.

  • It detects Bat, Gartley, Crab, Butterfly, Cypher, Alternate bat and Shark patterns
  • It plots the pattern name and vector ratios on the chart
  • It plots primary, secondary and derived Fibonacci projections
  • Fibonacci projections are vector-independent (0.618BC is not the same as 0.618XA)
  • It evaluates past price action and displays every past pattern (not just the last one)
  • It waits for a meaningful breakout after a pattern has been formed to signal the trade
  • It differentiates between perfect and unperfect patterns
  • It plots the AB=CD projection!
Inspired by Scott M. Carney's book, this indicator has been designed to fulfill the needs of the most purist and exigent traders.


When loading the indicator to any chart, you will be presented with a set of options as input parameters. Don't despair if you think they are too many, because parameters are grouped into self-explanatory blocks. This is what each block of parameters does.

  • Amplitude - The indicator is constantly looking for tops and bottoms. The amplitude is the minimal amount of bars where there will not be two tops or two bottoms. Increase the period to see bigger patterns or for intraday trading. You can also have several indicators loaded on the chart with different amplitudes.
  • OnlyPerfectPatterns - Enable this option to display only perfect and pure harmonic patterns, with perfect ratio measurements.
  • MaxHistoryBars - This parameter controls how many past bars are examined to minimize memory usage.
  • SuperLightMode - Enable this option to display only colored triangles to minimize memory usage.
  • Patterns - Choose pattern colors and enable/disable the patterns you want to use.
  • Labels - Customize the label's font sizes and colors.
  • Ratios - Customize the ratio's font size and line width.
  • Projections - Customize the Fibonacci projections font size, line length and line width
  • Breakouts - This indicator waits for a meaningful breakout after a pattern has been formed to signal the trade. Increase the BreakoutPeriod parameter to decrease repainting or for intraday trading. This feature can also be disabled.
  • Alerts - Enable display/email/push/sound alerts for patterns and breakouts.

Some Nitty-Gritty Details

  • The indicator is evaluated every bar, not every tick.
  • The D point of the pattern repaints as the pattern expands.
  • You can have several indicators on the chart with different amplitudes.
  • An alert is displayed when the pattern forms and also when a price breakouts confirms the pattern
  • A small percentage of trading signals can repaint (Increase the DonchianBreakout parameter for intraday trading).
  • Harmonic Patterns can be confirmed with oscillator divergences or Bollinger Bands, for example.
  • It implements visual, sound, email and push alerts for patterns and breakouts


In order to build an expert advisor, you can read data from the indicator using the iCustom() function as exemplified below.

//---- Step 1: Define constants in your EA
#define OP_BUY_BAT            0
#define OP_SELL_BAT           1
#define OP_BUY_GARTLEY        2
#define OP_SELL_GARTLEY       3
#define OP_BUY_CRAB           4
#define OP_SELL_CRAB          5
#define OP_BUY_BUTTERFLY      6
#define OP_SELL_BUTTERFLY     7
#define OP_BUY_SHARK          8
#define OP_SELL_SHARK         9
#define OP_BUY_CYPHER         10
#define OP_SELL_CYPHER        11

//---- Step 2: Read values from the signal buffer
int start()
   // Read pattern and breakout buffer
   double pattern  = iCustom(Symbol(), Period(), "Market\\pz-harmonic-trading", 0, 1);
   double breakout = iCustom(Symbol(), Period(), "Market\\pz-harmonic-trading", 1, 1);
   // Do something
   if(pattern == OP_BUY_BAT)        { /* Your code for bullish bat pattern */ }
   if(pattern == OP_SELL_BAT)       { /* Your code for bearish bat pattern */ }
   if(pattern == OP_BUY_GARTLEY)    { /* Your code for bullish gartley pattern */ }
   if(pattern == OP_SELL_GARTLEY)   { /* Your code for bearish gartley pattern */ }
   if(pattern == OP_BUY_CRAB)       { /* Your code for bullish crab pattern */ }
   if(pattern == OP_SELL_CRAB)      { /* Your code for bearish crab pattern */ }
   if(pattern == OP_BUY_BUTTERFLY)  { /* Your code for bullish butterfly pattern */ }
   if(pattern == OP_SELL_BUTTERFLY) { /* Your code for bearish butterfly pattern */ }
   if(pattern == OP_BUY_SHARK)      { /* Your code for bullish shark pattern */ }
   if(pattern == OP_SELL_SHARK)     { /* Your code for bearish shark pattern */ }
   if(pattern == OP_BUY_CYPHER)     { /* Your code for bullish cyhper pattern */ }
   if(pattern == OP_SELL_CYPHER)    { /* Your code for bearish cypher pattern */ }
   if(breakout == OP_BUY)           { /* Your code for bullish breakout (blue arrow) */}
   if(breakout == OP_SELL)          { /* Your code for bearish breakout (red arrow) */}
   if(pattern == EMPTY_VALUE && breakout == EMPTY_VALUE) { /* Your code if no pattern or breakout */}
   // Exit


Arturo López Pérez, private investor and speculator, software engineer and founder of Point Zero Trading Solutions.

Pisethdara Keo
2014.06.16 17:56 

Thanks to Pz Harmonic, my trading result has changed... Earn more than 100 pips in just 4 days. Also, my risk is limited and smaller... Now I'm quite happy in tradings.

Etienne Hogue
2014.03.12 20:43 

I just bought this indicator last night, harmonics looks very promising. I put two trades in and checked them the morning after, won both by 40 pips. I will be writing a review further on detailing my progress, I know 299 credits is a lot to spend for people but so far so good.

Version 4.5 - 2016.04.26
- Improved alerts
Version 4.0 - 2016.02.18
- Indicator renamed due to copyright complaint from original author
- Improved ratio calculations
- Minor drawing bug fixes
Version 3.0 - 2016.02.02
- Added accuracy calculations for each pattern
Version 2.0 - 2015.07.29
- Added multi-timeframe pattern scanner
- Added "Alternate Bat" pattern