//+------------------------------------------------------------------+ //| CCI_onMA.mq4 | //| CCI on MA +MAs http://www.metaquotes.net | //+------------------------------------------------------------------+ //2008forextsd ki #property copyright "http://www.forex-tsd.com/" #property link "" #property indicator_chart_window #property indicator_buffers 5 #property indicator_color1 Red #property indicator_color2 Purple #property indicator_color3 DodgerBlue #property indicator_color4 Yellow #property indicator_color5 Green #property indicator_width1 2 #property indicator_width2 1 #property indicator_width3 1 #property indicator_width4 1 #property indicator_style4 2 //---- extern int CCI_Period = 14; extern int CCI_Price = 5; extern double CCI_multiplier = 0.3; extern int MaPeriod = 14; extern int MaMetod = 0; extern int MaPrice = 5; extern bool ShowMa1Typical = true; extern bool ShowMa1Close = true; extern bool ShowCCIonClose = true; extern string note_Price = "0C 1O 2H 3L4Md 5Tp 6WghC: Md(HL/2)4,Tp(HLC/3)5,Wgh(HLCC/4)6"; extern string MA_Method_ = "SMA0 EMA1 SMMA2 LWMA3"; //---- double CCIonMABuffer[]; double MA_Buffer[]; double MA1typBuffer[]; double MA1closeBuffer[]; double CCIonCloseBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //|------------------------------------------------------------------| int init() { //---- IndicatorBuffers(5); { SetIndexStyle(0,DRAW_LINE); SetIndexStyle(1,DRAW_LINE); SetIndexStyle(2,DRAW_NONE); if (ShowMa1Typical) SetIndexStyle(2,DRAW_LINE); SetIndexStyle(3,DRAW_NONE); if (ShowMa1Close) SetIndexStyle(3,DRAW_LINE); SetIndexStyle(4,DRAW_NONE); if (ShowCCIonClose) SetIndexStyle(4,DRAW_LINE); } //---- SetIndexBuffer(0, CCIonMABuffer); SetIndexBuffer(1, MA_Buffer); SetIndexBuffer(2, MA1typBuffer); SetIndexBuffer(3, MA1closeBuffer); SetIndexBuffer(4, CCIonCloseBuffer); SetIndexLabel(0,"CCIonMA CCI:per("+CCI_Period+")price "+CCI_Price+" MA per("+MaPeriod+")"); SetIndexLabel(1,"MA per("+MaPeriod+") method "+MaMetod+"; price "+MaPrice+""); SetIndexLabel(2,"MA Per1 priceTypical"); SetIndexLabel(3,"MA Per1 priceClose"); SetIndexLabel(4,"CCIon iclose"); IndicatorShortName("CCIonMA "+CCI_Period+";"+MaPeriod+""); for (int i=0;i<indicator_buffers;i++) SetIndexDrawBegin(i,MathMax (MaPeriod,CCI_Period)); return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int i,limit, CountedBars=IndicatorCounted(); if (CountedBars<0) return(-1); if (CountedBars>0) CountedBars--; limit= Bars-CountedBars; limit= MathMax(limit,CCI_Period); limit= MathMax(limit,MaPeriod); for (i=limit;i>=0;i--) { double CCI_val = iCCI(NULL,0,CCI_Period,CCI_Price,i); MA_Buffer [i] = iMA(NULL,0,MaPeriod,0,MaMetod,MaPrice,i); CCIonMABuffer [i] = CCI_val*CCI_multiplier*Point+ MA_Buffer[i]; MA1typBuffer [i] = iMA(NULL,0,1,0,0,5,i); MA1closeBuffer [i] = iMA(NULL,0,1,0,0,0,i); CCIonCloseBuffer [i] = Close[i]+ CCI_val*CCI_multiplier*Point; } //---- return(0); } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Series array that contains close prices for each bar
Indicator Curves created:
Implements a curve of type DRAW_LINE
Implements a curve of type DRAW_NONE
Indicators Used:
Commodity channel index
Moving average indicator
Custom Indicators Used:
Order Management characteristics:
Other Features: