Harmonacci Patterns 11.6

Metatrader Indicator (MT4/MT5)

  • Overview

    The Harmonacci Patterns indicator is the ultimate tool for traders who take fibonacci projections seriously. It's the most comprehensive harmonic price formation auto-recognition indicator available for the MetaTrader platform, capable of detecting 19 different patterns. In addition to plotting primary, derived, and complementary fibonacci projections, the indicator also evaluates past price action and displays every past pattern. It even analyzes its own quality and performance.

    But that's not all! The indicator also includes a multi-symbol and multi-timeframe scanner, displays suitable stop-loss and take-profit levels, and uses breakouts to signal suitable trades. Plus, it plots all the pattern ratios on the chart and includes email/sound/visual/push alerts to help you stay on top of potential trades.

    Inspired by Mr. Scott M. Carney's book -Harmonic Trading Vol. 1-, this indicator has been designed to meet the needs of even the most demanding traders. But it includes a unique twist to make it easier to trade: it waits for a donchian breakout in the right direction before signaling the trade, making its signals highly reliable.

    Fibonacci projections are vector-independent, and the indicator even plots the ABCD projection.

    Usage Tips

    • The amplitude parameter controls the pattern size in bars
    • Load the scanner indicator once to monitor multiple symbols and timeframes
    • Patterns can expand, but signal breakouts mostly do not: wait for signals
    • Use the suitable stop-loss and take-profit levels displayed by the indicator

    Technical Details

    • The indicator evaluates at bar closing only
    • Patterns are displayed as soon as the XD and CD ratios are valid
    • Patterns can expand, repaint, and become other patterns, with different names
    • Breakouts are mostly non-repainting and sufficient to reverse the market movement
    • Set a higher breakout period to decrease the chances of the indicator repainting
    • Stop-loss and take-profit levels are calculated using fibo ratios
    • The scanner loads blank and never scans patterns from the past
    • The scanner opens charts using your default chart template

    Trading Guidelines

    • Suitable instruments: Forex, Commodities, Indices, Stocks and Crypto
    • Suitable timeframes: Monthly, Weekly, Daily, 12 Hours, 8 Hours, 4 Hours, 2 Hours and 1 Hour

    Please note that some pattern names have been renamed to self-explanatory alternatives to comply with a trademark complaint from Mr. Scott M. Carney, who owns the following trademarks in the USA: Harmonics, Harmonic Trading, Bat Pattern, Butterfly Pattern, Shark Pattern, Crab Pattern, and Five-O Pattern.

    Supported Harmonic Price Formations

    Name Min XB Max XB Min AC Max AC Min DB Max BD Min XD Max XD
    Flying Fox 0.382 0.5 0.382 0.886 1.618 2.618 0.886 0.886
    Gartley 0.618 0.618 0.382 0.886 1.272 1.618 0.786 0.786
    Lobster 0.382 0.618 0.382 0.886 2.24 3.618 1.618 1.618
    Dragonfly 0.718 0.718 0.382 0.886 1.618 2.618 1.272 1.618
    Cypher 0.382 0.618 1.13 1.414 1.272 2.0 0.786 0.786
    Barracuda - - 1.13 1.618 1.618 2.24 0.886 1.13
    Alt Flying Fox 0.382 0.382 0.382 0.886 2.0 3.618 1.13 1.13
    Deep Lobster 0.886 0.886 0.382 0.886 2.618 3.618 1.618 1.618
    White Swan 1.382 2.618 0.236 0.5 1.128 2.0 1.126 2.618
    Black Swan 0.382 0.724 2.0 4.237 0.5 0.886 0.382 0.886
    Max Bat 0.382 0.618 0.382 0.886 1.272 2.618 0.886 0.886
    Max Gartley 0.382 0.618 0.382 0.886 1.128 2.236 0.618 0.786
    Max Dragonfly 0.618 0.886 0.382 0.886 1.272 2.618 1.272 1.618
    Alt Barracuda 0.446 0.618 0.618 0.886 1.618 2.618 1.128 1.128
    A Lobster 0.276 0.446 1.128 2.618 1.618 2.618 0.618 0.618
    A Dragonfly 0.382 0.618 1.128 2.618 1.272 1.272 0.618 0.786
    A Flying Fox 0.382 0.618 1.128 2.618 2 2.618 1.128 1.128
    A Gartley 0.618 0.786 1.128 2.618 1.618 1.618 1.272 1.272
    Sea Pony 0.128 3.618 0.382 0.5 1.618 2.618 0.618 3.618

    A brief introduction

    The harmonacci methodology utilizes the recognition of specific price patterns and the alignment of exact Fibonacci ratios to determine highly probable reversal points in the financial markets. This methodology assumes that trading patterns or cycles, like many patterns and cycles in life, repeat themselves. The key is to identify these patterns, and to enter or to exit a position based upon a high degree of probability that the same historic price action will occur. Although these patterns are not 100% accurate, these situations have been historically proven. If these set-ups are identified correctly, it is possible to identify significant opportunities with a very limited risk.

    The Potential Reversal Zone (PRZ)

    The concept of the Potential Reversal Zone (PRZ) was originally outlined by Scott M. Carney in his book, Harmonic Trading Vol 1. A wholeheartedly recommended reading.

    History has proven that a convergence of Fibonacci numbers and price patterns provides a highly probable area for a reversal. This area of convergence is called the potential reversal zone. When three, four, or even five numbers come together within a specific area, you must respect the high probability for some type of reversal.

    A Potential Reversal Zone (PRZ) represents the critical areas where the flow of buying and selling is potentially changing. These fibonacci price zones attempt to identify the price levels where imbalanced overbought and oversold situations are reversing back to their respective equilibrium level.

    An ideal reversal usually tests all of the price levels in the Potential Reversal Zone (PRZ) on the initial test. The predominant trend usually reverses from this initial test of the entire PRZ and continues in the reversal direction shortly thereafter. In an ideal reversal, the price bar that tests all of the fibonacci projections in the PRZ is called the Terminal Price Bar.

    The trade must be taken when the Potential Reversal Zone (PRZ) has been tested and rejected by a Terminal Price Bar or a strong breakout has taken place in the reversal direction without testing all the PRZ levels. The farthest price level of the PRZ or the Point X of the pattern are suitable stop-loss levels.

    Harmonacci Ratios

    The indicator calculates all the important fibonacci ratios for the XA and BC vectors of the pattern, and plots them by the Point D if applicable.

    Primary Ratios
    Directly derived from the Fibonnaci Number Sequence.
    - 0.618 = Primary Ratio
    - 1.618 = Primary Projection
    Primary Derived Ratios
    - 0.786 = Square root of 0.618
    - 0.886 = Fourth roof of 0.618 or Square root of 0.786
    - 1.130 = Fourth root of 1.618 or Square root of 1.27
    - 1.270 = Square root of 1.618
    Complementary Derived Ratios
    - 0.382 = (1 - 0.618) or 0.618e2
    - 0.500 = 0.770e2
    - 0.707 = Square root of 0.50
    - 1.410 = Square root of 2.0
    - 2.000 = 1 + 1
    - 2.240 = Square root of 5
    - 2.618 = 1.618e2
    - 3.141 = Pi
    - 3.618 = 1 + 2.618

    Trade Execution

    Once a pattern is detected, the following steps have to be taken, which can lead to take or discard the trade. Bear in mind that a pattern is not valid by itself and it can expand as long as it likes. Your job has an trader is to assess the validity of the pattern and the potential reversal zone before entering the market.

    1. Pattern Recognition
    This indicator auto-detects and alerts harmonacci patterns.
    2. Find the Potential Reversal Zone (PRZ)
    Evaluate the fibonacci projections plotted on the chart by the indicator and look for strength signs. Can you find at least three converging projections? Do you see primary ratios? Is the ABCD projection present?
    3. Wait until the PRZ is rejected by the market
    The PRZ can be tested and rejected by one single Terminal Price Bar, or the market can reverse and breakout the PRZ without testing all the fibonacci projections. In any case, the market has to move before you take the trade. You are a follower, not a predictor.

    4. Enter the market setting the proper stop-loss
    Trade the breakout or the rejection of the PRZ and set the proper stop-loss. The farthest price level of the PRZ or the Point X of the pattern are suitable stop-loss levels.
    5. Position Management
    It is recommended to reap partial profits as soon as possible to lock into a free ride. Scott M. Carney proposes a very interesting position management system based on a 0.382 Trailing Stop, measured from the reversal point to the reversal extreme.

    The Potential Reversal Zone (PRZ) is a crucial element in the trading process. Hence the importance of vector-independent primary, derived and complementary fibonacci projections, which all other indicators ignore completely.

  • Input parameters

    When loading the expert 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 parameter controls the size of the patterns to be found in the chart. There is no optimum value for this parameter, but it is needed to avoid the clutter of overlapping patterns in the chart. Set a value that displays patterns of acceptable size relative to your screen size.
    Algorithmic wiggle room for pattern recognition. Increase it to find more patterns.
    Breakout Period
    Donchian breakout period for the trading signals.
    Max History Bars
    Amount of history bars to evaluate when the indicator loads.
    Display Stats
    Enable or disable performance screen stats.
    Display Points
    Display price point labels (X, A, B, C, D labels).
    Display Ratios
    Display pattern ratios.
    Display Projections
    Display the Potential Reversal Zone (PRZ)
    Display SL/TP Levels
    Display suitable stop-loss and take-profit levels.
    Pattern Settings
    Choose what patterns to scan for: disable all those you do not use.
    Drawing Settings
    Configure the colors of bullish and bearish patterns, as well as font sizes.
    Enable or disable ratios and choose your own ratio colors.
    Display or hide the Fibonacci projections on the chart.
    Enable or disable breakouts, and set your desired arrow sizes and colors.
    Enable display/email/push/sound alerts for breakouts, patterns or both.
  • ? FAQ
    Hey! I know all these patterns with different names!
    We are aware. Sadly, the writer of the book owns trademarks with all the pattern names and we are legally forbidden from using any of them. We've replaced the pattern names with obvious and self
    Does the indicator repaint?
    Yes, it does. The last point of the wave can expand as long as it likes, therefore the indicator must repaint. It is your job as an harmonic trader to assess the validity of the Potential Reversal Zone (PRZ) and wait until it has been rejected to take the trade properly. To make things easier, the indicator implements a trading signal based on price breakouts, which is evaluated after a pattern is formed. This helps timing the trade because most patterns do not expand any more after a meaningful breakout has happened in the opposite direction.
    Pattern rations in the chart differ from the definition ones...
    They do, because the indicator displays the actual ratios of the pattern. As long as the ratios of the pattern are inside the pattern definition
    When is a pattern displayed?
    A pattern is displayed when the D point exists and all ratios of the pattern are valid.
    Does it implement alerts?
    Yes, of all kinds.
  • </> Developers

    In order to build your expert advisor, you can read data from the indicator using the iCustom() function as exemplified below. The indicator has one extra buffer which only purpose is to store trading signals as constants: this is the only buffer you need to read from. Copy and paste the code below into your EA, and replace the indicator name of the iCustom() call with your own.

    //---- Step 1: Define constants in your EA
    //---- Constants
    #define OP_BUY_FlyingFox            1
    #define OP_SELL_FlyingFox           2
    #define OP_BUY_Gartley              3
    #define OP_SELL_Gartley             4
    #define OP_BUY_Lobster              5
    #define OP_SELL_Lobster             6
    #define OP_BUY_Dragonfly            7
    #define OP_SELL_Dragonfly           8
    #define OP_BUY_BARRACUDA                9
    #define OP_SELL_BARRACUDA               10
    #define OP_BUY_CYPHER               11
    #define OP_SELL_CYPHER              12
    #define OP_BUY_ALTERNATE_FlyingFox  13
    #define OP_SELL_ALTERNATE_FlyingFox 14
    #define OP_BUY_DEEP_Lobster         15
    #define OP_SELL_DEEP_Lobster        16
    #define OP_BUY_WHITE_SWAN           17
    #define OP_SELL_WHITE_SWAN          18
    #define OP_BUY_BLACK_SWAN           19
    #define OP_SELL_BLACK_SWAN          20
    #define OP_BUY_MAX_FlyingFox        21
    #define OP_SELL_MAX_FlyingFox       25
    #define OP_BUY_MAX_Gartley          26
    #define OP_SELL_MAX_Gartley         27
    #define OP_BUY_MAX_Dragonfly        28
    #define OP_SELL_MAX_Dragonfly       29
    #define OP_BUY_A_Lobster            30
    #define OP_SELL_A_Lobster           31
    #define OP_BUY_A_Dragonfly          32
    #define OP_SELL_A_Dragonfly         33
    #define OP_BUY_A_FlyingFox          34
    #define OP_SELL_A_FlyingFox         35
    #define OP_BUY_A_Bartley            36
    #define OP_SELL_A_Bartley           37
    #define OP_BUY_SEA_PONY             38
    #define OP_SELL_SEA_PONEY           39
    #define OP_BUY_ALT_BARRACUDA        40
    #define OP_SELL_ALT_BARRACUDA       41
    //---- Step 2: Read values from the signal buffer
    int start()
    // Read pattern and breakout buffer
    double pattern  = iCustom(Symbol(), Period(), "PZ_Harmonacci_LICENSE", 0, 1);
    double breakout = iCustom(Symbol(), Period(), "PZ_Harmonacci_LICENSE", 1, 1);
    // Do something
    if(pattern == OP_BUY_FlyingFox)        { /* Your code for bullish flying fox pattern */ }
    if(pattern == OP_SELL_FlyingBox)       { /* Your code for bearish flying fox 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_Lobster)       { /* Your code for bullish Lobster pattern */ }
    if(pattern == OP_SELL_Lobster)      { /* Your code for bearish Lobster pattern */ }
    // Trade breakouts 
    if(breakout == OP_BUY)           { /* Your code for bullish breakout (blue arrow) */}
    if(breakout == OP_SELL)          { /* Your code for bearish breakout (red arrow) */}
    // Do nothing
    if(pattern == EMPTY_VALUE && breakout == EMPTY_VALUE) { /* No pattern or breakout */}
    // Exit


Harmonacci Patterns Indicator for Metatrader
Harmonacci Patterns Indicator for Metatrader
Harmonacci Patterns Indicator for Metatrader
Harmonacci Patterns Indicator for Metatrader
Harmonacci Patterns Indicator for Metatrader
Harmonacci Patterns Indicator for Metatrader
Harmonacci Patterns Indicator for Metatrader
Harmonacci Patterns Indicator for Metatrader
Harmonacci Patterns Indicator for Metatrader
Harmonacci Patterns Indicator for Metatrader
Harmonacci Patterns Indicator for Metatrader
Harmonacci Patterns Indicator for Metatrader
Harmonacci Patterns Indicator for Metatrader


Video explainer