[Quantproject-developers] QuantProject/b3_Data/DataTables Quotes.cs,1.15,1.16
Brought to you by:
glauco_1
|
From: Marco M. <mi...@us...> - 2005-05-17 23:06:10
|
Update of /cvsroot/quantproject/QuantProject/b3_Data/DataTables In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17337/b3_Data/DataTables Modified Files: Quotes.cs Log Message: Added new ITickerSelector for selecting tickers by OpenToClose correlation to benchmark Index: Quotes.cs =================================================================== RCS file: /cvsroot/quantproject/QuantProject/b3_Data/DataTables/Quotes.cs,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** Quotes.cs 19 Apr 2005 18:30:48 -0000 1.15 --- Quotes.cs 17 May 2005 23:06:00 -0000 1.16 *************** *** 4,7 **** --- 4,8 ---- using System.Text; using QuantProject.ADT; + using QuantProject.ADT.Statistics; using QuantProject.ADT.Histories; using QuantProject.DataAccess; *************** *** 364,367 **** --- 365,420 ---- } + private static float[] getArrayOfCloseToOpenRatios(string ticker, + DateTime firstQuoteDate, + DateTime lastQuoteDate) + { + float[] returnValue; + Quotes tickerQuotes = new Quotes(ticker, firstQuoteDate, lastQuoteDate); + returnValue = ExtendedDataTable.GetArrayOfFloatFromRatioOfColumns(tickerQuotes, "quClose", "quOpen"); + return returnValue; + + } + + /// <summary> + /// returns tickers of a given group ordered by open - close + /// correlation to a given benchmark + /// </summary> + public static DataTable GetTickersByOpenCloseCorrelationToBenchmark( bool orderByASC, + string groupID, string benchmark, + DateTime firstQuoteDate, + DateTime lastQuoteDate, + long maxNumOfReturnedTickers) + { + DataTable tickersOfGroup = new Tickers_tickerGroups(groupID); + return GetTickersByOpenCloseCorrelationToBenchmark(orderByASC, tickersOfGroup, benchmark, + firstQuoteDate, lastQuoteDate, + maxNumOfReturnedTickers); + } + + /// <summary> + /// returns tickers of a given set of tickers ordered by open - close + /// correlation to a given benchmark + /// </summary> + public static DataTable GetTickersByOpenCloseCorrelationToBenchmark( bool orderByASC, + DataTable setOfTickers, string benchmark, + DateTime firstQuoteDate, + DateTime lastQuoteDate, + long maxNumOfReturnedTickers) + { + if(!setOfTickers.Columns.Contains("OpenCloseCorrelationToBenchmark")) + setOfTickers.Columns.Add("OpenCloseCorrelationToBenchmark", System.Type.GetType("System.Double")); + float[] benchmarkRatios = getArrayOfCloseToOpenRatios(benchmark, firstQuoteDate, lastQuoteDate); + foreach(DataRow row in setOfTickers.Rows) + { + float[] tickerRatios = getArrayOfCloseToOpenRatios((string)row[0], + firstQuoteDate, lastQuoteDate); + if(tickerRatios.Length == benchmarkRatios.Length) + row["OpenCloseCorrelationToBenchmark"] = + BasicFunctions.PearsonCorrelationCoefficient(benchmarkRatios, tickerRatios); + } + DataTable tableToReturn = ExtendedDataTable.CopyAndSort(setOfTickers,"OpenCloseCorrelationToBenchmark", orderByASC); + ExtendedDataTable.DeleteRows(tableToReturn, maxNumOfReturnedTickers); + return tableToReturn; + } private History history; |