//+------------------------------------------------------------------+ //| PROvidets.mq4 | //| budimir | //| tartar27@bigmir.net | //+------------------------------------------------------------------+ #property copyright "budimir" #property link "tartar27@bigmir.net" #property show_inputs //oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo extern int Count_bars=12; extern int Year_PRO=2009; extern int Month_PRO=3; extern int Day_PRO=3; extern int Hour_PRO=3; //ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo string ss="Incorrect data input !", st="Not that timeframe !", sz="?", sp=" ___:___ "; int i,z,num,x; //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { //---- if(Period()== 60) sz="H1"; if(Period()==240) sz="H4"; if (sz=="?") { Alert(st); return (0); } bool hour_correct=false; if(Period()== 60 && Hour_PRO>-1 && Hour_PRO <24) hour_correct=true; if(Period()==240 && Hour_PRO>-1 && Hour_PRO < 6) hour_correct=true; //ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo if( Year_PRO <1970 || Year_PRO >2037 || Month_PRO <1 || Month_PRO >12 || Day_PRO <1 || Day_PRO >31 || Hour_PRO <0 || Hour_PRO >23 || Count_bars<3 ) { Alert(ss); return (0); } //ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo bool correct=false; if (Period()== 60) {x=1;} else { x=4;} for(i=Bars;i>=1;i--) { if( Year_PRO== TimeYear (Time[i]) && Month_PRO== TimeMonth(Time[i]) && Day_PRO== TimeDay (Time[i]) && Hour_PRO*x== TimeHour (Time[i]) && hour_correct && Count_bars<=i) { correct=true;num=i; } if (correct) break; } // -----end_for------ //oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo if (!correct) { Alert(ss); return (0); } //ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo double s1=0,s2=0,a1=0,a2=0,b1=0,b2= Count_bars; for ( z=1; z<=b2; z++) { s1=s1+Close[num+1-z]*z; s2=s2+Close[num+1-z]; a1=a1+z*z; a2=a2+z; } b1=a2; double dif=Op(a1,b1,a2,b2); //oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo Alert(sp+Symbol()+sp+sz+sp+Bars+sp+"a="+ DoubleToStr(Op(s1,b1,s2,b2)/dif,8)+sp+"b="+DoubleToStr(Op(a1,s1,a2,s2)/dif,4)+sp); //ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo //---- return(0); } //oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo double Op( double c1,double d1,double c2,double d2) { return (c1*d2-c2*d1);}
Sample
Analysis
Market Information Used:
Series array that contains open time of each bar
Series array that contains close prices for each bar
Indicator Curves created:
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Other Features:
It issuies visual alerts to the screen