custom indicator w/ iStochastic?

[Deleted]  
Hi everyone,

I am new to MQL4. I have been reading up on MQL4 for a while now and finally its coming, slowly. Anyway, before I start a wild goose chase, I will use this tread as a mentor- if that's cool with everyone. So I'm not asking anyone to make the indicator for me, just to guide me along the proper direction.

Custom indicator:
I am sick of dragging 5 stochastic indicators and manually set them to 5 different time frames (all on one chart.) So I want to build an indicator that will have 5 stochastics set so I have to drag one indicator once.

Question: Will I be going into the right direction if I use the iStochastic function 5 times with 5 different buffers that draw each buffer? I read that you can have up to 8 buffers and by using iStochastic, I will save alot of time writing code.


I want to thank everyone in advance for helping or mentoring me. I hope for any noobs like me, this tread will serve to help you to learn MQL4.
 

That is the way to do it.

--

Alternatively, set up a chart as you like it, the old way, and save a template of it, then apply the template to new charts.

[Deleted]  
Thanks phy for replying.
Actually I already use templates like you suggested but I figured I can learn some mql4 while making my charting more simple. Here is some code I have been working on. It only has the buffers. Am I doing this right?

#property copyright "GNU"
#property link      "http://www.metaquotes.net"
#property indicator_buffers 5
#property indicator_separate_window

//buffers;
double Sto0[], Sto1[], Sto2[], Sto3[], Sto4[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
  SetIndexBuffer (0, Sto0);
  SetIndexStyle (0, DRAW_LINE);
  
  SetIndexBuffer (1, Sto1);
  SetIndexStyle (1, DRAW_LINE);
  
  SetIndexBuffer (2, Sto2):
  SetIndexStyle (2, DRAW_LINE);
 // and so on until Sto4? and if I want each to have different color I do it here?
      
//---- indicators
//----
   return(0);
  }
If this is ok- I guess the next step would be to using the iStochastic function so the buffers will know where to get the information from. Is this the right way of thinking?
[Deleted]  
Also, while trying to read code examples, I often run into i, j, n. What are these? I'm guessing i has something to do with bars amount.
[Deleted]  
I copied some code I found here. But still its not working- what I am doing wrong? If I can't get one stochastics done how am I supposed to do 5? :(

#property link "http://www.metatrader.info" #property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red 

//---- inputs
double ExtMapBuffer1[];//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
//----
return(0);
}

//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
 //----
return(0);
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
if (counted_bars<0) return(-1);

  if (counted_bars>0) counted_bars--;
int pos=Bars-counted_bars; 
while(pos>=0)
  {
  ExtMapBuffer1[pos]= iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0);
pos--;
  }
//----
 return(0); }
 

Find and study 2 changes

#property link "http://www.metatrader.info" 
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red 
//---- inputs
double ExtMapBuffer1[];//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
 //----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
if (counted_bars<0) return(-1);
  if (counted_bars>0) counted_bars--;
int pos=Bars-counted_bars; 
 
while(pos>=0)
  {
  ExtMapBuffer1[pos]= iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,pos);
pos--;
  }
//----
 return(0); }