//+------------------------------------------------------------------+ //| CCI_onMA.mq4 | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ //2008forextsd ki #property copyright "http://www.forex-tsd.com/" #property link "" #property indicator_chart_window #property indicator_buffers 3 #property indicator_color1 Red #property indicator_color2 RoyalBlue #property indicator_color3 Orange #property indicator_width1 2 #property indicator_width2 1 #property indicator_width3 1 //---- 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 Show_MA = true; extern int SigMaPeriod = 9; extern int SigMaMetod = 0; extern bool Show_SigMA = false; //SigMaPrice close only (onArray); extern string note_Price = "0C,1O 2H3L,4Md 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 SigMA_Buffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //|------------------------------------------------------------------| int init() { //---- IndicatorBuffers(3); SetIndexBuffer(0, CCIonMABuffer); SetIndexBuffer(1, MA_Buffer); SetIndexBuffer(2, SigMA_Buffer); SetIndexStyle(0,DRAW_LINE); SetIndexStyle(1,DRAW_NONE); if (Show_MA) SetIndexStyle(1,DRAW_LINE); SetIndexStyle(2,DRAW_NONE); if (Show_SigMA) SetIndexStyle(2,DRAW_LINE); //---- SetIndexLabel(0,"CCIonMA CCI:("+CCI_Period+"|"+CCI_Price+")"); SetIndexLabel(1,"MA ("+MaPeriod+")"+MaMetod+","+MaPrice+""); SetIndexLabel(2,"SigMA ("+SigMaPeriod+")"+SigMaMetod+""); IndicatorShortName("CCIonMA ("+CCI_Period+") "+MaPeriod+"|"+SigMaPeriod+"|"); int max= MathMax (MaPeriod,CCI_Period); max= MathMax (max,SigMaPeriod); for (int i=0;i<indicator_buffers;i++) SetIndexDrawBegin (i,max); 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); limit= MathMax(limit,SigMaPeriod); 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]; } for(i=0; i<limit; i++) { SigMA_Buffer[i]=iMAOnArray(CCIonMABuffer,0,SigMaPeriod,0,SigMaMetod,i); } //---- return(0); } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
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: