Download CCI MA Smoothed indicators

ccccc maIt’ll surely function with all other MT versions mainly because based upon our knowledgeable with this mq4, it really works very well with Meta Trader 4 and MT5 software.

Additionally it is suitable for you to definitely rate or make some comments concerning the indicator no matter whether CCI MA Smoothed the very best indicator for Forex for you personally or not. The CCI MA Smoothed indicator review section caters each of the reviews and also suggestions given. Virtually any comment can do as long as it can benefit the trading business. FX investors will ponder upon your comments and also feedbacks to get and make use of the best indicator.

We as FX investors are up to getting the ideal indicators to have a precise trading. Making the ideal decisions in the trading industry will be achieved by making use of the costless CCI MA Smoothed indicator. We’re also making the very best we can do to look for Forex indicators like CCI MA Smoothed and place them on our webpage for straightforward access people. Every thing put into the web are freely downloadable and will be the right path to have much better traders.

[php]</pre>
//+——————————————————————+
//| CCI.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+——————————————————————+
#property copyright “Copyright © 2004, MetaQuotes Software Corp.”
#property link “http://www.metaquotes.net/”
//—-
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Yellow
#property indicator_color2 Aqua

//—- input parameters
//—- indicator parameters
extern string m = “–Moving Average Types–“;
extern string m0 = ” 0 = SMA”;
extern string m1 = ” 1 = EMA”;
extern string m2 = ” 2 = SMMA”;
extern string m3 = ” 3 = LWMA”;
extern string m4 = ” 4 = LSMA”;
extern int MA_Type=0;
extern string p = “–Applied Price Types–“;
extern string p0 = ” 0 = close”;
extern string p1 = ” 1 = open”;
extern string p2 = ” 2 = high”;
extern string p3 = ” 3 = low”;
extern string p4 = ” 4 = median(high+low)/2″;
extern string p5 = ” 5 = typical(high+low+close)/3″;
extern string p6 = ” 6 = weighted(high+low+close+close)/4″;
extern int MA_AppliedPrice = 0;
extern string c = “–CCI Inputs–“;
extern int CCIPeriod = 14;
extern int SmoothingMA_Type = 2;
extern int SmoothingMA_Period = 3;

//—- buffers
double CCIBuffer[];
double CCIBufferSmoothed[];
double RelBuffer[];
double DevBuffer[];
double MovBuffer[];

int MA_Mode;
string strMAType;
int SmoothingMode;

//+——————————————————————+
//| Custom indicator initialization function |
//+——————————————————————+
int init()
{
string short_name;
//—- 3 additional buffers are used for counting.
IndicatorBuffers(5);
SetIndexBuffer(1, RelBuffer);
SetIndexBuffer(2, DevBuffer);
SetIndexBuffer(3, MovBuffer);
//—- indicator lines
SetIndexStyle(0, DRAW_LINE);
SetIndexBuffer(0, CCIBuffer);
SetIndexStyle(1, DRAW_LINE);
SetIndexBuffer(1, CCIBufferSmoothed);
//—-
if(CCIPeriod <= 0)
CCIPeriod = 14;

SmoothingMode = SmoothingMA_Type;
if (SmoothingMA_Type > 3) SmoothingMode = 2;
//—-
SetIndexDrawBegin(0, CCIPeriod);

//—- name for DataWindow and indicator subwindow label
switch (MA_Type)
{
case 1: strMAType=”EMA”; MA_Mode=MODE_EMA; break;
case 2: strMAType=”SMMA”; MA_Mode=MODE_SMMA; break;
case 3: strMAType=”LWMA”; MA_Mode=MODE_LWMA; break;
case 4: strMAType=”LSMA”; break;
default: strMAType=”SMA”; MA_Mode=MODE_SMA; break;
}
short_name = “CCI-” +strMAType+ ” (” +CCIPeriod + “) “;
IndicatorShortName(short_name);
SetIndexLabel(0, short_name);
//—-
return(0);
}

//+————————————————————————+
//| LSMA – Least Squares Moving Average function calculation |
//| LSMA_In_Color Indicator plots the end of the linear regression line |
//+————————————————————————+

//+——————————————————————+
//| LSMA with PriceMode |
//| PrMode 0=close, 1=open, 2=high, 3=low, 4=median(high+low)/2, |
//| 5=typical(high+low+close)/3, 6=weighted(high+low+close+close)/4 |
//+——————————————————————+

double LSMA(int TimeFrame, int Rperiod, int prMode, int shift)
{
int i, myShift;
double sum, pr;
int length;
double lengthvar;
double tmp;
double wt;

length = Rperiod;

sum = 0;
for(i = length; i >= 1 ; i–)
{
lengthvar = length + 1;
lengthvar /= 3;
tmp = 0;
myShift = length – i + shift;
switch (prMode)
{
case 0: pr = iClose(NULL,TimeFrame,myShift);break;
case 1: pr = iOpen(NULL,TimeFrame,myShift);break;
case 2: pr = iHigh(NULL,TimeFrame,myShift);break;
case 3: pr = iLow(NULL,TimeFrame,myShift);break;
case 4: pr = (iHigh(NULL,TimeFrame,myShift) + iLow(NULL,TimeFrame,myShift))/2;break;
case 5: pr = (iHigh(NULL,TimeFrame,myShift) + iLow(NULL,TimeFrame,myShift) + iClose(NULL,TimeFrame,myShift))/3;break;
case 6: pr = (iHigh(NULL,TimeFrame,myShift) + iLow(NULL,TimeFrame,myShift) + iClose(NULL,TimeFrame,myShift) + iClose(NULL,TimeFrame,myShift))/4;break;
}
tmp = ( i – lengthvar)*pr;
sum+=tmp;
}
wt = sum*6/(length*(length+1));
wt = MathFloor(wt/Point)*Point;

return(wt);
}

//+——————————————————————+
//| Commodity Channel Index |
//+——————————————————————+
int start()
{
int i, k, counted_bars = IndicatorCounted();
double price, sum, mul;
if(CCIPeriod <= 1)
return(0);
if(Bars <= CCIPeriod)
return(0);
//—- initial zero
if(counted_bars < 1)
{
for(i = 1; i <= CCIPeriod; i++)
CCIBuffer[Bars-i] = 0.0;
for(i = 1; i <= CCIPeriod; i++)
DevBuffer[Bars-i] = 0.0;
for(i = 1; i <= CCIPeriod; i++)
MovBuffer[Bars-i] =0.0;
}
//—- last counted bar will be recounted
int limit = Bars – counted_bars;
if(counted_bars > 0)
limit++;
//—- moving average
for(i = 0; i < limit; i++)
{
if (MA_Type == 4)
MovBuffer[i]=LSMA(0, CCIPeriod, MA_AppliedPrice,i);
else
MovBuffer[i]=iMA(NULL,0,CCIPeriod,0,MA_Mode,MA_AppliedPrice,i);
}
//—- standard deviations
i = Bars – CCIPeriod + 1;
if(counted_bars > CCIPeriod – 1)
i = Bars – counted_bars – 1;
mul = 0.015 / CCIPeriod;
while(i >= 0)
{
sum = 0.0;
k = i + CCIPeriod – 1;
while(k >= i)
{
price =(High[k] + Low[k] + Close[k]) / 3;
sum += MathAbs(price – MovBuffer[i]);
k–;
}
DevBuffer[i] = sum*mul;
i–;
}
i = Bars – CCIPeriod + 1;
if(counted_bars > CCIPeriod – 1)
i = Bars – counted_bars – 1;
while(i >= 0)
{
price = (High[i] + Low[i] + Close[i]) / 3;
RelBuffer[i] = price – MovBuffer[i];
i–;
}
//—- cci counting
i = Bars – CCIPeriod + 1;
if(counted_bars > CCIPeriod – 1)
i = Bars – counted_bars – 1;
while(i >= 0)
{
if(DevBuffer[i] == 0.0)
CCIBuffer[i] = 0.0;
else
CCIBuffer[i] = RelBuffer[i] / DevBuffer[i];
i–;
}

//—- cci smoothing
i = Bars – CCIPeriod + 1;
if(counted_bars > CCIPeriod – 1)
i = Bars – counted_bars – 1;
while(i >= 0)
{
CCIBufferSmoothed[i] = iMAOnArray(CCIBuffer, 0, SmoothingMA_Period, 0, SmoothingMode, i);
i–;
}

//—-
return(0);
}
//+——————————————————————+
<pre>
[/php]

Click Here to Download

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *