PureBytes Links
Trading Reference Links
|
and excuse me for my late message....
Daniel
----- Original Message -----
From: "Gary Fritz" <fritz@xxxxxxxx>
To: <omega-list@xxxxxxxxxx>
Sent: Wednesday, April 02, 2003 7:52 AM
Subject: Re: How to calculate STDev?
> > I messed around with this StdDev of individual trade
> > returns stuff about 2 years ago. I was unable to do it
> > without using an array to store the individual trade
> > results, so I was skeptical when you claimed success
> > w/ no arrays.
> >
> > So I plugged your math into an old piece of system
> > stat exporter code I wrote awhile back, and lo &
> > behold, it does indeed match the results calculated in
> > Excel. Now I wish I'd paid better attention in math class.
>
> Heh. I sort of remembered there was a way to do it, so I juggled
> equations and tested in Excel until I figured it out.
>
> I started with the basic root-mean-square definition of SD that
> subtracts the average from each value of X, so it does indeed
> require arrays. (You have to store all the X values, calculate
> the average, and then subtract the average from the X values.)
>
> SD = sqrt( sum((Xn - Avg)^2) / (Length-1) )
>
> (Or you might divide by Length; that's apparently a detail that
> statisticians argue about.)
>
> Then we start the hocus-pocus:
>
> (Xn - Avg)^2 = Xn^2 - 2*Xn*Avg + Avg^2
>
> If you sum up that value for all Xn's, you get
>
> sum(Xn^2) - 2*sum(Xn)*Avg + Length*Avg^2
>
> So you just accumulate SumX and SumX2 as I did in my code. Then,
> since Avg = SumX / Length, the equation turns into
>
> sumX2 - 2*SumX*(SumX/Length)
> + Length*(SumX/Length)*(SumX/Length)
> = sumX2 - 2*SumX^2/Length + SumX^2/Length
> = SumX2 - SumX^2/Length
>
> ...so SD = sqrt( (SumX2 - SumX^2/Length) / (Length-1) )
>
> No arrays required. Now who's gonna buy the prof a beer?? :-)
> Gary
>
|