Re: Basic programming
- To: mathgroup at smc.vnet.net
- Subject: [mg93589] Re: [mg93576] Basic programming
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Sun, 16 Nov 2008 07:04:37 -0500 (EST)
- References: <200811151103.GAA16591@smc.vnet.net>
- Reply-to: drmajorbob at longhorns.com
Here's a bit of data:
data = RandomReal[{0, 1}, 100];
Here's the moving standard deviation, 10 elements at a time:
StandardDeviation /@ Partition[data, 10, 1]
(results omitted)
and here's the StandardDeviation applied to 1,2, .... ,100 elements:
Clear[stdev]
stdev[dat_List][n_] /; n < 2 = 0;
stdev[dat_List][n_] /; n <= Length@dat :=
StandardDeviation@Take[dat, n]
Array[stdev[data], 100]
(results omitted)
Bobby
On Sat, 15 Nov 2008 05:03:52 -0600, BionikBlue <frankflip at hotmail.com>
wrote:
> 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!
>
--
DrMajorBob at longhorns.com
- References:
- Basic programming
- From: BionikBlue <frankflip@hotmail.com>
- Basic programming