Simulation and relative performance

March 24, 2015
By

(This article was first published on Shifting sands, and kindly contributed to R-bloggers)

There’s been some nice posts on randomness the last week or so, in particular here and here
I would like to look at how we can use simulations to get a better understanding of how some aspect of a trading system holds up relative to a bunch of random trades.

In this example, I look at entries on weekly data for SPY. The entry signal is to buy if the previous week closed down.
Over the time frame (2005-2014, about 10 years), it was long about 44% of the time, and out the rest.
In the simulation function, we generate random entry signals that will see us long about the same amount of time.
We track some metrics of system performance, in this case total return, average trade return and accuracy (i.e. how often a buy signal was correct).
I then use ggplot to make some density plots of the simulation metrics, marking the mean of the simulation results in red and the corresponding system metric in blue.
It looks like this


I basically want to see the blue line far away from the red line. In this case it seems fairly decent. You can also generate some p-values based off the simulation data as well.
For comparison, here is a daily system that is long if the previous close was above the 200 day simple moving average.


We can see there’s not a lot of difference between the moving average results and just entering randomly. (Note the accuracy metric has a different x-axis scale than the previous plot).
I use a similar idea for putting risk or open trade management ideas through their paces, seeing how well they hold up when managing random entries.
Code is up here. Thanks for reading

To leave a comment for the author, please follow the link and comment on their blog: Shifting sands.

R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...



If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...

Comments are closed.

Sponsors

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)