[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Re: VERY slow code



PureBytes Links

Trading Reference Links


Keith,

See my post at FT-Talk where someone asked how to do stuff like UI 
calcs on a wathlist so it could be sorted ... I modded the 
PortfolioEquity indicator to an AA that could be run to do this 
and/or what you are wanting.

--- In amibroker@xxxxxxxxxxxxxxx, "keithmccombs" <kmccombs@xxxx> 
wrote:
> 
> Fred --
> Took me a little while to get back to you and say THANKS!
> I tried ED's suggested code, a few messages before yours, and it 
> solved my SLOW problem and helped me get a better understanding of 
> loops.
> 
> PSO/IO, not no, yes!
> Now, I just started looking at your Portfolio.afl, without any 
> looping, and that really got me thinking.  Lots of other great 
stuff 
> in that code.  Looks so clean and straight forward (not Kludgy like 
> my stuff).
> -- Keith
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "Fred" <ftonetti@xxxx> wrote:
> > 
> > Keith,
> > 
> > ALL calcs for statistics like UI & MDD should be able to be done 
> > with NO looping.
> > 
> > I think you are a PSO/IO user, no ?
> > 
> > See the equity curve indicator contained therein for these calcs.
> > 
> > Fred
> > 
> > --- In amibroker@xxxxxxxxxxxxxxx, "keithmccombs" <kmccombs@xxxx> 
> > wrote:
> > > 
> > > The following code displays the %UI and %MaxDD over a period of 
> > time 
> > > defined by the 'marker' poles.  The default (no marker poles 
> > > present), displays %UI and %MaxDD over all bars in the data 
base.
> > > 
> > > This code works, but is terribly slow.  It is fine for monthly 
> > bars, 
> > > but with 15 years of daily bars you will think it died (in fact 
> > Task 
> > > Manager will think so too).
> > > 
> > > I'm pretty sure the problem is with the arrays in the 'for' 
loop, 
> > but 
> > > don't know what to do about it.  
> > > 
> > > Any and all help and suggestions are appreciated.
> > > TIA.
> > > -- Keith
> > > =============================
> > > // just between the poles
> > > Count = 0;
> > > SumR2 = 0;
> > > ddmax = 0;
> > > ddmaxdate = 0;
> > > _highest = 0;
> > > ratio = 0;
> > > adate = DateTime();
> > > 
> > > for(i = BeginValue(BarIndex())+1; i <= EndValue(BarIndex()); 
i++){
> > >   _highest = HHV(H, BarIndex() - BeginValue(BarIndex()));
> > >   ratio[i] = (_highest[i] - L[i])/_highest[i];
> > >   if(ratio[i] > ddmax[i-1]){
> > >     ddmax[i] = ratio[i];
> > >     ddmaxdate[i] = adate[i];
> > > 
> > >   }else{
> > >     ddmax[i] = ddmax[i-1];
> > >     ddmaxdate[i] = ddmaxdate[i-1];
> > >   }
> > >   SumR2 = ratio[i]^2 + Ref(SumR2[i], -1);
> > >   Count++;
> > > }
> > > 
> > > ui = 100 * (SumR2[i-1]/Count)^0.5;
> > > Maxdd = 100 * ddmax[i-1];
> > > Maxdddate = ddmaxdate[i-1];
> > > 
> > > PlotOHLC(O,H,L,C,"",colorBlack,styleCandle);
> > > Value = SelectedValue(C);
> > > Title = Name() + " = " + Value
> > >     + "      %UI = " + ui + "        Max%DD = " + Maxdd
> > >     + "  on  " + NumToStr(Maxdddate, formatDateTime);





------------------------ Yahoo! Groups Sponsor --------------------~--> 
In low income neighborhoods, 84% do not own computers.
At Network for Good, help bridge the Digital Divide!
http://us.click.yahoo.com/EpW3eD/3MnJAA/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/