Watch how to download trading robots for free
Find us on Facebook!
Join our fan page
Join our fan page
You liked the script? Try it in the MetaTrader 5 terminal
- Published by:
- Tobias Johannes Zimmer
- Views:
- 3377
- Rating:
- Published:
- 2022.04.24 15:43
- Updated:
- 2023.08.10 13:33
-
Need a robot or indicator based on this code? Order it on Freelance Go to Freelance
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { int to_copy = (rates_total - prev_calculated) * (prev_calculated < rates_total) + (1) * (prev_calculated == rates_total); CopyBuffer(RSIHandle, 0, 0, to_copy, ExtRSIBuffer); //--- ZigZagExtremaOnBuffer.mqh calculation function ZZOnBuffer(rates_total, prev_calculated, ExtRSIBuffer, ExtOutputBuffer, InpSearchMode, InpDepth, InpDeviation, InpBackstep); return(rates_total); }
To get only highs or only lows there is an additional input of type EnSearchmode:
//+------------------------------------------------------------------+ //| ZigZag calculation | //+------------------------------------------------------------------+ int ZZOnBuffer(const int rates, //On a non indicator array, Arraysize can be used as 'rates_total' const int calculated, const double &src[], //source buffer for calculation double &dst[], //destination buffer for calculation buffer EnSearchMode mode_search, //Set output buffer to High only, Low only or both in const int &depth, const int &deviation, const int &backstep //ZZ input parameters ) { ... ...
Only Highs:
Only Lows:
Both highs and lows in one buffer:
It is not restricted to indicator buffers, you can use it on any array, just set "rates" to the length of the array instead of rates_total.
The absolute minimum number of bars that this function can hadle is 100. So although you can use this calculation function on an array of a few hundred bars, in indicator buffers, rates_total is usually a few thousand.
![Trading Volume Line](https://c.mql5.com/i/code/indicator.png)
The indicator compares OHLC prices
![Detecting the start of a new bar or candle](https://c.mql5.com/i/code/expert.png)
Detecting the start of a new bar or candle, in the OnTick() event handler of an expert advisor.
![Custom Fractals](https://c.mql5.com/i/code/indicator.png)
Have you ever asked yourself why it is not possible to customize fractals more? ... now it is.
![SmoothStep](https://c.mql5.com/i/code/indicator.png)
SmoothStep