I have written the following function to calculate the
drawdown between two dates. Does anybody know how eliminate the loop or make it
run faster? TIA
function MaxDDFromTo(Array, From, To)
{
Last = LastValue(BarIndex());
Start = LastValue(ValueWhen(DateTime() == StrToDateTime(From), BarIndex()));
End = LastValue(ValueWhen(DateTime() == StrToDateTime(To), BarIndex()));
Price = Array;
MaxPrice = DD = MaxD = Bars = 0;
for( i = Start; i < End; i++ )
{
Bars = Bars + 1;
MaxPrice = Max(MaxPrice, HHV( Price, Bars ));
DD = 100 * ( Price[i] - MaxPrice ) / MaxPrice;
MaxD = Min(MaxD, LLV( DD, Bars ));
}
return MaxD;
}
_TRACE("from: " + "12/29/2000" + " To: " + "12/31/2009" + " MaxDD: " + MaxDDFromTo(C, "12/29/2000", "12/31/2009") );