Please Change CurEq=Foreign(~~~~"Foreign",c,1) to cureq=C; thanks
--- On Fri, 15/8/08, Ken Close <[EMAIL PROTECTED]> wrote: From: Ken Close <[EMAIL PROTECTED]> Subject: RE: RE: RE: [amibroker] Another Code Puzzle To: [email protected] Date: Friday, 15 August, 2008, 12:50 AM So nice. So elegant. So frustrating I can't see constructions like that. Many thanks (again). From: [EMAIL PROTECTED] ps.com [mailto:amibroker@ yahoogroups. com] On Behalf Of [EMAIL PROTECTED] net Sent: Thursday, August 14, 2008 2:39 PM To: [EMAIL PROTECTED] ps.com Subject: Re: RE: RE: [amibroker] Another Code Puzzle CurEq = Foreign("~~~Equity", "C", 1); MaxEq = Highest(CurEq); CurDD = IIf(CurEq < MaxEq, 100 * (MaxEq - CurEq) / MaxEq, 0); MaxDD = Highest(CurDD); MDDBar = MaxDD == LastValue(MaxDD) AND CurDD == MaxDD; CDDBar = Cum(0); CDD0 = LastValue(Highest(IIf(MDDBar == 1, BarIndex() - BarsSince(CurDD == 0), 0))); CDDBar[CDD0] = 1; Plot(MaxDD, "MaxDD", colorRed); Plot(CurDD, "CurDD", colorOrange); Plot(MDDBar, "MDDBar", colorWhite, styleHistogram | styleOwnScale | styleThick); Plot(CDDBar, "CDDBar", colorBlue, styleHistogram | styleOwnScale | styleThick);----- Original Message ----- From: Ken Close Date: Thursday, August 14, 2008 2:19 pm Subject: RE: RE: [amibroker] Another Code Puzzle To: [EMAIL PROTECTED] ps.com > Yep. That's what I thought and tried. . . > > > Top = BarsSince(CurDD= =0)==0 AND MaxDD == Ref(MaxDD,-1) AND BIR; > > Finding it "prior to" where the MaxDD occurred is the trick. It > finds every > occurrence of the places where CurDD == 0. ValueWhen to try and > get the > most recent occurrence of CurDD==0 seemed not to work. > > Another hint? > > _____ > > From: [EMAIL PROTECTED] ps.com > [mailto:amibroker@ yahoogroups. com] On Behalf > Of [EMAIL PROTECTED] net > Sent: Thursday, August 14, 2008 1:20 PM > To: [EMAIL PROTECTED] ps.com > Subject: Re: RE: [amibroker] Another Code Puzzle > > > The bar you are looking for will be > > BarsSince(CurDD == 0) bars prior to where the MaxDD ocurred ... > > ----- Original Message ----- > From: Ken Close > Date: Thursday, August 14, 2008 12:37 pm > Subject: RE: [amibroker] Another Code Puzzle > To: [EMAIL PROTECTED] ps.com > > > Absolutely. Thanks. > > > > . . .now the bar associated with the CurDD==0 just preceding > > the bar on > > which MaxDD==LastValue( MaxDD) is . . . ? > > > > Seriously, I tried to find the bar (date) associated with the > > beginning of > > the MaxDD but it still alludes me. > > > > > > MDD = MaxDD==LastValue( MaxDD) AND CurDD==MaxDD; > > MDDBar = ValueWhen(MDD, BarIndex( ),1); > > //Top = BarsSince(CurDD= =0)==0 AND AND BIR; > > Top2 = ValueWhen(CurDD= =0,BarIndex( ),1); > > Top3 = ValueWhen(MDD= =1,BarIndex( )); > > Top = BarsSince(CurDD= =0)==0 AND MaxDD == Ref(MaxDD,-1) AND BIR; > > Top2X = BarIndex()== Top2 AND BIR AND MaxDD != LastValue(MaxDD) ; > > > > Nothing works. > > > > _____ > > > > From: [EMAIL PROTECTED] ps.com > > [mailto:amibroker@ yahoogroups. com] On Behalf > > Of [EMAIL PROTECTED] net > > Sent: Wednesday, August 13, 2008 4:07 PM > > To: [EMAIL PROTECTED] ps.com > > Subject: Re: [amibroker] Another Code Puzzle > > > > > > I assume what you'd be looking for is the bar on which MaxDD = > > LastValue(MaxDD) and CurDD = MaxDD ... > > > > ----- Original Message ----- > > From: Ken Close > > Date: Wednesday, August 13, 2008 1:59 pm > > Subject: [amibroker] Another Code Puzzle > > To: [EMAIL PROTECTED] ps.com > > > > > Once again, I stumble across seemingly simple things that > are > > > hard (for me) > > > to do. > > > > > > Task: Find the Date of the MaxDD which occurs in a price > > series > > > (Equity or > > > price). > > > More complex task: Find the Date when the current MaxDD > > started, > > > ie, the > > > highest price associated with the MaxDD. > > > > > > FredT has had code for finding the MaxDD since almost from > > when > > > AB started. > > > We all have used it countless times. > > > Yet I can not adapt or adopt it to finding the date when the > > > MaxDD occurs > > > much less find the Date of the highest price associated with > > the > > > Maxdd. > > > Can anyone suggest an approach? > > > > > > Ken > > > > > > Code snippits: > > > > > > > > > > > > > > > BIR = IIf(Status(" BarInRange" ) > 0, 1, 0); > > > Price = C; > > > MaxPrice = Highest(Price) ; > > > CurDD = IIf(BIR, 100 * (MaxPrice - Price) / MaxPrice, 0); > > > MaxPriceDate = IIf(BIR,ValueWhen( MaxPrice != > > > Ref(MaxPrice, 1),DateTime( ),0),0); > > > MaxDD = Highest(CurDD) ; > > > RCurDD = round(CurDD * 100) / 100; > > > MaxDD = Highest(CurDD) ; > > > MaxDDDate = ValueWhen(MaxDD != Ref(MaxDD,-1) ,DateTime( ),0); > > > > > > This last line, my attempt, is not correct; it works some of > > the > > > time but > > > not with all cases. > > > > > > > > > > > > > > > > > > Unlimited freedom, unlimited storage. Get it now, on http://help.yahoo.com/l/in/yahoo/mail/yahoomail/tools/tools-08.html/
