MathGroup Archive 2008

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

Search the Archive

RE: Basic programming

  • To: mathgroup at smc.vnet.net
  • Subject: [mg93583] RE: [mg93576] Basic programming
  • From: "David Park" <djmpark at comcast.net>
  • Date: Sun, 16 Nov 2008 07:03:30 -0500 (EST)
  • References: <18026241.1226748141587.JavaMail.root@m02>

First we extract some financial data and get the minimum and maximum values:

djidata = 
  Part[#, 2] & /@ 
   FinancialData["^DJI", {"Jun. 26, 2008", "Nov. 14, 2008"}];
{Min[djidata], Max[djidata]}
{8175.77,11782.4}

Next we calculate the 10 day trailing standard deviation:

dji10daystd = StandardDeviation /@ Partition[djidata, 10, 1];
{Min[dji10daystd], Max[dji10daystd]}
{95.562,878.838}

Finally we calculate the cumulative standard deviation:

djicumstd = 
  Table[StandardDeviation[Take[djidata, {1, i}]], {i, 2, 100}];
{Min[djicumstd], Max[djicumstd]}
{49.5963,1134.97}

Then I use the Presentations package to plot these all in one plot with a
special scale for the standard deviation curves on the right.

Needs["Presentations`Master`"]

Draw2D[
 {ListDraw[djidata],
  Red,
  ListDraw[Rescale[#, {0, 1200}, {8000, 12000}] & /@ dji10daystd, 
   DataRange -> {9, 100},
   Joined -> True],
  ListDraw[Rescale[#, {0, 1200}, {8000, 12000}] & /@ djicumstd, 
   DataRange -> {2, 100},
   Joined -> True],
  Black,
  Text["10 Day", {82, 9500}, {-1, 0}],
  Text["Cumulative", {86, 11000}, {-1, 0}]},
 AspectRatio -> .4,
 Frame -> True,
 FrameTicks -> {{Automatic, 
    CustomTicks[
     Rescale[#, {0, 1200}, {8000, 12000}] &, {0, 1200, 200, 5}, 
     CTNumberFunction -> (Style[#, Red] &)]}, {Automatic, 
    Automatic}},
 FrameLabel -> {{"DJI", "STD"}, {"Days following Jun 26, 2008", 
    None}},
 PlotLabel -> Style["DJI and Trailing Standard Deivation", 20],
 BaseStyle -> {FontSize -> 12},
 ImageSize -> 600]

Peter Lindsay at the Mathematical Institute in the University of St Andrews
[ www.mcs.st-and.ac.uk ] has kindly undertaken to maintain an archive that
provides downloadable notebooks and PDF files for various Presentations
solutions that have appeared on MathGroup.

http://blackbook.mcs.st-and.ac.uk/~Peter/djmpark/html/ 


David Park
djmpark at comcast.net
http://home.comcast.net/~djmpark 



From: BionikBlue [mailto:frankflip at hotmail.com] 


Hey I'm a beginner in mathematica and I'm trying to code a little something
but can't seem to be able to make it work... I know its pretty basic and
that's exactly my problem since the mathematica help is a bit overkill for
what I need.

I have daily stock prices for a stock on a 100 day period, I want to compute
the standard deviation for a rolling 10 days period for the whole list of
data.

So basically, I would like to do something like this :
stdev(1;;10)
then stdev(2;;11)
until stdev(91;;100)
and get the results in a list

Id also like to get it another way, by starting with only one observation
and building my standard deviation calculation until I have my whole rolling
period built up, for example :
stdev(1)
stdev(1,2)
stdev(1,2,3)
until stdev(1;;10)
then same as before, roll the period until the end of dataset and produce a
list of the results.

Thanks for the help, if what I wrote is not clear enough let me know, Ill
try to explain it in more details!




  • Prev by Date: Re: Basic programming
  • Next by Date: Re: DSolve and assuming: wrong solution found by Mathematica 6. A bug
  • Previous by thread: Re: Basic programming
  • Next by thread: Machine-precision Exp[] function