PureBytes Links
Trading Reference Links
|
Fred, just one comment. Unless you assume that you capture the whole
population (which I would argue you're not; you're dealing with
samples), the formula below is biased and needs a slight adjustment:
CDiff2n[i] = CDiff2[i] / (n[i]-1);
This way you adjust for using the mean in your estimates.
Sorry for being a purist.
PRS
--- In amibroker@xxxxxxxxxxxxxxx, "Fred" <ftonetti@xxxx> wrote:
> That's probably correct given what you are after ... Just be
careful
> what you put inside the loop .vs. outside and that you only do full
> array calc's where necessary ...
>
> I changed your oscillator function ( 10 - 50 ) and I haven't
checked
> the rest thoroughly, but this should get you close to where you
want
> to go. Notice I calced n outside the loop as there's no reason for
> it to be inside and that some of the calcs inside the loop are not
> full array calcs. I did try playing with some things like Sum(X, n
> [i]) in place of Cum(X) but there don't appear to be any real time
> savings. Exacerbating the problem is that indicator code is
> typically run several times. Try running what's below as a plot
and
> then as an explore and you'll see a noticable difference in how
much
> clock time is used. There are ways to keep this from happening
with
> indicators but I forget what they are off the top of my head.
>
> X = (sin(Cum(0.01)) + 2) * 20 - 10;;
>
> n = BarIndex() + 1;
>
> for (i = 0; i < BarCount; i++)
> {
> CumX = Cum(X);
> Mean[i] = CumX[i] / n[i];
> Diff = X - Mean[i];
> Diff2 = Diff ^ 2;
> CDiff2 = Cum(Diff2);
> CDiff2n[i] = CDiff2[i] / n[i];
> StDevX[i] = sqrt(CDiff2n[i]);
> }
>
> Plot(StDevX, "StDevX", colorWhite);
>
> Filter = 1;
> AddColumn(StDevX, "StDevX", 1.4);
>
>
> --- In amibroker@xxxxxxxxxxxxxxx, "treliff" <treliff@xxxx> wrote:
> > > That doesn't seem to be relevant as at any given bar a
particular
> > > Length would be in play for the MA calculated at that bar.
There
> > > wouldn't appear to be a need to fill an array with the same
> > > number ...
> >
> > Perhaps not in the MA example, but in my particular code there is
> > substantial difference between dispersion and min/max values (and
> > consequently stdev's) related to Cycle 10 and Cycle 50, so yes, if
> > I'm
> > currently in Cycle 10-mode, I want stdev calculated strictly over
> > Cycle 10's.
> >
> > > If you'd like to continue this please email me offline ...
> >
> > You helped me remove the 1st loop, I'm pretty certain I'll
> > have to
> > live with the 2nd one... Thanks for all your help.
> >
> > -treliff
------------------------ Yahoo! Groups Sponsor --------------------~-->
Put more honey in your pocket. (money matters made easy).
http://us.click.yahoo.com/r7D80C/dlQLAA/cosFAA/GHeqlB/TM
--------------------------------------------------------------------~->
Please note that this group is for discussion between users only.
To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
For other support material please check also:
http://www.amibroker.com/support.html
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|