Monster Harmonics Indicator is a harmonic pattern indicator. It recognizes Gartley, Bat, Crab, Butterfly, Cypher, White Swan, Black Swan, Shark, AB=CD, Alt Bat, 3 Drives, Deep Crab and 5-0 patterns. Projected patterns that are not yet completed are recognized, too. Monster even shows the PRZ (Potential Reversal Zone).
Users can add their own user defined patterns to Monster.
Besides the current pattern, Monster also shows all patterns in the symbols history.
Monster will provide alerts for developing patterns.
Settings
Monster's default settings are good enough most of the time. Feel free to fine tune them to your needs.
- Show Control Panel? - show/hide control panel.
- Show Pattern Projections? - show/hide projected patterns.
- Show Invalidated Patterns? - show/hide invalidated patterns.
- Minimum Accuracy Percent - minimum accuracy percentage for pattern recognition.
- Price Must Touch All Minimum Ratios - set to true to force Monster to touch all minimum ratios, set this if you want the price to touch all minimum ratios and provide even better patterns.
- Show 'PatternName' Patterns? - show/hide specific pattern.
- Show Pattern Label? - set to true to show the pattern label in the chart.
- Show Pattern Accuracy? - set to true to show the pattern accuracy in the chart.
- Show Ratio Labels and Lines? - set to true to show the ratios of the pattern in the chart.
- Show Initialization User Patterns? - set to true to show the results of the initialization of the user
patterns in the Experts tab.
- Show Fibonacci Projections in PRZ? - show/hide Fibonacci projections in PRZ.
- Show Perfect Ratio Levels? - show/hide perfect Fibonacci projections in different color.
- Show Risk/Reward in PRZ? - show/hide risk/reward PRZ.
- Show Alerts? - enable/disable all alerts.
- Show Screen Alerts? - show/hide screen alerts.
- Email Alerts? - set to true to email alerts.
- Push Alert Notifications? - set to true to push alerts.
- Color Palette - choose a color palette for a 'Dark' or 'Light' background.
- colo(u)rs - you know what to do.
- Zigzag parameters - set ZigZag parameters.
Perfect Fibonacci projections are the Fibonacci retracement levels where the pattern should retrace or stop according to its definition.
The Potential Reversal Zone (PRZ) is split in a Risk and Reward part. The Reward part of the PRZ is the price of the D point of the pattern to the 0.382 Fibonacci retracement from the C or A point (whichever is higher or lower).
User Patterns
Users can add their own patterns to Monster. Just modify the Monster_UserPatterns.csv to include your patterns. The .csv file can be found
in the files folder of the User Data Directory. A sample pattern is already included in the file.
Control Panel
Beginning from the version 2.300, Monster features an optional Control Panel. The Control Panel shows the current detected pattern. You can enable and disable projected patterns and the PRZ. Keep in mind that Monster updates your new settings on the next tick, so changes can take some seconds. The Control Panel can be dragged and minimized. Removing the Control Panel removes the indicator entirely.
Free Demo
Monster will work in the Strategy Tester. However, only the last pattern, if any, in the virtual price feed is detected and displayed. This is a limitation of the Strategy Tester. Monster is best tested in Visual Mode as you can see the detected patterns in the display. Try EURUSD on H1 starting January 1, 2017.
Developers
Monster publishes the current pattern through the iCustom() function.Example script code:
#define PATTERN_NONE -1
#define PATTERN_GARTLEY
0
#define PATTERN_BAT 1
#define
PATTERN_CRAB 2
#define
PATTERN_BUTTERFLY 3
#define
PATTERN_CYPHER 4
#define
PATTERN_BLACK_SWAN 5
#define
PATTERN_WHITE_SWAN 6
#define
PATTERN_SHARK 7
#define
PATTERN_ABCD 8
#define
PATTERN_DRAGON 9
#define
PATTERN_ALTBAT 10
#define
PATTERN_DEEPCRAB 11
#define
PATTERN_3DRIVES 12
#define
PATTERN_50 13
#define IS_BULLISH 0
#define IS_BEARISH 1
void OnStart()
{
int maxBars = 200;
int
pattern = (int)iCustom( Symbol(),
Period(), "Market\\Monster Harmonics", "",
maxBars,
false, true, false, 90.0,
1, 0 );
int
direction = (int)iCustom( Symbol(),
Period(), "Market\\Monster Harmonics", "",
maxBars,
false, true, false, 90.0,
1, 1 );
bool
projected = (bool)iCustom( Symbol(),
Period(), "Market\\Monster Harmonics", "",
maxBars,
false, true, false, 90.0,
1, 2 );
string patternName;
switch ( pattern )
{
case
PATTERN_NONE:
patternName = "NONE";
break;
case
PATTERN_GARTLEY:
patternName = "GARTLEY";
break;
case
PATTERN_BAT:
patternName = "BAT";
break;
case
PATTERN_CRAB:
patternName = "CRAB";
break;
case
PATTERN_BUTTERFLY:
patternName = "BUTTERFLY";
break;
case
PATTERN_CYPHER:
patternName = "CYPHER";
break;
case
PATTERN_BLACK_SWAN:
patternName = "BLACK SWAN";
break;
case
PATTERN_WHITE_SWAN:
patternName = "WHITE SWAN";
break;
case
PATTERN_SHARK:
patternName = "SHARK";
break;
case
PATTERN_ABCD:
patternName = "ABCD";
break;
case
PATTERN_DRAGON:
patternName = "DRAGON";
break;
case PATTERN_ALTBAT:
patternName =
"ALT BAT";
break;
case PATTERN_DEEPCRAB:
patternName = "DEEP CRAB";
break;
case PATTERN_3DRIVES:
patternName = "3 DRIVES";
break;
case PATTERN_50:
patternName = "5-0";
break;
default:
patternName = "USER
DEFINED (index=" + IntegerToString( pattern ) + ")";
break;
}
if
( pattern != PATTERN_NONE )
{
Print
( "Pattern found: ", patternName, "|", direction ==
IS_BULLISH ?
"Bullish" : "Bearish", "|",
projected ?
"Projected" : "Completed" );
for
( int i = maxBars; i >= 0; i-- )
{
double
price = iCustom( Symbol(), Period(),
"Market\\Monster Harmonics", "", maxBars, false, true, false, 90.0,
2, i );
if ( price != EMPTY_VALUE
)
{
Print ( "Pattern
point at bar: ", i, ", price :", NormalizeDouble(
price,
4 ) );
}
}
}
else
{
Print ( "Pattern found:
NONE" );
}
}
Loose Ends
Monster will only repaint the last point of the pattern (the D point) to its definition, it follows price. Other points (X, A, B, C) are not repainted.