//+------------------------------------------------------------------+ //| | //| 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<length;j++) { switch(Osc_Choice) { case 0: indw[j]=iCustom(NULL,0,"CyAn_4_Cyber Cycle",0,i+j);break; case 1: indw[j]=iCustom(NULL,0,"CyAn_5_CG Oscillator",0,i+j);break; case 2: indw[j]=iCustom(NULL,0,"CyAn_6_RVI",0,i+j);break; default:indw[j]=iRSI(NULL,0,12,PRICE_MEDIAN,i+j);break; } } double max=indw[ArrayMaximum(indw)]; double min=indw[ArrayMinimum(indw)]; stoch[i]=(indw[0]-min)/(max-min); mstoch=(4*stoch[i]+3*stoch[i+1]+2*stoch[i+2]+stoch[i+3])/10; ind1[i]=0.5*(MathLog((1+0.98*(mstoch-0.5))/(1-0.98*(mstoch-0.5)))); ind2[i]=ind1[i+1]; // ind3[i]=(4*ind1[i]+3*ind1[i+1]+2*ind1[i+2]+ind1[i+3])/10; }//2 //---- return(0); } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Indicator Curves created:
Implements a curve of type DRAW_LINE
Indicators Used:
Relative strength index
Custom Indicators Used:
CyAn_4_Cyber Cycle
CyAn_5_CG Oscillator
CyAn_6_RVI
Order Management characteristics:
Other Features: