#property copyright "zhang_jinsong@hotmail.com" #property indicator_chart_window #property indicator_buffers 3 #property indicator_color1 Magenta #property indicator_color2 Aqua #property indicator_color3 White extern int lastBars_LSMA=1; extern int lastBars_HMA=1; extern int lastBars_CCI=1; extern int lastBars_bbsqueeze=1; extern int lastBars_white_dots=0; extern int lastBars_Awesome=1; extern int lastBars_TrendLinearReg=1; extern int lastBars_FNCD=1; extern int lastBars_MACD_Colored=1; extern int lastBars_MAXStop=1; extern int lastBars_StepMA=1; extern int lastBars_ATRStops=1; extern int lastBars_Nina_StepMA=1; extern int trigger=7; extern int CountBars=1000; extern string Param_LSMA="--------------"; extern int Rperiod=20; extern int Draw4HowLongg=1500; extern string Param_HMA="--------------"; extern int period=21; extern int method=3; extern int price=0; extern string Param_CCI="--------------"; extern int TrendCCI_Period=55; extern int EntryCCI_Period=13; extern int LSMAPeriod=25; extern int Trend_period=2; extern int CountBars_CCI=2000; extern int CCISize=2; extern int TCCISize=1; extern int TrendSize=1; extern int NoTrendSize=1; extern int LineSize3=2; extern string Param_bbsqueeze="--------------"; extern int bolPrd=20; extern double bolDev=2.0; extern int keltPrd=20; extern double keltFactor=1.5; extern int momPrd=12; extern string Param_CountBars_TrendLinearReg="--------------"; extern int barsToCount=20; extern int CountBars_TrendLinearReg =2000; extern string Param_FNCD="--------------"; extern int FN=20; extern double Deviation=3.0; extern int FastEMA=5; extern int SlowEMA=13; extern string Param_MACD_Colored="--------------"; extern string Alert_On=""; extern bool EMail_Alert=false; extern int Max_Alerts=1; extern int Alert_Before_Minutes=15; extern int Alert_Every_Minutes=5; extern bool ShowSignal=true; extern int FastEMA_2=12; extern int SlowEMA_2=26; extern int SignalSMA=1; extern int FontSize=8; extern color FontColor=Black; extern bool Use_DEMAs=false; extern string Param_MAXStop="--------------"; extern double OverBoost = 0.0; extern double Kv=0.25; extern double Kz=0.15; extern string Param_StepMA="--------------"; extern int Length = 10; extern double Kv_StepMA = 1.0; extern int StepSize = 0; extern int MA_Mode = 0; extern int Advance = 0; extern double Percentage = 0; extern bool HighLow = false; extern int ColorMode = 0; extern int BarsNumber = 0; extern string Param_ATRStops="--------------"; extern int Length_ATRStops=10; extern int ATRperiod=5; extern double Kv_ATRStops=2.5; extern string Param_Nina_StepMA="--------------"; extern int PeriodWATR=7; extern double Kwatr= 0.7; extern int HighLow_Nina_StepMA=0; extern int CalculatedBars = 500; extern bool alert_ON=false; double val_s1[],val_b1[],val_whitedot[]; int time_lastbar,old_period; int signal_LSMA,signal_HMA,signal_CCI,signal_bbsqueeze,signal_whitedot; int signal_Awesome,signal_TrendLinearReg,signal_FNCD,signal_MACD_Colored; int signal_MAXStop,signal_StepMA,signal_ATRStops,signal_Nina_StepMA; double aa,bb,cc,dd,ee,ff,gg,hh,ii,jj,kk; int kk1,kk2,kk3,kk4,k_trigger_up,k_trigger_DN; int trend,whiteDot; int mysignal; int MyInputs,error_inputs; void init(){ SetIndexStyle(0,DRAW_ARROW,0,1); SetIndexArrow(0,234); SetIndexBuffer(0,val_s1); SetIndexStyle(1,DRAW_ARROW,0,1);SetIndexArrow(1,233);SetIndexBuffer(1,val_b1); SetIndexStyle(2,DRAW_ARROW,0,1);SetIndexArrow(2,108);SetIndexBuffer(2,val_whitedot); SetIndexEmptyValue(0, 0.0); MyInputs=lastBars_LSMA+lastBars_HMA+lastBars_CCI+ lastBars_bbsqueeze+lastBars_Awesome+lastBars_TrendLinearReg+ lastBars_FNCD+lastBars_MACD_Colored+lastBars_MAXStop+ lastBars_StepMA+lastBars_ATRStops+lastBars_Nina_StepMA; if(trigger>MyInputs){ Alert("check input, trigger maximum "+MyInputs); error_inputs++; } int k_MyInputs=(MathFloor(MyInputs/2)+1); if(trigger0){Comment("check input");return;} if(Bars<=100) return; if(old_period!=Period()){old_period=Period();time_lastbar=0;} if(time_lastbar>Time[0])return; int shift=CountBars; while(shift>=0){ val_s1[shift+1]=0;val_b1[shift+1]=0;val_whitedot[shift+1]=0; signal_LSMA=0;signal_HMA=0;signal_CCI=0;signal_bbsqueeze=0;signal_whitedot=0; signal_Awesome=0;signal_TrendLinearReg=0;signal_FNCD=0;signal_MACD_Colored=0; signal_MAXStop=0;signal_StepMA=0;signal_ATRStops=0;signal_Nina_StepMA=0; mysignal=0;k_trigger_up=0;k_trigger_DN=0; aa=0;bb=0;cc=0;dd=0; int i; if(lastBars_LSMA>0){ kk1=0;kk2=0;kk3=0;kk4=0; for(i=shift+1;i<=shift+lastBars_LSMA;i++){ aa=iCustom(Symbol(),0,"LSMA_in_Color",Rperiod,Draw4HowLongg,4,i); bb=iCustom(Symbol(),0,"LSMA_in_Color",Rperiod,Draw4HowLongg,4,i+1); if(bb>aa)kk1++; if(bb=lastBars_LSMA){signal_LSMA=-1;k_trigger_DN++;} if(kk2>=lastBars_LSMA){signal_LSMA=1;k_trigger_up++;} } if(lastBars_HMA>0){ kk1=0;kk2=0;kk3=0;kk4=0; for(i=shift+1;i<=shift+lastBars_HMA;i++){ aa=iCustom(Symbol(),0,"HMA",period,method,price,0,i); bb=iCustom(Symbol(),0,"HMA",period,method,price,1,i); if(aa==EMPTY_VALUE)kk1++; if(bb==EMPTY_VALUE)kk2++; } if(kk1>=lastBars_HMA){signal_HMA=-1;k_trigger_DN++;} if(kk2>=lastBars_HMA){signal_HMA=1;k_trigger_up++;} } if(lastBars_CCI>0){ int k_dot_up,k_dot_down; for(i=shift+1;i<=shift+lastBars_CCI;i++){ aa=iCustom(Symbol(),0,"CCI_Woodies_Lnx_v3_1",TrendCCI_Period,EntryCCI_Period,LSMAPeriod,Trend_period,CountBars_CCI,CCISize,TCCISize,TrendSize,NoTrendSize,LineSize3,6,i); bb=iCustom(Symbol(),0,"CCI_Woodies_Lnx_v3_1",TrendCCI_Period,EntryCCI_Period,LSMAPeriod,Trend_period,CountBars_CCI,CCISize,TCCISize,TrendSize,NoTrendSize,LineSize3,7,i); if(aa==0)k_dot_up++; if(bb==0)k_dot_down++; } if(k_dot_up>=lastBars_CCI){signal_CCI=1;k_trigger_up++;} if(k_dot_down>=lastBars_CCI){signal_CCI=-1;k_trigger_DN++;} k_dot_up=0;k_dot_down=0; } if(lastBars_bbsqueeze>0){ kk1=0;kk2=0;kk3=0;kk4=0; for(i=shift+1;i<=shift+lastBars_bbsqueeze;i++){ aa=iCustom(Symbol(),0,"bbsqueeze",bolPrd,bolDev,keltPrd,keltFactor,momPrd,0,i); bb=iCustom(Symbol(),0,"bbsqueeze",bolPrd,bolDev,keltPrd,keltFactor,momPrd,3,i); cc=iCustom(Symbol(),0,"bbsqueeze",bolPrd,bolDev,keltPrd,keltFactor,momPrd,1,i); dd=iCustom(Symbol(),0,"bbsqueeze",bolPrd,bolDev,keltPrd,keltFactor,momPrd,2,i); if(aa>0 || bb<0)kk1++; if(cc<0 || dd>0)kk2++; } if(kk1>=lastBars_bbsqueeze){signal_bbsqueeze=1;k_trigger_up++;} if(kk2>=lastBars_bbsqueeze){signal_bbsqueeze=-1;k_trigger_DN++;} } whiteDot=0; for(i=shift+1;i<=shift+lastBars_white_dots;i++){ ee=iCustom(Symbol(),0,"bbsqueeze",bolPrd,bolDev,keltPrd,keltFactor,momPrd,4,i); if(ee!=EMPTY_VALUE)whiteDot++; } if(lastBars_Awesome>0){ kk1=0;kk2=0;kk3=0;kk4=0; for(i=shift+1;i<=shift+lastBars_Awesome;i++){ aa=iCustom(Symbol(),0,"Awesome",1,i); bb=iCustom(Symbol(),0,"Awesome",2,i); if(aa==0.0)kk2++; if(bb==0.0)kk1++; } if(kk1>=lastBars_Awesome ){signal_Awesome=1;k_trigger_up++;} if(kk2>=lastBars_Awesome ){signal_Awesome=-1;k_trigger_DN++;} } if(lastBars_TrendLinearReg>0){ kk1=0;kk2=0;kk3=0;kk4=0; for(i=shift+1;i<=shift+lastBars_TrendLinearReg;i++){ aa=iCustom(Symbol(),0,"TrendLinearReg",barsToCount,CountBars_TrendLinearReg,0,i); bb=iCustom(Symbol(),0,"TrendLinearReg",barsToCount,CountBars_TrendLinearReg,1,i); if(aa==EMPTY_VALUE)kk2++; if(bb==EMPTY_VALUE)kk1++; } if(kk1>=lastBars_TrendLinearReg ){signal_TrendLinearReg=1;k_trigger_up++;} if(kk2>=lastBars_TrendLinearReg ){signal_TrendLinearReg=-1;k_trigger_DN++;} } if(lastBars_FNCD>0){ kk1=0;kk2=0;kk3=0;kk4=0; for(i=shift+1;i<=shift+lastBars_FNCD;i++){ aa=iCustom(Symbol(),0,"FN_Signal",FN,Deviation,FastEMA,SlowEMA,0,i); bb=iCustom(Symbol(),0,"FN_Signal",FN,Deviation,FastEMA,SlowEMA,1,i); if(aa==0)kk2++; if(bb==0)kk1++; } if(kk1>=lastBars_FNCD ){signal_FNCD=1;k_trigger_up++;} if(kk2>=lastBars_FNCD ){signal_FNCD=-1;k_trigger_DN++;} } if(lastBars_MACD_Colored>0){ kk1=0;kk2=0;kk3=0;kk4=0; for(i=shift+1;i<=shift+lastBars_MACD_Colored;i++){ aa=iCustom(Symbol(),0,"MACD_Colored_v105",Alert_On,EMail_Alert,Max_Alerts,Alert_Before_Minutes,Alert_Every_Minutes,ShowSignal,FastEMA_2,SlowEMA_2,SignalSMA,FontSize,FontColor,Use_DEMAs,0,i); bb=iCustom(Symbol(),0,"MACD_Colored_v105",Alert_On,EMail_Alert,Max_Alerts,Alert_Before_Minutes,Alert_Every_Minutes,ShowSignal,FastEMA_2,SlowEMA_2,SignalSMA,FontSize,FontColor,Use_DEMAs,1,i); if(aa==0)kk2++; if(bb==0)kk1++; } if(kk1>=lastBars_MACD_Colored ){signal_MACD_Colored=1;k_trigger_up++;} if(kk2>=lastBars_MACD_Colored ){signal_MACD_Colored=-1;k_trigger_DN++;} } if(lastBars_MAXStop>0){ kk1=0;kk2=0;kk3=0;kk4=0; for(i=shift+1;i<=shift+lastBars_MAXStop;i++){ aa=iCustom(Symbol(),0,"_MAX_Stops_v1.1",OverBoost,Kv,Kz,0,i); bb=iCustom(Symbol(),0,"_MAX_Stops_v1.1",OverBoost,Kv,Kz,1,i); if(aa>0.0 && aa<999 )kk1++; if(bb>0.0 && bb<999 )kk2++; } if(kk1>=lastBars_MAXStop ){signal_MAXStop=1;k_trigger_up++;} if(kk2>=lastBars_MAXStop ){signal_MAXStop=-1;k_trigger_DN++;} } if(lastBars_StepMA>0){ kk1=0;kk2=0;kk3=0;kk4=0; for(i=shift+1;i<=shift+lastBars_StepMA;i++){ aa=iCustom(Symbol(),0,"StepMA_v7",Length,Kv_StepMA,StepSize,MA_Mode,Advance,Percentage,HighLow,ColorMode,BarsNumber,0,i); bb=iCustom(Symbol(),0,"StepMA_v7",Length,Kv_StepMA,StepSize,MA_Mode,Advance,Percentage,HighLow,ColorMode,BarsNumber,1,i); cc=iCustom(Symbol(),0,"StepMA_v7",Length,Kv_StepMA,StepSize,MA_Mode,Advance,Percentage,HighLow,ColorMode,BarsNumber,2,i); if(Close[i]>aa)kk1++; if(Close[i]=lastBars_StepMA ){signal_StepMA=1;k_trigger_up++;} if(kk2>=lastBars_StepMA ){signal_StepMA=-1;k_trigger_DN++;} } if(lastBars_ATRStops>0){ kk1=0;kk2=0;kk3=0;kk4=0; for(i=shift+1;i<=shift+lastBars_ATRStops;i++){ aa=iCustom(Symbol(),0,"ATRStops_v1[1].1",Length_ATRStops,ATRperiod,Kv_ATRStops,0,i); bb=iCustom(Symbol(),0,"ATRStops_v1[1].1",Length_ATRStops,ATRperiod,Kv_ATRStops,1,i); if(aa>0.0 && aa<999 )kk1++; if(bb>0.0 && bb<999 )kk2++; } if(kk1>=lastBars_ATRStops ){signal_ATRStops=1;k_trigger_up++;} if(kk2>=lastBars_ATRStops ){signal_ATRStops=-1;k_trigger_DN++;} } if(lastBars_Nina_StepMA>0){ kk1=0;kk2=0;kk3=0;kk4=0; for(i=shift+1;i<=shift+lastBars_Nina_StepMA;i++){ aa=iCustom(Symbol(),0,"Nina_StepMA_1_Custom3",PeriodWATR,Kwatr,HighLow_Nina_StepMA,CalculatedBars,alert_ON,0,i); bb=iCustom(Symbol(),0,"Nina_StepMA_1_Custom3",PeriodWATR,Kwatr,HighLow_Nina_StepMA,CalculatedBars,alert_ON,1,i); if(aa>bb )kk1++; if(aa=lastBars_Nina_StepMA ){signal_Nina_StepMA=1;k_trigger_up++;} if(kk2>=lastBars_Nina_StepMA ){signal_Nina_StepMA=-1;k_trigger_DN++;} } if(k_trigger_DN>=trigger){ trend=-1; val_s1[shift+1]=Close[shift+1]+20*Point; } else if(trend==-1){ } if(k_trigger_up>=trigger){ trend=1; val_b1[shift+1]=Close[shift+1]-20*Point; } else if(trend==1){ } if(lastBars_LSMA<=0 && lastBars_HMA<=0 && lastBars_CCI<=0 && lastBars_bbsqueeze<=0 && lastBars_Awesome<=0 && lastBars_TrendLinearReg<=0 && lastBars_FNCD<=0 && lastBars_MACD_Colored<=0 && lastBars_MAXStop<=0 && lastBars_StepMA<=0 && lastBars_ATRStops<=0 && lastBars_Nina_StepMA<=0 ){ } if(lastBars_white_dots>0 && whiteDot>0){ if(trend==1){ val_whitedot[shift+1]=Close[shift+1]-20*Point; val_b1[shift+1]=EMPTY_VALUE; } if(trend==-1){ val_whitedot[shift+1]=Close[shift+1]+20*Point; val_s1[shift+1]=EMPTY_VALUE; } } shift--; } time_lastbar=TimeCurrent(); }