Thread: [Quantproject-developers] QuantProject/b3_Data/DataProviders/Bars/Caching DailyBarCache.cs, 1.2, 1
Brought to you by:
glauco_1
|
[Quantproject-developers]
QuantProject/b3_Data/DataProviders/Bars/Caching
DailyBarCache.cs, 1.2, 1.3
From: Glauco S. <gla...@us...> - 2008-11-20 20:41:37
|
Update of /cvsroot/quantproject/QuantProject/b3_Data/DataProviders/Bars/Caching In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv30724/b3_Data/DataProviders/Bars/Caching Modified Files: DailyBarCache.cs Log Message: Several bugs have been fixed, but it doesn't work fine, yet Index: DailyBarCache.cs =================================================================== RCS file: /cvsroot/quantproject/QuantProject/b3_Data/DataProviders/Bars/Caching/DailyBarCache.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** DailyBarCache.cs 12 Nov 2008 20:38:21 -0000 1.2 --- DailyBarCache.cs 20 Nov 2008 20:41:30 -0000 1.3 *************** *** 73,80 **** maxNumberOfItemsIn_barOpenValues , numberOfItemsToBeRemovedFrom_barOpenValues_whenCacheIsCleanedUp ); ! // this.barOpenValues = new Dictionary< DateTime , Dictionary< string , double > >(); // this.numberOfBarsIn_barOpenValues = 0; ! int maxNumberOfItemsIn_barsMissingInTheDatabase = 100000; int numberOfItemsToBeRemovedFrom_barsMissingInTheDatabase_whenCacheIsCleanedUp = --- 73,80 ---- maxNumberOfItemsIn_barOpenValues , numberOfItemsToBeRemovedFrom_barOpenValues_whenCacheIsCleanedUp ); ! // this.barOpenValues = new Dictionary< DateTime , Dictionary< string , double > >(); // this.numberOfBarsIn_barOpenValues = 0; ! int maxNumberOfItemsIn_barsMissingInTheDatabase = 100000; int numberOfItemsToBeRemovedFrom_barsMissingInTheDatabase_whenCacheIsCleanedUp = *************** *** 89,108 **** #region checkParameters - #region checkDailyTimesAreActuallyTimes - // private void checkIfItActuallyIsATime( DateTime dateTime ) - // { - // if ( !ExtendedDateTime.IsTime( dateTime ) ) - // throw new Exception( - // "dailyTimes have to be times: use the method " + - // "QuantProject.ADT.ExtendedDateTime.GetTime() " + - // "to build them" ); - // } - // private void checkDailyTimesAreActuallyTimes( DateTime[] dailyTimes ) - // { - // foreach ( DateTime dateTime in dailyTimes ) - // this.checkIfItActuallyIsATime( dateTime ); - // } - #endregion checkDailyTimesAreActuallyTimes - #region checkIfDailyTimesAreInStrictAscendingOrder private void checkIfDailyTimesAreInStrictAscendingOrder( --- 89,92 ---- *************** *** 186,190 **** #endregion getLastDateTime ! private History getBarOpenValues( string ticker, DateTime firstDateTime ) { DateTime lastDateTime = this.getLastDateTime( firstDateTime ); --- 170,174 ---- #endregion getLastDateTime ! private History getBarOpenValuesFromDatabase( string ticker, DateTime firstDateTime ) { DateTime lastDateTime = this.getLastDateTime( firstDateTime ); *************** *** 202,209 **** private void addBarOpenValue( ! string ticker, DateTime dateTime , History barOpenValuesFromQuery ) { ! double barOpenValue = ! (double)barOpenValuesFromQuery[ dateTime ]; this.barOpenValues.AddBar( ticker , dateTime , barOpenValue ); --- 186,193 ---- private void addBarOpenValue( ! string ticker, DateTime dateTime , History barOpenValuesFromDatabase ) { ! float barOpenValue = ! (float)barOpenValuesFromDatabase[ dateTime ]; this.barOpenValues.AddBar( ticker , dateTime , barOpenValue ); *************** *** 211,218 **** private void update_barOpenValues( ! string ticker, History barOpenValuesFromQuery ) { ! foreach ( DateTime dateTime in barOpenValuesFromQuery.TimeLine ) ! this.addBarOpenValue( ticker , dateTime , barOpenValuesFromQuery ); } #endregion update_barOpenValues --- 195,202 ---- private void update_barOpenValues( ! string ticker, History barOpenValuesFromDatabase ) { ! foreach ( DateTime dateTime in barOpenValuesFromDatabase.TimeLine ) ! this.addBarOpenValue( ticker , dateTime , barOpenValuesFromDatabase ); } #endregion update_barOpenValues *************** *** 221,242 **** #region getDateTimesForMissingBarsToBeAdded - // private List< DateTime > getDateTimesIn_barOpenValues() - // { - // List< DateTime > dateTimesIn_barOpenValues = - // new List<DateTime>( this.barOpenValues.Bars.Keys ); - // dateTimesIn_barOpenValues.Sort(); - // return dateTimesIn_barOpenValues; - // } ! #region removeThisDateIfItIsNotToBeAddedToMissingBars ! ! // private bool isIn_barsMissingInTheDatabase( ! // string ticker , DateTime dateTime ) ! // { ! // bool isInCacheForMissingBars = ! // ( ( this.barsMissingInTheDatabase.Bars.ContainsKey( dateTime ) ) && ! // this.barOpenValues.Bars[ dateTime ].ContainsKey( ticker ) ); ! // return isInCacheForMissingBars; ! // } private bool hasToBeAddedToMissingBars( string ticker , --- 205,210 ---- #region getDateTimesForMissingBarsToBeAdded ! #region addThisDateIfItHasToBeAddedToMissingBars private bool hasToBeAddedToMissingBars( string ticker , *************** *** 253,281 **** return hasToBeAdded; } ! private void removeThisDateIfItIsNotToBeAddedToMissingBars( string ticker , DateTime firstDateTime , DateTime lastDateTime , DateTime candidateDateTime , ! List< DateTime > dateTimesForMissingBarsToBeAdded ) { ! if ( !this.hasToBeAddedToMissingBars( ticker , firstDateTime , lastDateTime , candidateDateTime ) ) ! dateTimesForMissingBarsToBeAdded.Remove( candidateDateTime ); } ! private void removeThisDateIfItIsNotToBeAddedToMissingBars( string ticker , DateTime firstDateTime , DateTime lastDateTime , int indexFor_dateTimesForMissingBarsToBeAdded , ! List< DateTime > dateTimesForMissingBarsToBeAdded ) { DateTime candidateDateTime = ! dateTimesForMissingBarsToBeAdded[ indexFor_dateTimesForMissingBarsToBeAdded ]; ! this.removeThisDateIfItIsNotToBeAddedToMissingBars( ticker , firstDateTime , lastDateTime , candidateDateTime , ! dateTimesForMissingBarsToBeAdded ); } ! #endregion removeThisDateIfItIsNotToBeAddedToMissingBars private List< DateTime > getDateTimesForMissingBarsToBeAdded( --- 221,251 ---- return hasToBeAdded; } ! private void addThisDateIfItHasToBeAddedToMissingBars( string ticker , DateTime firstDateTime , DateTime lastDateTime , DateTime candidateDateTime , ! List< DateTime > dateTimesIn_barOpenValues , ! List< DateTime > dateTimesForMissingBarsToBeAdded ) { ! if ( this.hasToBeAddedToMissingBars( ticker , firstDateTime , lastDateTime , candidateDateTime ) ) ! dateTimesForMissingBarsToBeAdded.Add( candidateDateTime ); } ! private void addThisDateIfItHasToBeAddedToMissingBars( string ticker , DateTime firstDateTime , DateTime lastDateTime , int indexFor_dateTimesForMissingBarsToBeAdded , ! List< DateTime > dateTimesIn_barOpenValues , ! List< DateTime > dateTimesForMissingBarsToBeAdded ) { DateTime candidateDateTime = ! dateTimesIn_barOpenValues[ indexFor_dateTimesForMissingBarsToBeAdded ]; ! this.addThisDateIfItHasToBeAddedToMissingBars( ticker , firstDateTime , lastDateTime , candidateDateTime , ! dateTimesIn_barOpenValues , dateTimesForMissingBarsToBeAdded ); } ! #endregion addThisDateIfItHasToBeAddedToMissingBars private List< DateTime > getDateTimesForMissingBarsToBeAdded( *************** *** 283,299 **** DateTime firstDateTime , DateTime lastDateTime , ! List< DateTime > dateTimesForMissingBarsToBeAdded ) { int indexFor_dateTimesForMissingBarsToBeAdded = 0; while ( ( indexFor_dateTimesForMissingBarsToBeAdded < ! dateTimesForMissingBarsToBeAdded.Count ) && ! ( dateTimesForMissingBarsToBeAdded[ indexFor_dateTimesForMissingBarsToBeAdded ] <= lastDateTime ) ) ! this.removeThisDateIfItIsNotToBeAddedToMissingBars( ticker , firstDateTime , lastDateTime , indexFor_dateTimesForMissingBarsToBeAdded , ! dateTimesForMissingBarsToBeAdded ); ! return dateTimesForMissingBarsToBeAdded; } private List< DateTime > getDateTimesForMissingBarsToBeAdded( --- 253,274 ---- DateTime firstDateTime , DateTime lastDateTime , ! List< DateTime > dateTimesIn_barOpenValues ! ) { + List< DateTime > dateTimesForMissingBarsToBeAdded = new List< DateTime >(); int indexFor_dateTimesForMissingBarsToBeAdded = 0; while ( ( indexFor_dateTimesForMissingBarsToBeAdded < ! dateTimesIn_barOpenValues.Count ) && ! ( dateTimesIn_barOpenValues[ indexFor_dateTimesForMissingBarsToBeAdded ] <= lastDateTime ) ) ! { ! this.addThisDateIfItHasToBeAddedToMissingBars( ticker , firstDateTime , lastDateTime , indexFor_dateTimesForMissingBarsToBeAdded , ! dateTimesIn_barOpenValues , dateTimesForMissingBarsToBeAdded ); ! indexFor_dateTimesForMissingBarsToBeAdded++; ! } ! return dateTimesIn_barOpenValues; } private List< DateTime > getDateTimesForMissingBarsToBeAdded( *************** *** 319,391 **** #endregion getDateTimesForMissingBarsToBeAdded - #region update_barsMissingInTheDatabase - // - // #region addBarTo_barsMissingInTheDatabase - // - // #region removeValuesFrom_barsMissingInTheDatabase_ifMaxSizeHasBeenReached - // - // #region removeValuesFrom_barsMissingInTheDatabase - // - // #region initializeMembersForCleaningUp_barsMissingInTheDatabase - // private void initialize_dateTimesForCleaningUp_barsMissingInTheDatabase() - // { - // this.dateTimesForCleaningUp_barsMissingInTheDatabase = - // new List<DateTime>( this.barsMissingInTheDatabase.Keys ); - // this.dateTimesForCleaningUp_barsMissingInTheDatabase.Sort(); - // } - // - // #region initialize_tickersForCleaningUp_barsMissingInTheDatabase - // private List< string > - // getTickersForTheCurrentDateTimeToBeCleanedUpInMissingBars() - // { - // DateTime currentDateTimeForCleaningUp_barsMissingInTheDatabase = - // this.dateTimesForCleaningUp_barsMissingInTheDatabase[ 0 ]; - // List< string > - // tickersForTheCurrentDateTimeToBeCleanedUpInMissingBars = - // this.barsMissingInTheDatabase[ - // currentDateTimeForCleaningUp_barsMissingInTheDatabase ]; - // return tickersForTheCurrentDateTimeToBeCleanedUpInMissingBars; - // } - // private void initialize_tickersForCleaningUp_barsMissingInTheDatabase() - // { - // this.tickersForCleaningUp_barOpenValues = - // this.getTickersForTheCurrentDateTimeToBeCleanedUpInMissingBars(); - // } - // #endregion initialize_tickersForCleaningUp_barsMissingInTheDatabase - // - // private void initializeMembersForCleaningUp_barsMissingInTheDatabase() - // { - // this.initialize_dateTimesForCleaningUp_barsMissingInTheDatabase(); - // this.initialize_tickersForCleaningUp_barsMissingInTheDatabase(); - // } - // #endregion initializeMembersForCleaningUp_barsMissingInTheDatabase - // - // private void removeValuesFrom_barsMissingInTheDatabase() - // { - // this.initializeMembersForCleaningUp_barsMissingInTheDatabase(); - // while ( this.numberOfBarsIn_barsMissingInTheDatabase > - // this.maxNumberOfItemsIn_barsMissingInTheDatabase - - // this.numberOfItemsToBeRemovedFrom_barsMissingInTheDatabase_whenCacheIsCleanedUp ) - // this.removeNextItemFrom_barsMissingInTheDatabase(); - // } - // #endregion removeValuesFrom_barsMissingInTheDatabase - // - // private void removeValuesFrom_barsMissingInTheDatabase_ifMaxSizeHasBeenReached() - // { - // if ( this.numberOfBarsIn_barsMissingInTheDatabase >= - // this.maxNumberOfItemsIn_barsMissingInTheDatabase ) - // // the cache for missing bars is full - // this.removeValuesFrom_barsMissingInTheDatabase(); - // } - // #endregion removeValuesFrom_barsMissingInTheDatabase_ifMaxSizeHasBeenReached - // - // private void addBarTo_barsMissingInTheDatabase( - // string ticker, DateTime dateTime ) - // { - // this.removeValuesFrom_barsMissingInTheDatabase_ifMaxSizeHasBeenReached(); - // this.addBarTo_barsMissingInTheDatabase_withFreeSpaceAssured(); - // } - // #endregion addBarTo_barsMissingInTheDatabase - // private void update_barsMissingInTheDatabase( string ticker, List< DateTime > dateTimesForMissingBarsToBeAdded ) --- 294,297 ---- *************** *** 395,402 **** // this.addBarTo_barsMissingInTheDatabase( ticker , dateTime ); } - #endregion update_barsMissingInTheDatabase private void update_barsMissingInTheDatabase( ! string ticker, DateTime firstDateTime , History barOpenValues ) { List< DateTime > dateTimesForMissingBarsToBeAdded = --- 301,307 ---- // this.addBarTo_barsMissingInTheDatabase( ticker , dateTime ); } private void update_barsMissingInTheDatabase( ! string ticker, DateTime firstDateTime ) { List< DateTime > dateTimesForMissingBarsToBeAdded = *************** *** 409,423 **** private void updateDictionaries( ! string ticker, DateTime dateTime , History barOpenValues ) { ! this.update_barOpenValues( ticker, barOpenValues ); ! this.update_barsMissingInTheDatabase( ! ticker , dateTime , barOpenValues ); } private void updateDictionaries( string ticker, DateTime dateTime ) { ! History barOpenValues = this.getBarOpenValues( ticker , dateTime ); ! this.updateDictionaries( ticker , dateTime , barOpenValues ); } #endregion updateDictionaries --- 314,328 ---- private void updateDictionaries( ! string ticker, DateTime dateTime , History barOpenValuesFromDatabase ) { ! this.update_barOpenValues( ticker, barOpenValuesFromDatabase ); ! this.update_barsMissingInTheDatabase( ticker , dateTime ); } private void updateDictionaries( string ticker, DateTime dateTime ) { ! History barOpenValuesFromDatabase = ! this.getBarOpenValuesFromDatabase( ticker , dateTime ); ! this.updateDictionaries( ticker , dateTime , barOpenValuesFromDatabase ); } #endregion updateDictionaries *************** *** 435,439 **** marketValue = this.barOpenValues.GetBarValue( ticker , dateTime ); return marketValue; ! } #endregion getMarketValueWithUpdatedDictionaries --- 340,344 ---- marketValue = this.barOpenValues.GetBarValue( ticker , dateTime ); return marketValue; ! } #endregion getMarketValueWithUpdatedDictionaries *************** *** 484,487 **** --- 389,400 ---- } #endregion GetMarketValue + + public bool WasExchanged( string ticker , DateTime dateTime ) + { + // forces bar caching + this.GetMarketValue( ticker , dateTime ); + bool wasExchanged = this.barOpenValues.ContainsBar( ticker , dateTime ); + return wasExchanged; + } } } |