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] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: Wednesday, August 13, 2008 4:07 PM To: [email protected] 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] > 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. > > > >
