scratch Posted October 13, 2013 Report Share Posted October 13, 2013 Can some kind soul create the mq4 from this code please? Many thanks! //+------------------------------------------------------------------+ //| BBands of CCI.mq4 | //| Bollinger Bands of CCI | //| Copyright © 2011, PDSoftware Corp. | //+------------------------------------------------------------------+ #property copyright "Copyright © 2011, PDSoftware Corp." #property link "http://www.metaquotes.net" //---- #property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 MediumSeaGreen #property indicator_color2 LightSeaGreen #property indicator_color3 LightSeaGreen #property indicator_color4 Red //---- indicator parameters extern int BandsPeriod=20; extern int BandsShift=0; extern double BandsDeviations=2.0; extern int CCIPeriod = 14; //---- buffers double MovingBuffer[]; double UpperBuffer[]; double LowerBuffer[]; double CCIBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- Set indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,MovingBuffer); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,UpperBuffer); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2,LowerBuffer); SetIndexStyle(3,DRAW_LINE); SetIndexBuffer(3,CCIBuffer); //---- SetIndexDrawBegin(0,BandsPeriod+BandsShift); SetIndexDrawBegin(1,BandsPeriod+BandsShift); SetIndexDrawBegin(2,BandsPeriod+BandsShift); SetIndexDrawBegin(3,CCIPeriod); //---- SetLevelValue(0,100); SetLevelValue(1,-100); //---- SetIndexLabel(0,"SMA"); SetIndexLabel(1,"Upper"); SetIndexLabel(2,"Lower"); SetIndexLabel(3,"CCI"); //---- name for DataWindow and indicator subwindow label IndicatorShortName("BBands of CCI("+BandsPeriod+","+DoubleToStr(BandsDeviations,1)+","+CCIPeriod+")"); return(0); } //+------------------------------------------------------------------+ //| Bollinger Bands of CCI | //+------------------------------------------------------------------+ int start() { int i,k,counted_bars=IndicatorCounted(); double deviation; double sum,oldval,newres; //---- if(Bars<=BandsPeriod) return(0); //---- initial zero if(counted_bars<1) for(i=1;i<=BandsPeriod;i++) { MovingBuffer[bars-i]=EMPTY_VALUE; UpperBuffer[bars-i]=EMPTY_VALUE; LowerBuffer[bars-i]=EMPTY_VALUE; } //---- int limit=Bars-counted_bars; if(counted_bars>0) limit++; //Calculate CCI for(i=0; i<limit; i++) CCIBuffer= iCCI(NULL,0,CCIPeriod,PRICE_TYPICAL,i); //Calculate MA of CCI x BBands for(i=0; i<limit; i++) MovingBuffer=iMAOnArray(CCIBuffer,Bars,BandsPeriod,0,MODE_SMA,i); //---- i=Bars-BandsPeriod+1; if(counted_bars>BandsPeriod-1) i=Bars-counted_bars-1; //Calculate Upper & Lower Bands while(i>=0) { sum=0.0; k=i+BandsPeriod-1; oldval=MovingBuffer; while(k>=i) { newres=CCIBuffer[k]-oldval; //Refers to CCI ! sum+=newres*newres; k--; } deviation=BandsDeviations*MathSqrt(sum/BandsPeriod); UpperBuffer=oldval+deviation; LowerBuffer=oldval-deviation; i--; } //---- return(0); } //+------------------------------------------------------------------+ Quote Link to comment Share on other sites More sharing options...
marthart Posted October 13, 2013 Report Share Posted October 13, 2013 There you go xxx://xxx.Ashared.com/file/yMN1lbAx/CCIbands.html scratch and taipan 2 Quote Link to comment Share on other sites More sharing options...
scratch Posted October 13, 2013 Author Report Share Posted October 13, 2013 Thanks - is there anyway that we could apply bands based on CCI settings on to price like what woodie CCI group use? Quote Link to comment Share on other sites More sharing options...
marthart Posted October 13, 2013 Report Share Posted October 13, 2013 I tried applying that indicator to the main chart window and making the cci invisible but it didnt work as I have limited coding ability (Bodging) I think someone could maybe get that indicator to work though. Quote Link to comment Share on other sites More sharing options...
scratch Posted October 13, 2013 Author Report Share Posted October 13, 2013 Thanks for trying - fingers crossed someone can do it here Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.