I'm thinking of implementing the Bulk Volume Classification algorithm on my data of hourly OHLC bars and associated volume, but my sense of it is that hourly granularity is insufficient and that really this bulk volume classification should be applied to bars of a lower time frame, e.g. 1 or 5 minute bars. Is my intuition correct?
I'd argue your intuition is backwards.
Think about what Bulk Volume Classification is doing: it's estimating a proportion of Buy trades for a given bar. All else being equal, for bigger bars (i.e. larger sample sizes), an estimate of the proportion will be more accurate.
In the follow-up paper where they assess the accuracy of Bulk Volume Classification vs. aggregate tick rules here, the authors assess it across time bars (1, 2, 3, 5, 10, 20, 30, 40, 50 and 60 minutes) and volume bars (1000-25000 contracts). Indeed, their trade classification accuracy for 1-minute bars is ~70% but ~90% for 1-hour bars (83% for 1000 contract bars and 94% for 25000 contract bars). This trend is seen across all 3 futures tested.
From a pure trade classification perspective, BVC gets better (not worse) the larger each bar is. The decision to use lower time frame bars should be made for other reasons (frequency of trading strategy, etc.) and take into account that the BVC will get worse.
You probably want to consider whether to use BVC at all. I will note that in his recent book, one of the authors makes little-to-no use of BVC that I could determine, but uses tick rules quite frequently when discussing microstructural features.
It highly depends on the goal of your classifier, or your Bulk Volume Classification Algorithm in this case.
MikeRand might be right, if you would be in any search of one hour or few hours candles information from time-frame viewpoint.
But, if your time-frame might be lower (e.g.,
5 min), which may appear so, then your intuition is right, yet you will face accuracy issues, as MikeRand very well points out. However, if, at this time, accuracy may not be an issue for you, and you are interested in prototyping a BVCA, that is fine then.
Trading algorithms are very pertinent to speed processing systems. If I were you, I would first prototype one BVCA (e.g., any time-frame), then redesign and re-architect for expanding into a
asyn system of algorithms in tangent based on only BVCA algorithm or other practical algorithms such that I could implement it to lower time-frames (
5 seconds, ... ,
5 mins, ...) as well as higher time-frames (e.g.,
3 hours, ...,
1 day). Because in algorithmic trading systems, you can extract various features from each time-frame, which are important and connected to information from other time-frames, and that is what practical traders do by sitting and watching the real-time charts.
I would then optimize for precision based on processed data from each time-frame, according to my objective function, however that would be. Because, computational costs may not be a factor or issue in algorithmic trading systems, not to mention you may be able to rent super-computing CPU services, once you are done with prototyping and scale-up, in production level, which will help you to perform your entire computations in