RE: Basic programming
- To: mathgroup at smc.vnet.net
- Subject: [mg93588] RE: [mg93576] Basic programming
- From: "Richard Hofler" <rhofler at bus.ucf.edu>
- Date: Sun, 16 Nov 2008 07:04:26 -0500 (EST)
- References: <200811151103.GAA16591@smc.vnet.net>
Hi,
I'm betting that you'll get many useful answers. Here's one solution
that I hope will help you.
One starting point to give you the rolling std. deviation is to create a
function that outputs three values:
{the location of the 1st element used to calculate the std. dev., the
location of the last element used to calculate the std. dev., the std.
dev.}
lst = {1,20,3,40,5,60,7,80,9,100,11,120,5,7,90};
(* You might want to look up SetPrecision in the Documentation Center *)
out[i_]:={i,i+9,SetPrecision[StandardDeviation[lst[[i;;i+9]]],4]}
Then, evaluate the function for several ranges of elements in your list.
out[1]
{1,10,35.90}
out[2]
{2,11,35.06}
out[3]
{3,12,43.92}
Now that you see how it works, here's the concise method:
Table[out[i],{i,1,6}]
{{1,10,35.90},{2,11,35.06},{3,12,43.92},{4,13,43.72},{5,14,45.25},{6,15,45.84}}
HTH,
Richard Hofler
________________________________
From: BionikBlue [mailto:frankflip at hotmail.com]
Sent: Sat 11/15/2008 6:03 AM
To: mathgroup at smc.vnet.net
Subject: [mg93588] [mg93576] Basic programming
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!
- References:
- Basic programming
- From: BionikBlue <frankflip@hotmail.com>
- Basic programming