Double Top / Bottom 5.6
Metatrader Indicator (MT4/MT5)
-
ℹ Overview
Trade double tops and bottoms effectively
The PZ Double Top/Bottom Indicator is a technical analysis tool that helps traders identify potential price reversal patterns in the market. These patterns, known as double tops and bottoms, are characterized by two consecutive peaks or valleys in the price of an asset. Double tops and bottoms are often seen as potential reversal patterns because they can signal a change in the direction of the current trend.
The PZ Double Top/Bottom Indicator provides clear trading signals to help traders identify these patterns and make informed decisions about their trades. In addition to identifying double tops and bottoms, the indicator also provides performance statistics, customizable recognition ratios, and displays suitable stop-loss and take-profit levels to help traders manage their trades.
Some other features of the PZ Double Top/Bottom Indicator include customizable colors and sizes, email/sound/visual alerts. This indicator is easy to use and can be a valuable tool for traders looking to capitalize on potential price reversal patterns in the market.
Please note that these patterns can sometimes expand, and the indicator may repaint to follow the pattern. However, the indicator implements a twist to make it easier to trade by waiting for a Donchian breakout in the right direction before signaling the trade, making its signals very reliable and mostly non-repainting.
- ≡
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.
- Amplitude
- The amplitude represents the minimum amount of bars between alternative price points. To find big patterns, increase the amplitude parameter. To find smaller patterns, decrease the amplitude parameter.
- Breakout Period
- A donchian breakout is needed for a signal to arise after a pattern is found, and this indicator controls the amount of bars used in aforementioned breakout.
- Min. Retracement
- The minimum fibonacci retracement needed in a pattern.
- Max. Retracement
- The maximum fibonacci retracement possible in a pattern.
- Max History Bars
- Amount of past bars to evaluate when the indicator loads in the chart.
- Display Stats
- Show or hide the statistics dashboard and performance data.
- Display SL/TP Levels
- Show or hide the suitable stop-loss and take-profit levels for each signal.
- Drawing Options
- Colors and sizes for bullish or bearish lines and labels, as well as font sizes.
- Breakouts
- Colors and sizes for breakout arrows.
- Alert Events
- Enable or disable alerts for patterns and breakouts.
- Alerts
- Enable or disable alerts at will.
- ?
FAQ
- Does the indicator repaint?
- Yes, the indicator can repaint if the market ignores a pattern and keeps moving in the same direction. However, breakouts are mostly non repainting. A high "breakout period" value will decrease the repainting significantly.
- Does the indicator implement alerts?
- Yes, it does. It implements alerts 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.
//---- Read value from data buffer int start() { // Read signal and pattern double pattern = iCustom(Symbol(), Period(), "PZ_DoubleTopBottom_LICENSENUM", 0, 1); double signal = iCustom(Symbol(), Period(), "PZ_DoubleTopBottom_LICENSENUM", 1, 1); // Do something if(pattern == OP_BUY) { /* Your code for double bottom (no breakout yet) */ } if(pattern == OP_SELL) { /* Your code for double top (no breakout yet) */ } if(signal == OP_BUY) { /* Your code for bullish breakout */ } if(signal == OP_SELL) { /* Your code for bearish breakout */ } if(signal == EMPTY_VALUE) { /* Your code if no pattern or breakout */} // Exit return(0); }