Common sense defied...
-
- Roundtable Knight
- Posts: 1436
- Joined: Mon Dec 22, 2003 12:24 pm
- Location: Des Moines, IA
- Contact:
Common sense defied...
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?
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.
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.
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.
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.
-
- Roundtable Knight
- Posts: 2038
- Joined: Wed Oct 06, 2004 10:52 am
- Location: San Marcos, CA
Re: Common sense defied...
You don't mention whether you are comparing performance with or without the associated cost of adding and removing positions.levijean wrote:...The weekly updating system performed a bit worse in backtesting than the monthly system,...
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.
-
- Roundtable Knight
- Posts: 1436
- Joined: Mon Dec 22, 2003 12:24 pm
- Location: Des Moines, IA
- Contact:
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?
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?
-
- Roundtable Knight
- Posts: 2038
- Joined: Wed Oct 06, 2004 10:52 am
- Location: San Marcos, CA
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?
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?
-
- Roundtable Knight
- Posts: 1436
- Joined: Mon Dec 22, 2003 12:24 pm
- Location: Des Moines, IA
- Contact:
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.
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.
-
- Site Admin
- Posts: 9015
- Joined: Tue Apr 06, 2004 1:41 pm
- Location: Boston, MA
- Contact: