[Quantproject-developers] QuantProject/b3_Data/Selectors SelectorByCloseToCloseCorrelationToBenchma
Brought to you by:
glauco_1
|
From: Marco M. <mi...@us...> - 2011-08-21 11:26:06
|
Update of /cvsroot/quantproject/QuantProject/b3_Data/Selectors
In directory vz-cvs-3.sog:/tmp/cvs-serv5390/Selectors
Modified Files:
SelectorByCloseToCloseCorrelationToBenchmark.cs
Log Message:
SelectorByCloseToCloseCorrelationToBenchmark (selecting tickers with adj close quotes correlated to the adj close of a given benchmark) now implements only ITickerSelectorByDate
Index: SelectorByCloseToCloseCorrelationToBenchmark.cs
===================================================================
RCS file: /cvsroot/quantproject/QuantProject/b3_Data/Selectors/SelectorByCloseToCloseCorrelationToBenchmark.cs,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** SelectorByCloseToCloseCorrelationToBenchmark.cs 14 Jan 2008 23:14:41 -0000 1.5
--- SelectorByCloseToCloseCorrelationToBenchmark.cs 21 Aug 2011 11:26:03 -0000 1.6
***************
*** 32,41 ****
/// a given benchmark
/// </summary>
! public class SelectorByCloseToCloseCorrelationToBenchmark : TickerSelector, ITickerSelector
{
private string benchmark;
private bool addBenchmarkToTheGivenSetOfTickers;
/// <summary>
! /// Creates a new instance of the selector
/// </summary>
/// <param name="setOfTickersToBeSelected">The data table containing
--- 32,51 ----
/// a given benchmark
/// </summary>
! [Serializable]
! public class SelectorByCloseToCloseCorrelationToBenchmark : ITickerSelectorByDate
!
{
private string benchmark;
+ private bool orderInASCMode;
+ private int maxNumOfReturnedTickers;
+ private ITickerSelectorByDate tickerSelectorByDateForInitialTable;
+ private int lengthInDaysOfCorrelationPeriod;
private bool addBenchmarkToTheGivenSetOfTickers;
+ private DateTime dateTimeOfCurrentSelection;
+ private DataTable currentSelection;
+
+
/// <summary>
! /// Creates a new instance of the class
/// </summary>
/// <param name="setOfTickersToBeSelected">The data table containing
***************
*** 44,118 ****
/// <param name="benchmark">Benchmark code</param>
/// <param name="orderInASCmode">Ordering mode</param>
- /// <param name="firstQuoteDate">The first date for the interval</param>
- /// <param name="lastQuoteDate">The last date for the interval</param>
/// <param name="maxNumOfReturnedTickers">Max number of tickers to be returned</param>
! public SelectorByCloseToCloseCorrelationToBenchmark(DataTable setOfTickersToBeSelected,
string benchmark,
! bool orderInASCmode,
! DateTime firstQuoteDate,
! DateTime lastQuoteDate,
! long maxNumOfReturnedTickers,
! bool addBenchmarkToTheGivenSetOfTickers):
! base(setOfTickersToBeSelected,
! orderInASCmode,
! firstQuoteDate,
! lastQuoteDate,
! maxNumOfReturnedTickers)
{
! this.benchmark = benchmark;
this.addBenchmarkToTheGivenSetOfTickers = addBenchmarkToTheGivenSetOfTickers;
}
!
! /// <summary>
! /// Creates a new instance of the selector
! /// </summary>
! /// <param name="groupID">The group ID containing the tickers that have to be ordered by Pearson
! /// correlation coefficient to a given benchmark</param>
! /// <param name="benchmark">Benchmark to be used for computation of correlation coefficient</param>
! /// <param name="orderInASCmode">Ordering mode</param>
! /// <param name="firstQuoteDate">The first date for the interval</param>
! /// <param name="lastQuoteDate">The last date for the interval</param>
! /// <param name="maxNumOfReturnedTickers">Max number of tickers to be returned</param>
! /// <param name="addBenchmarkToTheGivenSetOfTickers">If TRUE, the benchmark is added to
! /// output table (with correlation
! /// equal to 1) </param>
! public SelectorByCloseToCloseCorrelationToBenchmark(string groupID,
! string benchmark,
! bool orderInASCmode,
! DateTime firstQuoteDate,
! DateTime lastQuoteDate,
! long maxNumOfReturnedTickers,
! bool addBenchmarkToTheGivenSetOfTickers):
! base(groupID,
! orderInASCmode,
! firstQuoteDate,
! lastQuoteDate,
! maxNumOfReturnedTickers)
! {
! this.benchmark = benchmark;
! this.addBenchmarkToTheGivenSetOfTickers = addBenchmarkToTheGivenSetOfTickers;
! }
!
!
! public DataTable GetTableOfSelectedTickers()
! {
! if(this.setOfTickersToBeSelected == null)
! return this.getTickersByCloseToCloseCorrelationToBenchmark(this.isOrderedInASCMode,
! this.groupID,this.benchmark,
! this.firstQuoteDate, this.lastQuoteDate,
! this.maxNumOfReturnedTickers);
!
! else
! return this.getTickersByCloseToCloseCorrelationToBenchmark(this.isOrderedInASCMode,
! this.setOfTickersToBeSelected,this.benchmark,
! this.firstQuoteDate, this.lastQuoteDate,
! this.maxNumOfReturnedTickers);
! }
! public void SelectAllTickers()
{
! ;
}
! private DataTable getTickersByCloseToCloseCorrelationToBenchmark( bool orderByASC,
DataTable setOfTickers, string benchmark,
DateTime firstQuoteDate,
--- 54,88 ----
/// <param name="benchmark">Benchmark code</param>
/// <param name="orderInASCmode">Ordering mode</param>
/// <param name="maxNumOfReturnedTickers">Max number of tickers to be returned</param>
! public SelectorByCloseToCloseCorrelationToBenchmark(ITickerSelectorByDate tickerSelectorByDateForInitialTable,
! int lengthInDaysOfCorrelationPeriod,
string benchmark,
! bool orderInASCMode,
! int maxNumOfReturnedTickers,
! bool addBenchmarkToTheGivenSetOfTickers)
{
! this.tickerSelectorByDateForInitialTable = tickerSelectorByDateForInitialTable;
! this.lengthInDaysOfCorrelationPeriod = lengthInDaysOfCorrelationPeriod;
! this.benchmark = benchmark;
! this.orderInASCMode = orderInASCMode;
! this.maxNumOfReturnedTickers = maxNumOfReturnedTickers;
this.addBenchmarkToTheGivenSetOfTickers = addBenchmarkToTheGivenSetOfTickers;
+ this.dateTimeOfCurrentSelection = new DateTime(1900,1,1,16,0,0);
}
!
! public DataTable GetTableOfSelectedTickers(DateTime dateTime)
{
! if(dateTime != this.dateTimeOfCurrentSelection ||
! this.currentSelection == null)
! this.getTableOfSelectedTickers_updateCurrentSelection(this.orderInASCMode,
! this.tickerSelectorByDateForInitialTable.GetTableOfSelectedTickers(dateTime),
! this.benchmark,
! dateTime.AddDays(-this.lengthInDaysOfCorrelationPeriod), dateTime,
! this.maxNumOfReturnedTickers);
!
! return this.currentSelection;
}
! private void getTableOfSelectedTickers_updateCurrentSelection( bool orderByASC,
DataTable setOfTickers, string benchmark,
DateTime firstQuoteDate,
***************
*** 122,135 ****
if(!setOfTickers.Columns.Contains("CloseToCloseCorrelationToBenchmark"))
setOfTickers.Columns.Add("CloseToCloseCorrelationToBenchmark", System.Type.GetType("System.Double"));
! float[] benchmarkQuotes = QuantProject.Data.DataTables.Quotes.GetArrayOfAdjustedCloseQuotes(benchmark, firstQuoteDate, lastQuoteDate);
foreach(DataRow row in setOfTickers.Rows)
{
! float[] tickerQuotes = QuantProject.Data.DataTables.Quotes.GetArrayOfAdjustedCloseQuotes((string)row[0],
firstQuoteDate, lastQuoteDate);
! row["CloseToCloseCorrelationToBenchmark"] =
! BasicFunctions.PearsonCorrelationCoefficient(benchmarkQuotes, tickerQuotes);
}
DataTable tableToReturn = ExtendedDataTable.CopyAndSort(setOfTickers,
! "CloseToCloseCorrelationToBenchmark>=0.0 OR " +
"CloseToCloseCorrelationToBenchmark<0.0",
"CloseToCloseCorrelationToBenchmark",
--- 92,110 ----
if(!setOfTickers.Columns.Contains("CloseToCloseCorrelationToBenchmark"))
setOfTickers.Columns.Add("CloseToCloseCorrelationToBenchmark", System.Type.GetType("System.Double"));
! double[] benchmarkQuotes = QuantProject.Data.DataTables.Quotes.GetDoubleArrayOfAdjustedCloseQuotes(benchmark, firstQuoteDate, lastQuoteDate);
! double correlation;
foreach(DataRow row in setOfTickers.Rows)
{
! double[] tickerQuotes = QuantProject.Data.DataTables.Quotes.GetDoubleArrayOfAdjustedCloseQuotes((string)row[0],
firstQuoteDate, lastQuoteDate);
! correlation = 0.0;
! if(benchmarkQuotes.Length == tickerQuotes.Length)
! correlation =
! BasicFunctions.PearsonCorrelationCoefficient(benchmarkQuotes, tickerQuotes);
!
! row["CloseToCloseCorrelationToBenchmark"] = correlation;
}
DataTable tableToReturn = ExtendedDataTable.CopyAndSort(setOfTickers,
! "CloseToCloseCorrelationToBenchmark>0.0 OR " +
"CloseToCloseCorrelationToBenchmark<0.0",
"CloseToCloseCorrelationToBenchmark",
***************
*** 142,163 ****
tableToReturn.Rows.Add(newRow);
}
! return tableToReturn;
! }
!
! private DataTable getTickersByCloseToCloseCorrelationToBenchmark( bool orderByASC,
! string groupID, string benchmark,
! DateTime firstQuoteDate,
! DateTime lastQuoteDate,
! long maxNumOfReturnedTickers)
! {
! DataTable tickersOfGroup = Tickers_tickerGroups.GetTickers(groupID);
! return this.getTickersByCloseToCloseCorrelationToBenchmark(orderByASC,
! tickersOfGroup, benchmark,
! firstQuoteDate,
! lastQuoteDate,
! maxNumOfReturnedTickers);
}
!
}
}
--- 117,139 ----
tableToReturn.Rows.Add(newRow);
}
! this.currentSelection = tableToReturn;
! this.dateTimeOfCurrentSelection = lastQuoteDate;
! string[] currentSelectionForDebugging =
! ExtendedDataTable.GetArrayOfStringFromRows(this.currentSelection);
}
! // private DataTable getTickersByCloseToCloseCorrelationToBenchmark( bool orderByASC,
! // string groupID, string benchmark,
! // DateTime firstQuoteDate,
! // DateTime lastQuoteDate,
! // long maxNumOfReturnedTickers)
! // {
! // DataTable tickersOfGroup = Tickers_tickerGroups.GetTickers(groupID);
! // return this.getTableOfSelectedTickers_updateCurrentSelection(orderByASC,
! // tickersOfGroup, benchmark,
! // firstQuoteDate,
! // lastQuoteDate,
! // maxNumOfReturnedTickers);
! // }
}
}
|