Problem with return() function

Back to topics list To post a new topic, please log in or register
avatar
26
Timerider 2015.05.01 20:34
 

Hi guys,

I´ve programmed a very simple indicator. It should return the value a, which is previously defined. Here it is:

//+------------------------------------------------------------------+
//|                                                     EaTestEa.mq4 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {

int a;
if(iOpen("EURUSD",2,1)>iClose("EURUSD",2,1))
 a=1;
if(iOpen("EURUSD",2,1)<iClose("EURUSD",2,1))
 return(a);


  }
//+------------------------------------------------------------------+

 So if i want to get the value of a with the iCustom() function, which is here

iCustom(NULL,0,"EaTestEa",0,0,0);

it always returns the value 0 even if Open[1]<Close[1]. Maybe you know how to solve my problem.

Thanks for your help 








avatar
26
Timerider 2015.05.01 20:37 #
 

Sorry should look like this

int a;
if(Open[1]>Close[1])
 a=1;
if(Open[1]<Close[1])
 a=0
 return(a);
avatar
Moderator
3404
GumRai 2015.05.01 22:40 #
 

iCustom gets the value of a buffer

Your indicator does not have any buffers, so iCustom cannot retrieve a value 

avatar
26
Timerider 2015.05.02 22:55 #
 
GumRai:

iCustom gets the value of a buffer

Your indicator does not have any buffers, so iCustom cannot retrieve a value 

Hi GumRai,

thanks for your support. Can you maybe show me how i can store a in a Buffer and then call it with the iCustom function?

avatar
Moderator
3404
GumRai 2015.05.02 23:33 #
 

If you open a new indicator in the metaeditor, the wizard allows you to set up the buffers as you require them.

There are lots of examples in the code base that you can look at to find out how to store a value in a buffer 

Back to topics list  

To add comments, please log in or register