[Quantproject-developers] QuantProject/b3_Data/DataTables Bars.cs, 1.6, 1.7
Brought to you by:
glauco_1
|
From: Marco M. <mi...@us...> - 2009-03-13 15:04:40
|
Update of /cvsroot/quantproject/QuantProject/b3_Data/DataTables In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv28257/b3_Data/DataTables Modified Files: Bars.cs Log Message: Some bugs have been fixed Index: Bars.cs =================================================================== RCS file: /cvsroot/quantproject/QuantProject/b3_Data/DataTables/Bars.cs,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Bars.cs 7 Jan 2009 23:23:54 -0000 1.6 --- Bars.cs 13 Mar 2009 15:04:23 -0000 1.7 *************** *** 211,214 **** --- 211,256 ---- } + /// <summary> + /// returns the days when the ticker was exchanged for at least + /// the given number of bars of the given interval in seconds, + /// within the given date time interval + /// </summary> + /// <param name="ticker"></param> + /// <param name="firstDateTime">begin interval</param> + /// <param name="lastDateTime">end interval</param> + /// <param name="intervalFrameInSeconds">interval frame in seconds for the ticker's bars</param> + /// <param name="minimumNumberOfBarsForEachMarketDay">a day is returned only if + /// the day's bars are equal or greater than the minimumNumberOfBars</param> + /// <returns>History of days with minimumNumberOfBars in each</returns> + public static History GetMarketDays( string ticker , + DateTime firstDateTime , + DateTime lastDateTime, + int intervalFrameInSeconds , + int minimumNumberOfBarsForEachMarketDay ) + + { + History marketDaysToBeReturned = new History(); + DateTime marketDayToCheck = + Time.GetDateTimeFromMerge( firstDateTime, new Time(9,30,0) ); + DataTable barsForMarketDayToBeReturned; + while( marketDayToCheck.CompareTo(lastDateTime) <= 0 ) + { + barsForMarketDayToBeReturned = + QuantProject.DataAccess.Tables.Bars.GetTickerBars(ticker, marketDayToCheck, + Time.GetDateTimeFromMerge(marketDayToCheck, new Time(16,0,0)), + intervalFrameInSeconds); + if (barsForMarketDayToBeReturned.Rows.Count >= minimumNumberOfBarsForEachMarketDay) + { + DateTime dayToAdd = + Time.GetDateTimeFromMerge(marketDayToCheck, new Time(0,0,0)); + marketDaysToBeReturned.Add( dayToAdd, dayToAdd ); + } + marketDayToCheck = + marketDayToCheck.AddDays(1); + } + return marketDaysToBeReturned; + } + + #region GetMarketDateTimes *************** *** 488,492 **** { this.history = new History(); ! this.history.Import( this , Bars.DateTimeForOpen , Bars.Close ); } } --- 530,534 ---- { this.history = new History(); ! this.history.Import( this , Bars.DateTimeForOpen , Bars.DateTimeForOpen ); } } *************** *** 599,603 **** return this.GetBarDateTimeOrFollowing(dateTime); } ! else { return this.GetBarDateTimeOrPreceding(dateTime); --- 641,645 ---- return this.GetBarDateTimeOrFollowing(dateTime); } ! else//dateTime > endDateTime { return this.GetBarDateTimeOrPreceding(dateTime); *************** *** 648,652 **** /// </summary> /// <returns></returns> ! public float GetFirstValidOpen(DateTime dateTime ) { object[] keys = new object[1]; --- 690,694 ---- /// </summary> /// <returns></returns> ! public double GetFirstValidOpen(DateTime dateTime ) { object[] keys = new object[1]; *************** *** 655,659 **** if(foundRow==null) throw new Exception("No bar for such a dateTime!"); ! return (float)foundRow[Bars.Open]; } } --- 697,701 ---- if(foundRow==null) throw new Exception("No bar for such a dateTime!"); ! return (double)foundRow[Bars.Open]; } } |