[Quantproject-developers] QuantProject/b3_Data/DataTables Quotes.cs,1.6,1.7
Brought to you by:
glauco_1
|
From: Marco M. <mi...@us...> - 2004-08-11 21:37:03
|
Update of /cvsroot/quantproject/QuantProject/b3_Data/DataTables In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25636/b3_Data/DataTables Modified Files: Quotes.cs Log Message: Changed implementation for the method returning a table containing the PearsonCorrelationCoefficient for any possible couple of tickers from a given table of tickers (now it's more efficient) Index: Quotes.cs =================================================================== RCS file: /cvsroot/quantproject/QuantProject/b3_Data/DataTables/Quotes.cs,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Quotes.cs 4 Aug 2004 23:02:05 -0000 1.6 --- Quotes.cs 11 Aug 2004 21:36:55 -0000 1.7 *************** *** 100,104 **** /// Returns a table containing the Pearson correlation coefficient of the adjusted close to close ratios /// for any possible couple of tickers contained in the given table, for the specified interval - /// (the function has been implemented just for testing purposes) /// </summary> public static DataTable GetTickersByAdjCloseToClosePearsonCorrelationCoefficient( bool orderByASC, --- 100,103 ---- *************** *** 108,152 **** { if(!setOfTickers.Columns.Contains("PearsonCorrelationCoefficient")) setOfTickers.Columns.Add("PearsonCorrelationCoefficient", System.Type.GetType("System.Double")); int initialNumberOfRows = setOfTickers.Rows.Count; ! char[] separator = new char[1]; ! separator[0] = ';'; ! for(int j=0; j!= setOfTickers.Rows.Count; j++) { string firstTicker = (string)setOfTickers.Rows[j][0]; ! if(firstTicker.IndexOfAny(separator)== -1) { ! for(int i = 0; i!= setOfTickers.Rows.Count; i++) { ! string secondTicker = (string)setOfTickers.Rows[i][0]; ! ! if(secondTicker.IndexOfAny(separator)== -1) { ! DataTable dtFirstTicker = QuantProject.DataAccess.Tables.Quotes.GetTickerQuotes(firstTicker, ! firstQuoteDate, ! lastQuoteDate); ! ! DataTable dtSecondTicker = QuantProject.DataAccess.Tables.Quotes.GetTickerQuotes(secondTicker, ! firstQuoteDate, ! lastQuoteDate); ! DataRow rowToAdd = setOfTickers.NewRow(); ! rowToAdd[0]=firstTicker + ";" + secondTicker; ! try ! { ! rowToAdd["PearsonCorrelationCoefficient"] = ! QuantProject.ADT.Statistics.BasicFunctions.PearsonCorrelationCoefficient( ! ExtendedDataTable.GetArrayOfFloatFromColumn(dtFirstTicker, "quAdjustedCloseToCloseRatio"), ! ExtendedDataTable.GetArrayOfFloatFromColumn(dtSecondTicker, "quAdjustedCloseToCloseRatio")); ! setOfTickers.Rows.Add(rowToAdd); ! } ! catch(Exception ex) ! { ! string notUsed = ex.ToString(); ! } } } } } return ExtendedDataTable.CopyAndSort(setOfTickers,"PearsonCorrelationCoefficient", orderByASC); } --- 107,148 ---- { + if(!setOfTickers.Columns.Contains("CorrelatedTicker")) + setOfTickers.Columns.Add("CorrelatedTicker", System.Type.GetType("System.String")); if(!setOfTickers.Columns.Contains("PearsonCorrelationCoefficient")) setOfTickers.Columns.Add("PearsonCorrelationCoefficient", System.Type.GetType("System.Double")); int initialNumberOfRows = setOfTickers.Rows.Count; ! for(int j=0; j!= initialNumberOfRows; j++) { string firstTicker = (string)setOfTickers.Rows[j][0]; ! for(int i = j; i!= initialNumberOfRows; i++) { ! string secondTicker = (string)setOfTickers.Rows[i][0]; ! if(firstTicker != secondTicker) { ! DataTable dtFirstTicker = QuantProject.DataAccess.Tables.Quotes.GetTickerQuotes(firstTicker, ! firstQuoteDate, ! lastQuoteDate); ! DataTable dtSecondTicker = QuantProject.DataAccess.Tables.Quotes.GetTickerQuotes(secondTicker, ! firstQuoteDate, ! lastQuoteDate); ! DataRow rowToAdd = setOfTickers.NewRow(); ! rowToAdd[0] = firstTicker; ! rowToAdd["CorrelatedTicker"] = secondTicker; ! try { ! rowToAdd["PearsonCorrelationCoefficient"] = ! QuantProject.ADT.Statistics.BasicFunctions.PearsonCorrelationCoefficient( ! ExtendedDataTable.GetArrayOfFloatFromColumn(dtFirstTicker, "quAdjustedCloseToCloseRatio"), ! ExtendedDataTable.GetArrayOfFloatFromColumn(dtSecondTicker, "quAdjustedCloseToCloseRatio")); ! setOfTickers.Rows.Add(rowToAdd); ! } ! catch(Exception ex) ! { ! string notUsed = ex.ToString(); } } } } + ExtendedDataTable.DeleteRows(setOfTickers, 0, initialNumberOfRows - 1); return ExtendedDataTable.CopyAndSort(setOfTickers,"PearsonCorrelationCoefficient", orderByASC); } |