//+------------------------------------------------------------------+ //| GentorCCIM .mq4| //| Egorov Gennadiy| //+------------------------------------------------------------------+ #property copyright "Egorov Gennadiy" #property link "" #property indicator_separate_window #property indicator_buffers 5 //---- #property indicator_color1 Red #property indicator_color2 Black #property indicator_color3 Lime #property indicator_color4 Yellow #property indicator_color5 Green //--- #property indicator_level1 300 #property indicator_level2 200 #property indicator_level3 100 #property indicator_level4 50 #property indicator_level5 -50 #property indicator_level6 -100 #property indicator_level7 -200 #property indicator_level8 -300 //---- input parameters extern int A_period=14; extern int B_period=6; extern int EMA=34; extern int num_bars=300; // parameters int shift=0; //---- buffers double FastWoodieCCI[]; double SlowWoodieCCI[]; double HistoWoodieCCI[]; double LineHighEMA[]; double LineLowEMA[]; //---- indicator buffers //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { IndicatorDigits(2); //---- indicators SetIndexStyle(0,DRAW_LINE,0,1); SetIndexBuffer(0,FastWoodieCCI); SetIndexStyle(1,DRAW_LINE,0,2); SetIndexBuffer(1,SlowWoodieCCI); SetIndexStyle(2,DRAW_HISTOGRAM,0,1); SetIndexBuffer(2,HistoWoodieCCI); SetIndexStyle(3,DRAW_LINE,1,3); SetIndexBuffer(3,LineHighEMA); SetIndexStyle(4,DRAW_LINE,1,3); SetIndexBuffer(4,LineLowEMA); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- TODO: add your code here //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int i; int counted_bars=IndicatorCounted(); //---- check for possible errors if(counted_bars<0) return(-1); //---- last counted bar will be recounted if(counted_bars > 0) counted_bars--; //---- counted_bars=Bars - counted_bars; //---- for(shift=0; shift < counted_bars; shift++) { // FastWoodieCCI[shift]=iCCI(NULL,0,B_period,PRICE_TYPICAL,shift); SlowWoodieCCI[shift]=iCCI(NULL,0,A_period,PRICE_TYPICAL,shift); HistoWoodieCCI[shift]=iCCI(NULL,0,A_period,PRICE_TYPICAL,shift); //----------------color coding--------------------------- LineLowEMA[shift]=0; LineHighEMA[shift]=0; //---- double EmaValue=iMA( NULL, 0, EMA, 0, MODE_EMA, PRICE_TYPICAL, shift ); if(Close[shift] > EmaValue ) LineHighEMA[shift]=EMPTY_VALUE; else if (Close[shift] < EmaValue ) LineLowEMA[shift]=EMPTY_VALUE; } //---- done return(0); } //+------------------------------------------------------------------+