[Quantproject-developers] QuantProject/b3_Data/DataTables Quotes.cs, 1.26, 1.27
Brought to you by:
glauco_1
|
From: Marco M. <mi...@us...> - 2006-07-02 19:07:30
|
Update of /cvsroot/quantproject/QuantProject/b3_Data/DataTables In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv26439/b3_Data/DataTables Modified Files: Quotes.cs Log Message: Conflict resolution Index: Quotes.cs =================================================================== RCS file: /cvsroot/quantproject/QuantProject/b3_Data/DataTables/Quotes.cs,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** Quotes.cs 29 Jun 2006 17:53:33 -0000 1.26 --- Quotes.cs 2 Jul 2006 19:07:26 -0000 1.27 *************** *** 609,659 **** 0); } - /// <summary> - /// returns tickers of a given set of tickers ordered by close to close - /// correlation to a given benchmark - /// </summary> - public static DataTable GetTickersByCloseToCloseCorrelationToBenchmark( bool orderByASC, - DataTable setOfTickers, string benchmark, - DateTime firstQuoteDate, - DateTime lastQuoteDate, - long maxNumOfReturnedTickers, int numDaysBetweenEachClose) - { - if(!setOfTickers.Columns.Contains("CloseToCloseCorrelationToBenchmark")) - setOfTickers.Columns.Add("CloseToCloseCorrelationToBenchmark", System.Type.GetType("System.Double")); - float[] benchmarkRatios = GetArrayOfCloseToCloseRatios(benchmark, ref firstQuoteDate, lastQuoteDate, numDaysBetweenEachClose); - foreach(DataRow row in setOfTickers.Rows) - { - float[] tickerRatios = GetArrayOfCloseToCloseRatios((string)row[0], - ref firstQuoteDate, lastQuoteDate, numDaysBetweenEachClose ); - if(tickerRatios.Length == benchmarkRatios.Length) - row["CloseToCloseCorrelationToBenchmark"] = - Math.Abs(BasicFunctions.PearsonCorrelationCoefficient(benchmarkRatios, tickerRatios)); - } - DataTable tableToReturn = ExtendedDataTable.CopyAndSort(setOfTickers, - "CloseToCloseCorrelationToBenchmark>=0.0", - "CloseToCloseCorrelationToBenchmark", - orderByASC); - ExtendedDataTable.DeleteRows(tableToReturn, maxNumOfReturnedTickers); - return tableToReturn; - } ! /// <summary> ! /// returns tickers of a given set of tickers ordered by close to close ! /// correlation to a given benchmark ! /// </summary> ! public static DataTable GetTickersByCloseToCloseCorrelationToBenchmark( bool orderByASC, ! string groupID, string benchmark, ! DateTime firstQuoteDate, ! DateTime lastQuoteDate, ! long maxNumOfReturnedTickers, ! int numDaysBetweenEachClose) { ! DataTable tickersOfGroup = new Tickers_tickerGroups(groupID); ! return GetTickersByCloseToCloseCorrelationToBenchmark(orderByASC, ! tickersOfGroup, benchmark, ! firstQuoteDate, ! lastQuoteDate, ! maxNumOfReturnedTickers, ! numDaysBetweenEachClose); } --- 609,619 ---- 0); } ! public static float[] GetArrayOfAdjustedCloseQuotes(string ticker, ! DateTime firstQuoteDate, ! DateTime lastQuoteDate) { ! Quotes tickerQuotes = new Quotes(ticker, firstQuoteDate, lastQuoteDate); ! return ExtendedDataTable.GetArrayOfFloatFromColumn(tickerQuotes,"quAdjustedClose"); } *************** *** 680,683 **** --- 640,644 ---- } + private History history; *************** *** 971,974 **** --- 932,949 ---- } + /// <summary> + /// Gets the first valid close to close ratio at the given date + /// </summary> + /// <returns></returns> + public float GetFirstValidCloseToCloseRatio(DateTime date ) + { + object[] keys = new object[1]; + keys[0] = this.GetFirstValidQuoteDate(date.Date); + DataRow foundRow = this.Rows.Find(keys); + if(foundRow==null) + throw new Exception("No quote for such a date!"); + return (float)foundRow[Quotes.AdjustedCloseToCloseRatio]; + } + // public DateTime GetPrecedingDate( DateTime quoteDate , int precedingDays ) // { |