/*-----------------------------+ | | | Shared by www.Aptrafx.com | | | +------------------------------*/ //+------------------------------------------------------------------+ //| WoodiesCCI.mq4 | //| Rosh | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "created by Luis Damiani; converted by Rosh; modified by Ron" #property link "http://www.metaquotes.net" #property indicator_separate_window #property indicator_buffers 8 #property indicator_color1 Red #property indicator_color2 White #property indicator_color3 White #property indicator_color4 White #property indicator_color5 White #property indicator_color6 White #property indicator_color7 White #property indicator_color8 White // input parameters extern int A_period=6; //Fast extern int B_period=14; extern int C_period=20; extern int D_period=25; extern int E_period=30; extern int F_period=35; extern int G_period=40; extern int H_period=45; extern int I_period=50; extern int num_bars=550; // parameters int shift=0; bool initDone=true; int bar=0; int prevbars=0; int startpar=0; int cs=0; int prevcs=0; string commodt="nonono"; int frame=0; int bars=0; //---- buffers double FastWoodieCCI[]; double HistoWoodieCCI[]; double SlowWoodieCCI[]; double SlowWoodieCCI2[]; double SlowWoodieCCI3[]; double SlowWoodieCCI4[]; double SlowWoodieCCI5[]; double SlowWoodieCCI6[]; double SlowWoodieCCI7[]; double SlowWoodieCCI8[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,FastWoodieCCI); SetIndexStyle(1,DRAW_LINE,1,2); SetIndexBuffer(1,SlowWoodieCCI); SetIndexStyle(1,DRAW_LINE,1,2); SetIndexBuffer(1,SlowWoodieCCI2); SetIndexStyle(1,DRAW_LINE,1,2); SetIndexBuffer(1,SlowWoodieCCI3); SetIndexStyle(1,DRAW_LINE,1,2); SetIndexBuffer(1,SlowWoodieCCI4); SetIndexStyle(1,DRAW_LINE,1,2); SetIndexBuffer(1,SlowWoodieCCI5); SetIndexStyle(1,DRAW_LINE,1,2); SetIndexBuffer(1,SlowWoodieCCI6); SetIndexStyle(1,DRAW_LINE,1,2); SetIndexBuffer(1,SlowWoodieCCI7); SetIndexStyle(1,DRAW_LINE,1,2); SetIndexBuffer(1,SlowWoodieCCI8); SetIndexStyle(2,DRAW_HISTOGRAM); SetIndexBuffer(2,HistoWoodieCCI); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- TODO: add your code here //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); //---- TODO: add your code here //checksum used to see if parameters have been changed cs= A_period+B_period+num_bars; //params haven't changed only need to calculate new bar if ((cs==prevcs)&&(commodt==Symbol())&&(frame==(Time[4]-Time[5]))&&((Bars-prevbars)<2)) startpar=Bars-prevbars; else startpar=-1; commodt=Symbol(); frame=Time[4]-Time[5]; prevbars = Bars; prevcs = cs; if (startpar==1 | startpar==0) bar=startpar; else initDone = true; if (initDone) { FastWoodieCCI[num_bars-1]=0; SlowWoodieCCI[num_bars-1]=0; SlowWoodieCCI2[num_bars-1]=0; SlowWoodieCCI3[num_bars-1]=0; SlowWoodieCCI4[num_bars-1]=0; SlowWoodieCCI5[num_bars-1]=0; SlowWoodieCCI6[num_bars-1]=0; SlowWoodieCCI7[num_bars-1]=0; SlowWoodieCCI8[num_bars-1]=0; HistoWoodieCCI[num_bars-1]=0; //SetIndexValue(num_bars-1, 0); //SetIndexValue2(num_bars-1, 0); bar=num_bars-2; initDone=false; }; //SetLoopCount(0); for (shift = bar;shift>=0;shift--) { FastWoodieCCI[shift]=iCCI(NULL,0,B_period,PRICE_TYPICAL,shift); SlowWoodieCCI[shift]=iCCI(NULL,0,A_period,PRICE_TYPICAL,shift); SlowWoodieCCI2[shift]=iCCI(NULL,0,C_period,PRICE_TYPICAL,shift); SlowWoodieCCI3[shift]=iCCI(NULL,0,D_period,PRICE_TYPICAL,shift); SlowWoodieCCI4[shift]=iCCI(NULL,0,E_period,PRICE_TYPICAL,shift); SlowWoodieCCI5[shift]=iCCI(NULL,0,F_period,PRICE_TYPICAL,shift); SlowWoodieCCI6[shift]=iCCI(NULL,0,G_period,PRICE_TYPICAL,shift); SlowWoodieCCI7[shift]=iCCI(NULL,0,H_period,PRICE_TYPICAL,shift); SlowWoodieCCI8[shift]=iCCI(NULL,0,I_period,PRICE_TYPICAL,shift); HistoWoodieCCI[shift]=iCCI(NULL,0,A_period,PRICE_TYPICAL,shift); //SetIndexValue(shift,iCCIEx(A_period,PRICE_TYPICAL,shift)); //SetIndexValue2(shift,iCCIEx(B_period,PRICE_TYPICAL,shift)); }; //---- return(0); } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Series array that contains open time of each bar
Indicator Curves created:
Implements a curve of type DRAW_LINE
Implements a curve of type DRAW_HISTOGRAM
Indicators Used:
Commodity channel index
Custom Indicators Used:
Order Management characteristics:
Other Features: