//+------------------------------------------------------------------------------------+ //| Din_fibo_Next.mq4 | //| unknown author, get from kaizer, conversed by Rosh | //| link to kaizer: http://forum.alpari-idc.ru/profile.php?mode=viewprofile&u=4196161 | //| http://forexsystems.ru/phpBB/index.php| //+------------------------------------------------------------------------------------+ #property copyright "unknown author, get from kaizer, conversed by Rosh" #property link "http://forexsystems.ru/phpBB/index.php" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Red #property indicator_color2 Red //---- input parameters extern int Ch_Period=3; extern double Ratio=0.786; extern bool SetAllBars=false; //---- buffers double ExtMapBuffer1[]; double ExtMapBuffer2[]; double tvBuffer[]; int hh,ll,first,counterPeriod; double tv,MaH,MaL; //+------------------------------------------------------------------+ //| Ïðîâåðèì - ðàçäåëèòåëü äèàïàçîíà èëè íåò | //+------------------------------------------------------------------+ bool isDelimeter(int _Period, int _shift) { bool result=false; //---- switch (_Period) { case 5:result=( TimeMinute(Time[_shift])==0) ; break; case 15:result=(TimeMinute(Time[_shift])==0); break; case 30:result=(TimeMinute(Time[_shift])==0) && MathMod(TimeHour(Time[_shift]),4.0)==0.0; break; case 60:result=(TimeMinute(Time[_shift])==0)&& MathMod(TimeHour(Time[_shift]),4.0)==0.0;break; case 240:result=(TimeMinute(Time[_shift])==0) &&(TimeHour(Time[_shift])==0); break; case 1440:result=(TimeDayOfWeek(Time[_shift])==1)&&(TimeHour(Time[_shift])==0); break; case 10080:result=(TimeDay(Time[_shift])==1)||((TimeDay(Time[_shift])==2 && TimeDay(Time[_shift+1])!=1))||((TimeDay(Time[_shift])==3 && TimeDay(Time[_shift+1])!=2)); break; default: Print("Íåäîïóñòèìûé ïåðèîä!!!"); } //---- return(result); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); int cnt,limit; //---- if (Period()==10080) return; if (counted_bars<0) return(-1); if (counted_bars>0) limit=Bars-counted_bars; if (counted_bars==0) { // íàéòè ïåðâûé è âòîðîé ðàçäåëèòåëü è óñòàíîâèòü limit cnt=Bars-1; while (!isDelimeter(Period(),cnt)) cnt--; first=cnt; cnt--; counterPeriod=0; while (counterPeriod<Ch_Period) { while (!isDelimeter(Period(),cnt)) cnt--; cnt--; counterPeriod++; } cnt++; hh=Highest(NULL,0,MODE_HIGH,first-cnt,cnt+1); ll=Lowest(NULL,0,MODE_LOW,first-cnt,cnt+1); tv=NormalizeDouble((High[hh]+Low[ll]+Close[cnt+1])/3.0,Digits); MaH=tv+NormalizeDouble((High[hh]-Low[ll])/2.0*Ratio,Digits); MaL=tv-NormalizeDouble((High[hh]-Low[ll])/2.0*Ratio,Digits); tvBuffer[cnt]=tv; ExtMapBuffer1[cnt]=MaH; ExtMapBuffer2[cnt]=MaL; limit=cnt-1; } //---- for (int shift=limit;shift>=0;shift--) { // if (isDelimeter(Period(),shift)) SetHnL(shift);// else SetMovingHnL(shift); // if (shift==0) SetValuesNullBar(shift); } return(0); } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Indicator Curves created:
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Other Features: