//+------------------------------------------------------------------+ //| Brooky_Rsi_Ichimoku.mq4 | //| Copyright © 2004, MetaQuotes Software Corp. | //| http://www.metaquotes.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2004, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" #property indicator_separate_window #property indicator_buffers 8 #property indicator_color1 Blue #property indicator_color2 Red #property indicator_color3 C'241,139,56' #property indicator_color4 Thistle #property indicator_color5 Lime #property indicator_color6 C'241,139,56' #property indicator_color7 Thistle #property indicator_color8 C'82,82,82' #property indicator_width1 3 #property indicator_width2 3 #property indicator_width5 3 #property indicator_level1 50 #property indicator_level2 30 #property indicator_level3 70 //---- input parameters extern string Author_Site = "www.Forex-Indicators.weebly.com"; extern int Tenkan=9; extern int Kijun=26; extern int Senkou=52; extern string RSI_Period =" Set RSI Period Below"; extern int Rsip =14; extern string Cloud_Style ="2 for Dots : 0 for Line"; extern int CL_Style =0; //---- buffers double Tenkan_Buffer[]; double Kijun_Buffer[]; double SpanA_Buffer[]; double SpanB_Buffer[]; double Chinkou_Buffer[]; double SpanA2_Buffer[]; double SpanB2_Buffer[]; double Fill_Buffer[]; //---- int a_begin; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,Tenkan_Buffer); SetIndexDrawBegin(0,Tenkan-1); SetIndexLabel(0,"Tenkan Sen"); //---- SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,Kijun_Buffer); SetIndexDrawBegin(1,Kijun-1); SetIndexLabel(1,"Kijun Sen"); //---- a_begin=Kijun; if(a_beginTenkan) i=Bars-counted_bars-1; while(i>=0) { high=iRSI(NULL,0,Rsip,PRICE_HIGH,i); low=iRSI(NULL,0,Rsip,PRICE_LOW,i); k=i-1+Tenkan; while(k>=i) { price=iRSI(NULL,0,Rsip,PRICE_HIGH,k); if(highprice) low=price; k--; } Tenkan_Buffer[i]=(high+low)/2; i--; } //---- Kijun Sen i=Bars-Kijun; if(counted_bars>Kijun) i=Bars-counted_bars-1; while(i>=0) { high=iRSI(NULL,0,Rsip,PRICE_HIGH,i); low=iRSI(NULL,0,Rsip,PRICE_LOW,i); k=i-1+Kijun; while(k>=i) { price=iRSI(NULL,0,Rsip,PRICE_HIGH,k); if(highprice) low=price; k--; } Kijun_Buffer[i]=(high+low)/2; i--; } //---- Senkou Span A i=Bars-a_begin+1; if(counted_bars>a_begin-1) i=Bars-counted_bars-1; while(i>=0) { price=(Kijun_Buffer[i]+Tenkan_Buffer[i])/2; SpanA_Buffer[i]=price; SpanA2_Buffer[i]=price; i--; } //---- Senkou Span B i=Bars-Senkou; if(counted_bars>Senkou) i=Bars-counted_bars-1; while(i>=0) { high=iRSI(NULL,0,Rsip,PRICE_HIGH,i); low=iRSI(NULL,0,Rsip,PRICE_LOW,i);k=i-1+Senkou; while(k>=i) { price=iRSI(NULL,0,Rsip,PRICE_HIGH,k); if(highprice) low=price; k--; } price=(high+low)/2; SpanB_Buffer[i]=price; SpanB2_Buffer[i]=price; if(SpanA_Buffer[i]<=SpanB_Buffer[i]) { Fill_Buffer[i]=SpanA_Buffer[i]; } if(SpanA_Buffer[i]>SpanB_Buffer[i]) { Fill_Buffer[i]=SpanB_Buffer[i]; } i--; } //---- Chinkou Span i=Bars-1; if(counted_bars>1) i=Bars-counted_bars-1; while(i>=0) { Chinkou_Buffer[i]=iRSI(NULL,0,Rsip,PRICE_CLOSE,i); i--; } //---- return(0); } //+------------------------------------------------------------------+