2013 Summary

[This article was first published on Quintuitive » R, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

2013 was a tough year. Trading was tough, with one of my strategies experiencing a significant drawdown. Research was tough – wasted a lot of time on machine learing techneques, without much to show for it. Also made some expensive mistakes, so all in all – it was a year I’d prefer I had avoided. :)

The strategy I use on the SPY, for which I share my entries and exits, was the biggest disappointment. Not only it ended the year in red (to the tune of -6.5%), but it also dragged me through a significant (close to its historical maximum) drawdown. This unpleasant experience was a practical conformation of the toughness of trading at psychological level.

My ARMA strategy performed well, but not exceptionally so, thus, I ended up with an overall gain of about 5% in my trading account (the SPY strategy and the ARMA strategy).

The Max-Sharpe strategy which I started using in May this year returned 12% for the year. However, that’s exactly where I did my “expensive” mistake, thus, I ended only with a small plus for the months I traded it.

At the end of the year, I like to look at the annual volatility. As the following chart illustrates, 2013 was a year of low volatility on historic basis:

Dow Jones Annual Volatility

Dow Jones Annual Volatility

The following code confirms:

library(quantmod)
 
getSymbols("DJIA", src="FRED", from="1800-01-01")
# Use FRED, Yahoo does not provide Dow Jones historic data anymore
 
dji = na.exclude(DJIA["/2013"])
 
djiVol = aggregate(
               dji,
               as.numeric(format(index(dji), "%Y")),
               function(ss) coredata(tail(TTR:::volatility(
                                                   ss,
                                                   n=NROW(ss),
                                                   calc="close"), 1)))
ecdf(as.vector(djiVol))(as.numeric(tail(djiVol,1)))
# The result is 0.1864407, the 18nd quantile

# Compute the absolute returns
absRets = na.exclude(abs(ROC(dji["/2013"], type="discrete")))
 
# Summarize annually
yy = as.numeric(format(index(absRets), "%Y"))
zz = aggregate(absRets, yy, function(ss) tail(cumprod(1+ss),1))
 
print(as.vector(tail(zz,1)))
# The result is 3.45

The second computation shows how much money an owner of a crystal bowl would have made at best – he would have been able to multiply his money less than three and a half times! As crystal balls go, that’s an inferior performance.

The only significant change I am hoping for in 2014 – is a change in the luck factor. Let’s see whether I was good in 2013 … Happy Trading! :)

To leave a comment for the author, please follow the link and comment on their blog: Quintuitive » R.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)