MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Date based calculations

  • To: mathgroup at smc.vnet.net
  • Subject: [mg119802] Re: Date based calculations
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Thu, 23 Jun 2011 07:24:49 -0400 (EDT)
  • Reply-to: hanlonr at cox.net

selectByDate[data_List, startDate_String, endDate_String] :=
  Module[{
    sDate = DateList[startDate],
    eDate = DateList[endDate]},
   Select[data, OrderedQ[{sDate, DateList[#[[1]]], eDate}] &]];

data = {
   {"03-May-11", -0.0400698, -0.00671613, -0.0333613},
   {"04-May-11", 0, -0.00355872, -0.0169521},
   {"05-May-11", 0.0453721, 0.0128572, -0.0248498},
   {"06-May-11", 0.0052084, -0.00317346, 0.00290203},
   {"09-May-11", -0.0155441, 0.0254686, 0.0597703},
   {"10-May-11", 0.0315789, -0.0051742, -0.0179181},
   {"11-May-11", -0.0323129, 0.00450769, -0.0346655},
   {"12-May-11", 0, 0.0200207, -0.0200701},
   {"13-May-11", -0.00702991, 0, 0.0400441},
   {"16-May-11", 0, 0.00203048, -0.0121865},
   {"19-May-11", 0.0318584, 0.00979397, 0.0229752},
   {"20-May-11", 0.00343055, -0.00401342, 0.000611685},
   {"23-May-11", -0.025641, 0.0020148, -0.0259388},
   {"24-May-11", -0.00526314, 0.00435663, 0.00376576},
   {"25-May-11", 0.0194003, 0.00133465, -0.0125949},
   {"26-May-11", -0.0190311, 0.00533158, -0.00958927},
   {"27-May-11", 0.0282187, -0.007955, 0.0026488},
   {"30-May-11", -0.0291595, 0.00233883, -0.00291514},
   {"31-May-11", 0.0212014, 0, -0.0383737}};

Mean[selectByDate[data, "09-May-11", "19-May-11"][[All, 2 ;; 4]]]

{0.00122148, 0.00809246, 0.00542134}

Covariance[selectByDate[data, "09-May-11", "19-May-11"][[All, 2 ;; 4]]]

{{0.00055615, -0.0000770187, 4.88759*10^-6}, {-0.0000770187, 
  0.000123033, 0.000158345}, {4.88759*10^-6, 0.000158345, 0.00126204}}


Bob Hanlon

---- Priyan Fernando <priyan.fernando at gmail.com> wrote: 

=============

I have the following time series data (19 rows by 4 columns):

{{"03-May-11", -0.0400698, -0.00671613, -0.0333613}, {"04-May-11",
  0, -0.00355872, -0.0169521}, {"05-May-11", 0.0453721,
  0.0128572, -0.0248498}, {"06-May-11", 0.0052084, -0.00317346,
  0.00290203}, {"09-May-11", -0.0155441, 0.0254686,
  0.0597703}, {"10-May-11",
  0.0315789, -0.0051742, -0.0179181}, {"11-May-11", -0.0323129,
  0.00450769, -0.0346655}, {"12-May-11", 0,
  0.0200207, -0.0200701}, {"13-May-11", -0.00702991, 0,
  0.0400441}, {"16-May-11", 0, 0.00203048, -0.0121865}, {"19-May-11",
  0.0318584, 0.00979397, 0.0229752}, {"20-May-11",
  0.00343055, -0.00401342, 0.000611685}, {"23-May-11", -0.025641,
  0.0020148, -0.0259388}, {"24-May-11", -0.00526314, 0.00435663,
  0.00376576}, {"25-May-11", 0.0194003,
  0.00133465, -0.0125949}, {"26-May-11", -0.0190311,
  0.00533158, -0.00958927}, {"27-May-11", 0.0282187, -0.007955,
  0.0026488}, {"30-May-11", -0.0291595,
  0.00233883, -0.00291514}, {"31-May-11", 0.0212014, 0, -0.0383737}}


The 1st Column is a date while Columns 2,3,4 represent the returns of stocks
A,B and C respectively. Could you please help me extract information based
on the date. E.g. date1 and date2 are variables inputted by the user.

Example 1: Average returns of stocks A,B,C between 9-May-11 and 19-May-11
(dates inclusive) are:
0.001221494    0.008092462    0.005421325

Example 2: Variance/Covariance Matrix between of stocks A,B,C between
9-May-11 and 19-May-11 (dates inclusive) is
0.0004767002    -0.0000660161    0.0000041896
-0.0000660161    0.0001054570    0.0001357245
0.0000041896    0.0001357245    0.0010817457

This is easy to do in Excel, but I'm finding it hard to locate the correct
functions in Mathematica. Any suggestions are much appreciated.

Thank you.



  • Prev by Date: Re: Convenient way to add inline formatting to usage Messages
  • Next by Date: Re: Date based calculations
  • Previous by thread: Re: Date based calculations
  • Next by thread: Re: Date based calculations