Page 1 of 1
Common sense defied...
Posted: Tue May 13, 2008 9:09 am
by LeviF
My system employs a correlation risk manager and controls positions in correlated instruments. Initially, the correlations were calculated once per month and used for the entire month. Then, I wanted to see what would happen if I updated the correlations every week. The weekly updating system performed a bit worse in backtesting than the monthly system, but I can't think of any logical reason (from a risk control standpoint) that it would be better to update the correlations less frequently. Any input?
Posted: Tue May 13, 2008 10:00 am
by sluggo
If weekly updates are preferable to monthly, maybe daily updates are preferable to weekly. And, once you get intraday data, maybe hourly updates are preferable to daily.
Here's a passage from Ralph Vince's book
The Handbook of Portfolio Mathematics (link). It's found in Chapter 11 ("What the Professionals Have Done"), on page 369, in a section called
Further Characteristics of Long-Term Trend Followers.
Typically, when you speak with these fund managers, they will almost unanimously tell you that if there were no costs to doing so, they would alter their position sizes as frequently as possible -- in fact, if it were possible, they would adjust them continuously. ...
Yet, in application, managers differ wildly from this. One of the most successful (who always has a position in a given market) will alter his size only on every rollover occurrence.
Posted: Tue May 13, 2008 10:17 am
by LeviF
That is an interesting passage. Are there any other logical reasons to avoid more frequent re-sizing than simply the transaction costs?
Posted: Tue May 13, 2008 10:20 am
by nodoodahs
I can think of a reason: signal to noise ratio can be higher with less frequent updates.
I've seen the same thing happen with tracking stocks' relations to a single moving average or to their 52-week high -- sometimes if you check every day, or intraday, you'll see lots of conflicting signals, but taking a measurement once a week (or once a month) gives fewer signals that are, on average, more important. Often it reduces whipsaws.
Assuming your process "works" for at one-month intervals, and assuming you have software that allows for fast processing of the tests, perhaps you should test the sensitivity of the process to time. Test a variety of intervals from daily through several few months; graph the results. If the process is robust, you will probably find a range of values that work approximately just as well as the other, with performance falling off the further you get from that range.
Posted: Tue May 13, 2008 12:32 pm
by LeviF
I guess some more testing is in order...
Re: Common sense defied...
Posted: Tue May 13, 2008 1:24 pm
by Roger Rines
levijean wrote:...The weekly updating system performed a bit worse in backtesting than the monthly system,...
You don't mention whether you are comparing performance with or without the associated cost of adding and removing positions.
Did you have slippage and commissions set to no cost?
In thinking about how the Correlation process generates information, I believe the increased number of test would increase the noise level enough that when a market hovers around your correlation trigger level, it would be the most active in responding to the change in time frame for recalculation and then position assessment.
It would also be interesting to hear how trades counts in each of the markets changed for each approach, and how close their modal value was to the trigger levels.
Posted: Tue May 13, 2008 1:47 pm
by LeviF
I will be convinced if performance holds up if over monthly tests at other arbitrary times than just the first of the month.
I'm not in front of my software, but the code I use now is something like:
IF CurrentMonth <> LastMonth THEN update
What is a method to get this to update on a monthly basis, but near the middle of the month or sometime during x week of the month?
Posted: Tue May 13, 2008 2:27 pm
by Roger Rines
There are some simple date tricks that might serve what you want.
For example, the 15th of the month will fall in the 3rd week of the month. Knowing this you could easily get the DayOfWeek Number for the 15th of a Month and determine if it falls on a Market Day. When it doesn't, you could easily use the DayOfWeek value to decide if you have to add or subtract from the DayOfWeek number to find a market date your code would use to trigger the recalculation.
By doing the above at the first day of the month, like when your code tells you it is changing months, you can set the correlation update trigger to trip.
Another approach might be to look at the DayNumber of the first day of the month, and then decide on the following Friday, you will set the update trigger by incrementing the days until you get to the Friday, if the First Day of the month isn't a Friday.
Did I understand the question?
Posted: Tue May 13, 2008 2:40 pm
by LeviF
Thanks Roger. I will run a few tests tonight and report back.
Posted: Tue May 13, 2008 3:47 pm
by LeviF
The results are in. I stepped the monthly updates across 15 days of the month. The best and worst results are as follows:
11th; RAR of 69%, DD 29%, 7.5 mos.
25th; RAR of 58%; DD 33%, 10.1 mos.
Choosing the best vs. worst date to update results in nearly a 100% increase in equity over the test period.
Weekly updating:
RAR of 62%, DD 30.4%, 9.8 mos.
I can't think of any reason running updates on the 11th of the month should be better than the 25th, so I guess I'm back to weekly.
Posted: Tue May 13, 2008 4:07 pm
by LeviF
Daily updating seems to work the best, it is just terribly slow to process.
Posted: Tue May 13, 2008 4:09 pm
by Tim Arnold
When I hear "can't think of any reason" my reaction is "not statistically significant."
Then again, there could be a logical reason...