PureBytes Links
Trading Reference Links
|
Try somethign like the following. The charting stuff is just for validation. The part you need is in the custom backtester code.
Buy = DayOfWeek() == 1; Sell = DayOfWeek() == 5;
eq = Foreign("~~~Equity", "C"); highEq = Highest(eq); newHigh = highEq > Ref(highEq, -1); duration = BarsSince(newHigh);
Plot(eq, "Equity", colorDarkGrey, styleLine); Plot(highEq, "Highest", colorRed); Plot(duration, "DD Duration", colorBlue, styleOwnScale); PlotShapes(shapeSmallCircle * newHigh, colorRed, 0, graph0, 0);
SetCustomBacktestProc("");
if (Status("action") == actionPortfolio) { bo = GetBacktesterObject(); bo.Backtest();
eq = Foreign("~~~Equity", "C"); highEq = Highest(eq); newHigh = highEq > Ref(highEq, -1); duration = BarsSince(newHigh); longest = LastValue(Highest(duration));
bo.addCustomMetric("Longest DD", longest); }
Mike
--- In amibroker@xxxxxxxxxxxxxxx, "wml67" <ywml@xxx> wrote: > > I'm trying to determine the longest drawdown period in the backtest, here's the code snippet: > > bslh = HighestBars(Foreign("~~~EQUITY", "C")); // # bars since last high > ldd = Highest(bslh); // longest drawdown to date, array > lbn = LastValue(BarIndex()); // last bar number > longestDD = ldd[lbn]; // longest drawdown in the test period, value > > This sorta works, except when there's a long flat period preceding the first trade, because HighestBars() treats such periods as drawdowns and increases the counter, even though there were NO higher value in the past! Say, my initial equity is 100,000 and the first trade occurs 2 months after the start of the backtest period. HighestBars on the date preceding the first trade will be 60, which will exceed my actual longest drawdown (if I have any luck), and screw up my stats. > > What am I overlooking this time? Many thanks! >
__._,_.___
**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.
TO GET TECHNICAL SUPPORT send an e-mail directly to
SUPPORT {at} amibroker.com
TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
__,_._,___
|