Thanks for the answer Mike. It makes sense. A follow up question on the back of someyoungguy's post would be would you ever trade anything that you weren't sure of the fundamental reason for? If you noticed a consistant pattern of behavior like the percentile strategy Talon posted but you didn't understand why it happened would you trade it? I would think given your answer to my question that the answer should be no as well because you could not tell reliably when you should optomize your entry and exit rules and when you're just curve fitting a no longer relavent strategy. TSGannGalt also mentioned that to know if you truly have an edge you need to come up with a hypothysis as to why the behavior is occuring. This seems to be along the same line as what you're suggesting. Does that sound right?
I wouldn't correct for it. This measure would show you (correctly) that volatility usually contracts midday. However... what would an overnight gap do for this measure? Is that something we should correct for? How?
For me, it's not as simple as reducing a system to a set of numerical summaries. These can be meaningful as a first step, but you really have to go deeper. Make a distinction between testing a system (which, again, is a joint test of all system conditions) and testing for a tendency. A system is not an edge. I believe that 99% of retail testing is done on systems, which is kind of like proposing to a girl before the first date... or... well nevermind lol. Also remember there are some statistically significant systems or tendencies that are not economically significant. This basically means they do not overcome transaction costs. (see a previous post on that subject.) The kinds of returns we are looking for will depend on the universe. Wouldn't you expect a system traded on $50 blue chip stocks to look different than one traded on penny stocks? Corn vs Natural Gas? You have to account for the volatility and drift of each market you run the test on. In short, it should overcome transaction costs and beat buy and hold. That's a minimum. In addition I would want to see that the returns look more or less the same across different time periods and market conditions. (As an aside... here's why language is so important and why you could do worse than the academic framework. If I say you want to see the system returns should be stationary (in the statistical sense), everyone knows what I'm talking about. Cryptic, idiosyncratic language confuses things and our discipline suffers enough from lack of standardization.) Various tests of statistical significance may be useful as well... just make sure you understand what you're doing and why you're doing it... the limitations and assumptions of the tests... and the results of violating those assumptions. Sloppy math will get you in trouble.
For anyone new to system verification it is actually a good suggestion to use some silly ideas like the ones above in order to put together a systematic approach to verification. It can be psychologically easier to develop your methods if you investigate an idea you don't really believe in. When our team looks for ideas we first determine the basic type of system we are looking for. To us that translates into the frequency of signals and the number of trades required to make it possible to reach our targets. Many people ignore this step. The result is that they may find something that actually works (i.e. has an edge) but cannot be used because the low frequency will make them put on very large positions (or hold positions longer which may have negative effect on the edge). So when we look for ideas we look for a combination of "edge" and frequency. Frequency is not only the total number of trades per year but also the distribution of those trades over time (to avoid clustering). If the frequency is very high but the edge is too small you may still have the opportunity to trade frequency for a better edge by using some kind of filter. Also think about the definition of "edge". Most calculate this directly from the return series. But returns are calculated using prices, often close prices, generated from a largely random process (yes I know many disagree - they can ignore this) that is non-stationary, with the risk of the price used being an outlier. One example on how one can improve edge calculations is to concentrate on excess market returns or use more stable prices, e.g. VWAP.
True, but I would prefer using different time of day indicator variables to account for normal time of day vol and volume patterns. And then use the adjusted vol variable to identify how far away from normal we are. If the midday vol does not drop as expected (but the raw measure stays the same), I want the adjusted vol variable to know this is not a normal day.
I think it would be useful at this time to ask if anyone has any idea how to quantify volatility *clustering* during intraday timeframes? If you need reference materials, I posted a link to Engle's paper on GARCH a few pages back. We know volatility dries up midday, but, this isn't exactly the fundamental issue we're looking for. Also, I'm not looking for a trade filter condition at this point, but rather, a hypothesis that we can test independently of any particular system level application. So here's the problem in a general form: 1. Identify (understand) volatility clustering. 2. Invent a hypothesis, i.e. explanation. 3. Assign rules that confirm/deny your hypothesis. 4. Test the rules for statistical significance. Lets begin with step 1. Any ideas?? Mike
A simple visual way to approach 1, is square each sequential return, integrate it, and observe the plot. Volatility clustering is very noticeable. Or simple observe uniformity/non-uniformity of non-integrated changes. One quantifiable method is ACF of abs or squared returns. There have also been studies using intraday variance ratio tests. I've personally run some studies that show intraday volaitility is a good proxy for daily volatility and vice versa (i.e. as VIX is growing, expect intraday volatility of S&P to grow likewise).
Awesome. Thanks dtrader! This is a great start. Attached please find TradeSation code for the indicator along with a chart of todays 5-min ES and the Volatility Cluster indicator (plotted in red). We can clearly see a sharp spike from 7:30am to 8am (PST). The initial lag for the sum is 12 periods (1 hour). Any ideas on what we should do to improve this indicator? What are some fundamental adjustments we could make to capture clustering more effectively? Shorter lag? Weighted smoothing? Please explain any idea as the fundamental concept must be valid. One thing that already been mentioned is adjusting for gaps... should we and, how should we, accomplish this? Mike P.S. Excuse my coding methods. I write code brute force, I try not to be cute about it...
A less filtered approach might be to simply attach a plot of the sequential real time returns (non integrated). I would suspect the regions of clustering would coincide with the peaks in your filtered signal. That's about as pure as you can get; the only more detailed granularity would be to move to finer scales (ie., 1min, tick), although, not sure if that's what you want, nor what it buys you. Regarding gaps, I suppose it really depends on what you want to do with it. My initial thought would be not to disregard it and see how it impacts your conclusions. It seems more important to keep gaps as a volatility proxy, than to remove them (unless they were due to dividends or contract rollover or something like that, in which case you want adjusted data).
We can always tweak the indicator for more/less granularity once we move a bit further along. However, assuming a 5min time scale, does an hourly lag make sense? Should we weight recent vola. more heavily? For now, the gap problem is a good one. I believe gaps introduce a non-linear effect in the return series. If we're going to analyze intraday vola, does it make sense to use information from a non-linear overnight effect? IMO, the information provided by a gap is important, but, does it offer any tangible benefit to the indicator as is? All the gap will do is inflate the opening vola... What I'm saying is that we can utilize the information from the gap, but maybe not in this particular measure of clustering? Does this make sense?