PureBytes Links
Trading Reference Links
|
I am working on a submission to the UKB involving Custom Metrics with
the CBT. I have successfully implemented the AFL for a wide range of
system evaluation metrics such as Loss Deviation, Downside Deviation,
Sortino Ratio, Treynor Ratio, Information Ratio, and more.
I have also developed a modified version of the K-Ratio that I call
the Klog-Ratio, which is a more useful version of the K-Ratio for
systems that compound their returns.
However, I am having one problem. I cannot reproduce the AmiBroker K-
Ratio test results. I come close, but not close enough. Here is my
example. Hopefully, someone can point out my error.
Backtest run on Current Symbol = SP-CP (S&P Price Index)
>From 12/31/1990 to 12/31/2006 (16 calendar years)
Starting capital = 1000.
System = Buy & Hold.
----
Amibroker BackTest Results
Annual Return = 9.53%
Standard Error = 595.52
K-Ratio = 0.0239
My Custom Metrics code and results
SetCustomBacktestProc("");
if(Status("action") == actionPortfolio)
{
bo = GetBacktesterObject();
bo.Backtest();
Eq = Foreign("~~~EQUITY", "C"); // Get Equity Line
n = BarCount-1; // Number of periods
// This produces a Bacrount of 4035 and n = 4034
// I assume 252 market days per year when annualizing daily values
// Standard Error
EqSEd = StdErr(Eq,n); // Std Err (daily)
bo.AddCustomMetric("Std Err (daily)", EqSEd[n]); // Output
// This produces a result of 595.52 (matches AmiBroker output)
// To annualize a StdDev or Std Err take daily * sqrt(252)
EqSE = EqSEd * sqrt(252); // Annualize it
bo.AddCustomMetric("Std Err Ann", EqSE[n]); // Output
// This produces a result of 9454.69
// Linear Regression Slope
EqLRSd = LinRegSlope(Eq,n); // Get Linear Reg Slope
bo.AddCustomMetric("Equity LRS (daily)", EqLRSd[n]);
// This produces a result of 0.78
// To annualize a "linear" slope simply multiply by number of periods
EqLRS = EqLRSd*252; // Annualize it
bo.AddCustomMetric("LRSd*252", EqLRS[n]);
// This produces a result of 195.90
// K-Ratio
EqKR = EqLRS2 / EqSE; // LRS (Ann) / StdErr (Ann)
bo.AddCustomMetric("K-Ratio2", EqKR2[n],"","",6);
// This produces a result of 0.020720
// AmiBroker test results = 0.0239
// Close, but no cigar!
}
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 NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
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/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/amibroker/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:amibroker-digest@xxxxxxxxxxxxxxx
mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx
<*> 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/
|