here is the indicator code:
//+------------------------------------------------------------------+ //| TimeZone Pivots.mq4 | //| Copyright © 2005, Denis Manigart | //| mailto:emaildomino@gmail.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2005, Denis Manigart" #property link "mailto:emaildomino@gmail.com" #property indicator_chart_window #property indicator_buffers 8 #property indicator_color1 DarkOrange #property indicator_color2 Khaki #property indicator_color3 Khaki #property indicator_color4 Khaki #property indicator_color5 Khaki #property indicator_color6 DarkViolet #property indicator_color7 Blue #property indicator_color8 Red //#property indicator_color4 Gray //---- input parameters extern int TimeZoneOfData=2; // by default if time zone of data is at GMT +2 // This gives you the Pivot calculations for 0 GMT //---- buffers double PivotArray[]; double R1Array[]; double S1Array[]; double R2Array[]; double S2Array[]; double R3Array[]; double S3Array[]; double TodayOpenBuffer[]; double YesterdayCloseBuffer[]; double YesterdayHighBuffer[]; double YesterdayLowBuffer[]; //---- variables int indexbegin = 0; double todayopen = 0; double yesterdayclose = 0; double barhigh = 0; double dayhigh = 0; double yesterdayhigh = 0; double barlow = 0; double daylow = 0; double yesterdaylow = 0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators // Pivot SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,PivotArray); IndicatorShortName("TDPivot"); SetIndexLabel(0,"Pivot"); SetIndexEmptyValue(0, 0.0); // Resistance 1 SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,R1Array); SetIndexLabel(1,"R1"); SetIndexEmptyValue(1, 0.0); // Support 1 SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2,S1Array); SetIndexLabel(2,"R1"); SetIndexEmptyValue(2, 0.0); // Resistance 2 SetIndexStyle(3,DRAW_LINE); SetIndexBuffer(3,R2Array); SetIndexLabel(3,"R2"); SetIndexEmptyValue(3, 0.0); // Support 2 SetIndexStyle(4,DRAW_LINE); SetIndexBuffer(4,S2Array); SetIndexLabel(4,"S2"); SetIndexEmptyValue(4, 0.0); // You may also display the previous day close - high - low // Daily Close // SetIndexStyle(5, DRAW_LINE); // SetIndexBuffer(5, YesterdayCloseBuffer); // SetIndexLabel(5, "Daily Close"); // SetIndexEmptyValue(5, 0.0); // Daily High // SetIndexStyle(6, DRAW_LINE); // SetIndexBuffer(6, YesterdayHighBuffer); // SetIndexLabel(6, "YesterDay High"); // SetIndexEmptyValue(6, 0.0); // Daily Low // SetIndexStyle(7, DRAW_LINE); // SetIndexBuffer(7, YesterdayLowBuffer); // SetIndexLabel(7, "YesterDay Low"); // SetIndexEmptyValue(7, 0.0); //---- indexbegin = Bars - 20; if (indexbegin < 0) indexbegin = 0; return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int i; int counted_bars = IndicatorCounted(); double Pivot; double R1; double S1; double R2; double S2; //---- check for possible errors if (counted_bars < 0) counted_bars = 0; //---- last counted bar will be recounted if (counted_bars > 0) counted_bars--; if (counted_bars > indexbegin) counted_bars = indexbegin; for (i = indexbegin-counted_bars; i >= 0; i--) { if ( i == indexbegin-counted_bars) { dayhigh = High[i]; daylow = Low[i]; } barlow = Low[i]; barhigh = High[i]; if ( barhigh >= dayhigh) dayhigh = barhigh; if ( barlow <= daylow) daylow = barlow; //Cycle through all the bars and fill the indicator bars with the Pivot point values if ((TimeMinute(Time[i]) == 00) && (TimeHour(Time[i]) - TimeZoneOfData == 00)) {todayopen = Open[i]; yesterdayclose = Close[i+1]; yesterdaylow = daylow; daylow = Low [i]; // input new day value yesterdayhigh = dayhigh; dayhigh = High [i]; // input new day value Pivot = (yesterdayhigh + yesterdaylow + yesterdayclose)/3; R1 = (2*Pivot)-yesterdaylow; S1 = (2*Pivot)-yesterdayhigh; R2 = Pivot-S1+R1; S2 = Pivot-R1+S1; } //These can be used for any calculations TodayOpenBuffer[i] = todayopen; YesterdayCloseBuffer[i] = yesterdayclose; YesterdayHighBuffer[i] = yesterdayhigh; YesterdayLowBuffer[i] = yesterdaylow; PivotArray[i]=Pivot; R1Array[i]=R1; S1Array[i]=S1; R2Array[i]=R2; S2Array[i]=S2; } return(0); } //+------------------------------------------------------------------+
Forex Trader:
I am calling an indicator with iCustom, from an EA.
When I run the EA live on demo, all works fine, and I can print the values for the indicator for testing in the Experts Tab. So far so good.
But when I run backtests, the same printed values are always 0. Does anyone know what is wrong here, and how you can use indicator values through iCustom for backtesting?
p.s. live demo: it actually does only work within the bar in which I started, then the indicator is not updated again in subsequent bars. How can I get the indicator torefresh and draw the current values on the screen?
I am calling an indicator with iCustom, from an EA.
When I run the EA live on demo, all works fine, and I can print the values for the indicator for testing in the Experts Tab. So far so good.
But when I run backtests, the same printed values are always 0. Does anyone know what is wrong here, and how you can use indicator values through iCustom for backtesting?
p.s. live demo: it actually does only work within the bar in which I started, then the indicator is not updated again in subsequent bars. How can I get the indicator torefresh and draw the current values on the screen?
Hi Friend,
I have the same problem that icustom indicator works well on my EA, but when I back test is not recognised. Did you receive any solution?

You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
When I run the EA live on demo, all works fine, and I can print the values for the indicator for testing in the Experts Tab. So far so good.
But when I run backtests, the same printed values are always 0. Does anyone know what is wrong here, and how you can use indicator values through iCustom for backtesting?
p.s. live demo: it actually does only work within the bar in which I started, then the indicator is not updated again in subsequent bars. How can I get the indicator torefresh and draw the current values on the screen?