//+------------------------------------------------------------------+ //| CCI_smoothed.mq4 | //| Yuriy Tokman (YTG) | //| http://ytg.com.ua/ | //+------------------------------------------------------------------+ #property copyright "Yuriy Tokman (YTG)" #property link "http://ytg.com.ua/" #property version "1.00" #property strict #property indicator_separate_window #property indicator_buffers 2 #property indicator_color2 clrDarkViolet #property indicator_level1 -100.0 #property indicator_level2 100.0 #property indicator_levelcolor clrSilver #property indicator_levelstyle STYLE_DOT input int CCI_Period = 14; input ENUM_APPLIED_PRICE CCI_Price = 0; input int Period_Smoothed=9; input ENUM_MA_METHOD MA_Method=0; //---- buffers double ExtMapBuffer1[]; double ExtMapBuffer2[]; string name=""; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping name="CCI_smoothed"; IndicatorShortName(name); SetIndexStyle(0,DRAW_NONE); SetIndexBuffer(0,ExtMapBuffer1); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,ExtMapBuffer2); SetIndexLabel(1,name); SetIndexDrawBegin(1,CCI_Period+Period_Smoothed); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- int limit=rates_total /*- CCI_Period*/-prev_calculated; if(prev_calculated==0)limit--; else limit++; double ma=0; for( int i=0; i