//+------------------------------------------------------------------+ //| | //| Copyright © 2006, Luis Guilherme Damiani | //| http://www.damianifx.com.br | //| //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, Luis Guilherme Damiani" #property link "http://www.damianifx.com.br" #property indicator_buffers 2 #property indicator_separate_window //#property indicator_chart_window #property indicator_color1 Yellow #property indicator_color2 Blue #property indicator_maximum 0.8 //#property indicator_color3 Purple //---- input parameters extern int length=8; extern int maxbars=1000; extern bool mean_signal=false; extern string Base_Oscillator_Choice="0= Cyber Cycle, 1= CG, 2= RVI, other= RSI(12) ----------------"; extern int Osc_Choice=0; //---- buffers double ind1[]; double ind2[]; //double ind3[]; //double AuxBuffer[]; //Smooth //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ind1); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,ind2); // SetIndexStyle(2,DRAW_LINE); // SetIndexBuffer(2,ind3); SetLevelValue(0,0.0); // SetLevelValue(1,-0.8); ArrayInitialize(ind1,0.0); ArrayInitialize(ind2,0.0); // ArrayInitialize(ind3,0.0); /// ArrayResize(AuxBuffer,maxbars+3); // ArrayInitialize(AuxBuffer,0.0); switch(Osc_Choice) { case 0: IndicatorShortName("StochFisher of Cyber Cycle ");break; case 1: IndicatorShortName("StochFisher of CG Oscillator ");break; case 2: IndicatorShortName("StochFisher of Relative Vigor Index ");break; default: IndicatorShortName("StochFisher of RSI(12) ");break; } //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() {//1 int counted_bars=IndicatorCounted(); double num=0,denom=0; double indw[]; double stoch[]; double mstoch; ArrayResize(indw,length); ArrayInitialize(indw,0); ArrayResize(stoch,Bars); ArrayInitialize(stoch,0); //---- check for possible errors if(counted_bars<0) return(-1); int limit=Bars-2*length-counted_bars; if(limit>maxbars)limit=maxbars; //if (limit>Bars-1)limit=Bars-1; //---- for (int i = limit; i>=0;i--) {//2 for(int j=0;j