Professional Documents
Culture Documents
//|
Custom Aroon Oscilator_v1.mq4 |
//|
rafcamara |
//|
Has corrected - Ramdass
|
//+------------------------------------------------------------------+
#property copyright "rafcamara"
#property link
"rafcamara@yahoo.com"
//---- indicator settings
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 DodgerBlue
#property indicator_color2 Red
#property indicator_color3 Snow
#property indicator_color4 Green
//---extern
extern
extern
indicator parameters
int AroonPeriod=10;
int Filter=50;
int CountBars=300;
HighBarBuffer[];
LowBarBuffer[];
ArOscBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function
|
//+------------------------------------------------------------------+
int init()
{
//---- additional buffers are used for counting.
IndicatorBuffers(6);
SetIndexBuffer(4, HighBarBuffer);
SetIndexBuffer(5, LowBarBuffer);
SetIndexBuffer(3, ArOscBuffer);
SetIndexBuffer(0, ind_buffer1);
SetIndexBuffer(1, ind_buffer2);
SetIndexBuffer(2, ind_buffer3);
return(0);
}
//+------------------------------------------------------------------+
//| Aroon Oscilator
|
//+------------------------------------------------------------------+
int start()
{
if (CountBars>=Bars) CountBars=Bars;
SetIndexDrawBegin(0,Bars-CountBars+AroonPeriod+1);
SetIndexDrawBegin(1,Bars-CountBars+AroonPeriod+1);
SetIndexDrawBegin(2,Bars-CountBars+AroonPeriod+1);
SetIndexDrawBegin(3,Bars-CountBars+AroonPeriod+1);
double ArOsc, HighBar=0,LowBar=0;
int
ArPer;
int
limit,i;
// bool
up,dn;
int
counted_bars=IndicatorCounted();
ArPer=AroonPeriod;
//---- check for possible errors
if(counted_bars<0) return(-1);
//---- initial zero
if(counted_bars<1)
{
for(i=1;i<=ArPer;i++)
for(i=1;i<=ArPer;i++)
for(i=1;i<=ArPer;i++)
for(i=1;i<=ArPer;i++)
for(i=1;i<=ArPer;i++)
for(i=1;i<=ArPer;i++)
}
HighBarBuffer[CountBars-i]=0.0;
LowBarBuffer[CountBars-i]=0.0;
ArOscBuffer[CountBars-i]=0.0;
ind_buffer1[CountBars-i]=0.0;
ind_buffer2[CountBars-i]=0.0;
ind_buffer3[CountBars-i]=0.0;
//Period
//Period
{
ind_buffer1[i]=0.0;
ind_buffer2[i]=ArOsc;
ind_buffer3[i]=0.0;
}
if(ArOsc<=Filter && ArOsc>=-Filter)
{
ind_buffer1[i]=0.0;
ind_buffer2[i]=0.0;
ind_buffer3[i]=ArOsc;
}
}
//---- done
return(0);
}