Problem with an EA

 
Hi Guys I`m here with a problem again. In my EA I calculate an average level, i named AvgLevel  and i am using it for signals.
if( Ask > AvgLevel &&  Open[1]<Close[1] && Open[1]<AvgLevel ) 
This is a small part of the signal check, but this code without the last  part shown bellow trades. With it, it does not. Can you help me ?
Open[1]<AvgLevel
 
Print the value of AvgLevel to make sure that it is being calculated properly. Possibly it equals zero.
 
  int HighLevelIndex = iHighest(NULL,0,MODE_HIGH,LevelsPeriodicity,1);
  int LowLevelIndex = iLowest (NULL,0,MODE_LOW,LevelsPeriodicity,1);
  double HighLevel = High[HighLevelIndex];
  double LowLevel = Low[LowLevelIndex]; 
  double AvgLevel = (HighLevel - LowLevel)/2;
This is how I calculate it. Is it wrong?
 
Stan4o1:
This is how I calculate it. Is it wrong?
If you use the debugger you can check yourself!
 
I used it then, it shows everything is ok, but the EA doesn`t trade in the shown case
 
Stan4o1:
This is how I calculate it. Is it wrong?

If you had printed the result as I advised, you would have found your problem

 
  double AvgLevel = (HighLevel - LowLevel)/2;

 should be

 
  double AvgLevel = (HighLevel + LowLevel)/2;

 .

 

Thanks for the help, but how to print the result

 
Print(DoubleToStr(AvgLevel,Digits));
I find it hard to believe that you can write the code that you have posted, but are unable to code a simple print statement.
 

Oohh right my bad i forgot about this

 
Stan4o1: but how to print the result
RTFM Print - MQL4 Documentation or PrintFormat - MQL4 Documentation
Reason: