//+------------------------------------------------------------------+ //| Cronex T Taichi GF.mq4 | //| Copyright © 2009, Cronex. | //| http://www.metaquotes.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, Cronex" #property link "http://www.metaquotes.net/" //---- indicator settings #property indicator_chart_window #property indicator_buffers 8 #property indicator_color1 Silver #property indicator_color2 Red #property indicator_color3 Lime #property indicator_color4 Blue #property indicator_color5 DeepSkyBlue #property indicator_color6 DeepSkyBlue #property indicator_color7 DeepSkyBlue #property indicator_color8 DarkOrange //#property indicator_width1 2 //#property indicator_width4 2 //---- indicator parameters extern int Tenkan=9; extern int Kijun=26; extern int Senkou=52; extern int FlatSE=10; //---- indicator buffers double TaichiBuffer[]; double TaichiForBuffer[]; double SignalBuffer[]; double SSignalBuffer[]; double FlatBuffer1[]; double FlatBuffer2[]; double TaichiFCUBuffer[]; double TaichiFCDBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- drawing settings SetIndexStyle(0,DRAW_LINE); SetIndexStyle(1,DRAW_LINE); SetIndexStyle(2,DRAW_LINE); SetIndexStyle(3,DRAW_LINE); SetIndexStyle(4,DRAW_HISTOGRAM,STYLE_DOT); SetIndexStyle(5,DRAW_HISTOGRAM,STYLE_DOT); SetIndexStyle(6,DRAW_LINE); SetIndexStyle(7,DRAW_LINE); IndicatorDigits(Digits); //---- indicator buffers mapping SetIndexBuffer(0,TaichiBuffer); SetIndexBuffer(1,SignalBuffer); SetIndexBuffer(2,SSignalBuffer); SetIndexBuffer(3,TaichiForBuffer); SetIndexBuffer(4,FlatBuffer1); SetIndexBuffer(5,FlatBuffer2); SetIndexBuffer(6,TaichiFCUBuffer); SetIndexBuffer(7,TaichiFCDBuffer); SetIndexEmptyValue(4,0.0); SetIndexEmptyValue(5,0.0); SetIndexEmptyValue(6,0.0); SetIndexEmptyValue(7,0.0); SetIndexShift(3,Kijun); SetIndexShift(6,Kijun); SetIndexShift(7,Kijun); // SetIndexDrawBegin(3,Kijun); //---- name for DataWindow and indicator subwindow label IndicatorShortName("Cronex Taichi"); SetIndexLabel(0,"Taichi"); SetIndexLabel(1,"Fast Signal"); SetIndexLabel(2,"Slow Signal"); SetIndexLabel(3,"TaichiFor"); SetIndexLabel(4,"FlatUp"); SetIndexLabel(5,"FlatDn"); SetIndexLabel(6,"TaichiFor Up"); SetIndexLabel(7,"TaichiFor Dn"); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| Cronex Taichi | //+------------------------------------------------------------------+ int start() { double TenkanSen,KijunSen,SenkouSpanA,SenkouSpanB,ChinkouSpan; int counted_bars = IndicatorCounted(); if(counted_bars < 0) return(-1); if(counted_bars > 0) counted_bars--; int limit = Bars - counted_bars; if(counted_bars==0) limit-=1+Kijun; for(int i=-Kijun; i=0) { TaichiBuffer[i]=(TenkanSen+KijunSen+SenkouSpanA+SenkouSpanB)/4; TaichiForBuffer[i+Kijun]=(SenkouSpanA+SenkouSpanB)/2; if(SenkouSpanA>SenkouSpanB) { TaichiFCUBuffer[i+Kijun]=(SenkouSpanA+SenkouSpanB)/2; } else { TaichiFCDBuffer[i+Kijun]=(SenkouSpanA+SenkouSpanB)/2; } } else { TaichiForBuffer[i+Kijun]=(SenkouSpanA+SenkouSpanB)/2; if(SenkouSpanA>SenkouSpanB) { TaichiFCUBuffer[i+Kijun]=(SenkouSpanA+SenkouSpanB)/2; } else { TaichiFCDBuffer[i+Kijun]=(SenkouSpanA+SenkouSpanB)/2; } } } //========================== signal line counted ================ for(i=0; i