[Quantproject-developers] QuantProject/b3_Data/DataTables Quotes.cs,1.7,1.8
Brought to you by:
glauco_1
|
From: Marco M. <mi...@us...> - 2004-08-22 16:56:40
|
Update of /cvsroot/quantproject/QuantProject/b3_Data/DataTables In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20513/b3_Data/DataTables Modified Files: Quotes.cs Log Message: Added new types of selection for the TickerSelector class (added new methods to Quotes classes and renamed some previous elements for the enum SelectionType) Index: Quotes.cs =================================================================== RCS file: /cvsroot/quantproject/QuantProject/b3_Data/DataTables/Quotes.cs,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Quotes.cs 11 Aug 2004 21:36:55 -0000 1.7 --- Quotes.cs 22 Aug 2004 16:56:25 -0000 1.8 *************** *** 53,61 **** /// close to close ratio, within the given set of tickers /// </summary> ! public static DataTable GetTickersByVolatility( bool orderByASC, ! DataTable setOfTickers, ! DateTime firstQuoteDate, ! DateTime lastQuoteDate, ! long maxNumOfReturnedTickers) { if(!setOfTickers.Columns.Contains("AdjCloseToCloseStandDev")) --- 53,61 ---- /// close to close ratio, within the given set of tickers /// </summary> ! public static DataTable GetTickersByCloseToCloseVolatility( bool orderByASC, ! DataTable setOfTickers, ! DateTime firstQuoteDate, ! DateTime lastQuoteDate, ! long maxNumOfReturnedTickers) { if(!setOfTickers.Columns.Contains("AdjCloseToCloseStandDev")) *************** *** 74,77 **** --- 74,102 ---- /// <summary> + /// returns tickers ordered by volatility computed with Standard deviation of adjusted + /// close to open ratio, within the given set of tickers + /// </summary> + public static DataTable GetTickersByCloseToOpenVolatility( bool orderByASC, + DataTable setOfTickers, + DateTime firstQuoteDate, + DateTime lastQuoteDate, + long maxNumOfReturnedTickers) + { + if(!setOfTickers.Columns.Contains("CloseToOpenStandDev")) + setOfTickers.Columns.Add("CloseToOpenStandDev", System.Type.GetType("System.Double")); + foreach(DataRow row in setOfTickers.Rows) + { + row["CloseToOpenStandDev"] = + QuantProject.DataAccess.Tables.Quotes.GetCloseToOpenStandardDeviation((string)row[0], + firstQuoteDate, + lastQuoteDate); + } + DataTable getTickersByVolatility = ExtendedDataTable.CopyAndSort(setOfTickers,"CloseToOpenStandDev", orderByASC); + ExtendedDataTable.DeleteRows(getTickersByVolatility, maxNumOfReturnedTickers); + return getTickersByVolatility; + } + + + /// <summary> /// returns tickers by average close to close performance within the given set of tickers /// </summary> *************** *** 98,101 **** --- 123,152 ---- /// <summary> + /// returns tickers by average close to open performance within the given set of tickers + /// </summary> + + public static DataTable GetTickersByAverageCloseToOpenPerformance( bool orderByASC, + DataTable setOfTickers, + DateTime firstQuoteDate, + DateTime lastQuoteDate, + long maxNumOfReturnedTickers) + { + if(!setOfTickers.Columns.Contains("AverageCloseToOpenPerformance")) + setOfTickers.Columns.Add("AverageCloseToOpenPerformance", System.Type.GetType("System.Double")); + foreach(DataRow row in setOfTickers.Rows) + { + row["AverageCloseToOpenPerformance"] = + QuantProject.DataAccess.Tables.Quotes.GetAverageCloseToOpenPerformance((string)row[0], + firstQuoteDate, + lastQuoteDate); + } + DataTable tableToReturn = ExtendedDataTable.CopyAndSort(setOfTickers,"AverageCloseToOpenPerformance", orderByASC); + ExtendedDataTable.DeleteRows(tableToReturn, maxNumOfReturnedTickers); + return tableToReturn; + } + + + + /// <summary> /// 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 *************** *** 115,144 **** { 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(); ! } } } --- 166,240 ---- { string firstTicker = (string)setOfTickers.Rows[j][0]; ! for(int i = j+1; i!= initialNumberOfRows; i++) { string secondTicker = (string)setOfTickers.Rows[i][0]; ! 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); ! } ! ! /// <summary> ! /// Returns a table containing the Pearson correlation coefficient of the close to open ratios ! /// for any possible couple of tickers contained in the given table, for the specified interval ! /// </summary> ! public static DataTable GetTickersByCloseToOpenPearsonCorrelationCoefficient( bool orderByASC, ! DataTable setOfTickers, ! DateTime firstQuoteDate, ! DateTime lastQuoteDate) ! ! { ! 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+1; i!= initialNumberOfRows; i++) ! { ! string secondTicker = (string)setOfTickers.Rows[i][0]; ! 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.GetArrayOfFloatFromRatioOfColumns(dtFirstTicker, "quClose", "quOpen"), ! ExtendedDataTable.GetArrayOfFloatFromRatioOfColumns(dtSecondTicker, "quClose", "quOpen")); ! setOfTickers.Rows.Add(rowToAdd); ! } ! catch(Exception ex) ! { ! string notUsed = ex.ToString(); } } *************** *** 149,152 **** --- 245,249 ---- + private History history; |