Download MetaTrader 5

Help with create global condition

To add comments, please log in or register
Have you discovered something really important? Write an article and receive 200 USD!
hhchenfx
886
hhchenfx 2014.07.13 15:51 

Hi  Everyone,

I want to create a compound variable for my program so that in the code, I can call its value instead of write that long code for it again.

Previously, I wrote that upbar and body variable and put it below the buffer section. It works. 

later all i need is call upbar(i) 

int   upbar(int b)
{  if(Close[b]>Open[b])
      return(1);
   else  
      return(0);
}
double body(int c)
{  return(MathAbs(Close[c]-Open[c]));}

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {

 

This time, I make it 1 more step further as below where I try to find which bar ADX move at least 20 point.

The error notice is:'}' - not all control paths return a value 

int   adxmove20(int b)
{  if(iADX(NULL,0,14,PRICE_CLOSE,MODE_MAIN,b)>50)
   {  for(int c=b+1;c<=b+30;c++)
      {  if(MathAbs(iADX(NULL,0,14,PRICE_CLOSE,MODE_MAIN,b)-iADX(NULL,0,14,PRICE_CLOSE,MODE_MAIN,c))>19)
         {  return(1);
            break;
         }
      }
   }
   else  
      return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   

 Could you please help me with a proper way to create such variable?

 Thank you,

SCFX 

Jose Miguel Soriano
4963
Jose Miguel Soriano 2014.07.14 12:37  
hhchenfx:

Hi  Everyone,

I want to create a compound variable for my program so that in the code, I can call its value instead of write that long code for it again.

Previously, I wrote that upbar and body variable and put it below the buffer section. It works. 

later all i need is call upbar(i) 

 

This time, I make it 1 more step further as below where I try to find which bar ADX move at least 20 point.

The error notice is:'}' - not all control paths return a value 

 Could you please help me with a proper way to create such variable?

 Thank you,

SCFX 

iAdx () reports the pointer to the indicator data. Not provide data directly.

int handleADX= 0;		//global vars
//...
void OnInit()
{
   //...
   handleADX= iADX(symbol, periodTF, adx_period);
   //...
}

void OnTick()
{
   //...
   double bufferDats[];
   int nCopy= CopyBuffer( handleADX, bufferNum, startPos, quantity, bufferDats);
   bool correct= nCopy==quantity;
   //...

}

 The Indicator datas are now on bufferDats[]

Alain Verleyen
Moderator
30736
Alain Verleyen 2014.07.14 16:02  
josemiguel1812:

iAdx () reports the pointer to the indicator data. Not provide data directly.

 The Indicator datas are now on bufferDats[]

It's probably mql4.
Alain Verleyen
Moderator
30736
Alain Verleyen 2014.07.14 16:04  
hhchenfx:

Hi  Everyone,

I want to create a compound variable for my program so that in the code, I can call its value instead of write that long code for it again.

Previously, I wrote that upbar and body variable and put it below the buffer section. It works. 

later all i need is call upbar(i) 

 

This time, I make it 1 more step further as below where I try to find which bar ADX move at least 20 point.

The error notice is:'}' - not all control paths return a value 

 Could you please help me with a proper way to create such variable?

 Thank you,

SCFX 

Remove the "else" line.
hhchenfx
886
hhchenfx 2014.07.19 23:06  
angevoyageur:
Remove the "else" line.

Yes, Thanks.

SCFX 

To add comments, please log in or register