You're stuck in a the while loop because you never change the value of i. See the line in red below.
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----
i=Bars-counted_bars-1;
while(i>=0)
{
double high =High;
double low =Low;
double open =Open;
double close=Close;
ExtMapBuffer1=(close-low)-(high-close);
level = close;
i--;
}
//----
return(0);
}
Unfortunately, the only thing we have at our disposal is the good ol' Print() function. I normally put an
extern bool Debugging = true;
and then before each print statement do:
if (Debugging) Print ("MyVar="+MyVar);
because every time I take them out, I always need the buggers again.
The print statements come out on the Experts tab of the "Terminal" window.
Anyway, I use them all the time to debug crap. Its a big PITA, but it works. The MetaEditor is a big tease. It even lets you set break points, but there is no debugging. Oh well, at least they don't make us write with EMACS or vi.
Cheers,
CS
BTW - you CAN write custom DLL's in VC++. Check out the doc for how....
Anyone got any input on how to debug scripts ?
I have been starting to try to convert some Easy Language code to MQL4 and am still trying to understand how the plotting of indicator values works.
This snippet below is from an indicator I found on this board, but when I apply it my system locks up. From someone used to coding in Visual Studio, how do you overcome the inability to step through your code to check values etc. In another indicator I wrote I was able to compile it but when I applied it all I got was divide by zero errors. When I added lots of if(var > 0) type stuff it also locked up. So question 2 would be how do you recover your setup if an indicator has been applied that locks the system up. i.e. is there some config file somewhere that tells the system what indicators to apply at startup that can be hacked to remove duff indicators.
Thanks.
Paz
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----
i=Bars-counted_bars-1;
while(i>=0)
{
double high =High;
double low =Low;
double open =Open;
double close=Close;
ExtMapBuffer1=(close-low)-(high-close);
level = close;
}
//----
return(0);
}
edited cos I carn't spellThanks very much for the comments.
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Anyone got any input on how to debug scripts ?
I have been starting to try to convert some Easy Language code to MQL4 and am still trying to understand how the plotting of indicator values works.
This snippet below is from an indicator I found on this board, but when I apply it my system locks up. From someone used to coding in Visual Studio, how do you overcome the inability to step through your code to check values etc. In another indicator I wrote I was able to compile it but when I applied it all I got was divide by zero errors. When I added lots of if(var > 0) type stuff it also locked up. So question 2 would be how do you recover your setup if an indicator has been applied that locks the system up. i.e. is there some config file somewhere that tells the system what indicators to apply at startup that can be hacked to remove duff indicators.
Thanks.
Paz
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----
i=Bars-counted_bars-1;
while(i>=0)
{
double high =High;
double low =Low;
double open =Open;
double close=Close;
ExtMapBuffer1=(close-low)-(high-close);
level = close;
}
//----
return(0);
}
edited cos I carn't spell