In the attached file "5MinutesScalping-i4.mq4" you'll find the source code of an indicator I downloaded. It has 2 buffers (buffer 0 and 1) which provide buy/sell signals.
Now I want to create my own custom indicator (attached file "Onno - Indicator.mq4") that uses the attached indicator by calling iCustom with either buffer 0 or buffer 1.
This always returns the value EMPTY_VALUE, even though the indicator (when attached to a chart) has some valid value.
Now, when I call iCustom with either buffer 2 or 3, it does give me the correct values. How is this possible? Is it something I overlooked, is it some peculiarity I am not aware of, or is it an "undocumented feature"?
Thanks for looking into it.
extern int ATRperiod=14; extern bool AlertMode=true; extern bool ControlChart_EURUSD_M5=true;
I don't see how it has one too many?
The call: iCustom(Symbol(), PERIOD_CURRENT, "::Indicators\\5MinutesScalping-i4.ex4", 14, false, false, 2, shift);
param 1 = symbol
param2 = period
param3 = indicator name
param4 = ATRperiod (= 14)
param5 = AlertMode (= false)
param6 = ControlChart_EURUSD_M5 (= false)
param7 = buffer (= 2)
param8 = shift
param 4 - 6 are the 3 indicator parameters, the others are iCustom parameters.
the easiest way to test, is to create another indicator that plots these buffers.
In the attached file "5MinutesScalping-i4.mq4" you'll find the source code of an indicator I downloaded. It has 2 buffers (buffer 0 and 1) which provide buy/sell signals.
Now I want to create my own custom indicator (attached file "Onno - Indicator.mq4") that uses the attached indicator by calling iCustom with either buffer 0 or buffer 1.
This always returns the value EMPTY_VALUE, even though the indicator (when attached to a chart) has some valid value.
Now, when I call iCustom with either buffer 2 or 3, it does give me the correct values. How is this possible? Is it something I overlooked, is it some peculiarity I am not aware of, or is it an "undocumented feature"?
Thanks for looking into it.
In your 5MinutesScalping-i4.mq4, these few lines are problematic (first run, straightaway return -1, subsequent runs re-calculate almost all the bars repeatedly slowing - wasting cpu resources), and they are the primary reason why your iCustom can't get any value):
ExtCountedBars=IndicatorCounted()-2; if(ExtCountedBars>Bars-2) ExtCountedBars=Bars-2; if(ExtCountedBars<0) return(-1); if(ExtCountedBars>0) ExtCountedBars--; Limit=ExtCountedBars;
Replace them with this line instead and see what happens:
Limit = MathMin(rates_total-3,rates_total-prev_calculated);
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
In the attached file "5MinutesScalping-i4.mq4" you'll find the source code of an indicator I downloaded. It has 2 buffers (buffer 0 and 1) which provide buy/sell signals.
Now I want to create my own custom indicator (attached file "Onno - Indicator.mq4") that uses the attached indicator by calling iCustom with either buffer 0 or buffer 1.
This always returns the value EMPTY_VALUE, even though the indicator (when attached to a chart) has some valid value.
Now, when I call iCustom with either buffer 2 or 3, it does give me the correct values. How is this possible? Is it something I overlooked, is it some peculiarity I am not aware of, or is it an "undocumented feature"?
Thanks for looking into it.