I'm going through "Advances in Financial ML" book and got stuck with something which is not covered there (correct me if I'm wrong). Let's assume I labeled data to 0, 1, 2 according to triple barrier method but I know my model will work only in low-volatility market. So one approach would be just to use volatility as a feature and let ML do its magic by figuring everything out but I believe it results in more noise than if I would explicitly excluded specific market conditions from the model (kind of regime switch). How should I adopt my labelling approach to achieve this goal?
Using the Triple Barrier Labeling you would use the labels [-1, 0, 1] to indicate which barrier was reached first. You should have very few 0 labels and thus you can remove them from the sample. If you have many 0 labels then you have set your take profit and stop loss levels too high.
To determine the TP and SL levels you can use synthetic data to determine the optimal trading rules. The following is the paper the technique is based on: Determining Optimal Trading Rules without Backtesting.
If your model only works in a low volatility market then you can make use of the Meta-Labeling technique and fit a secondary model to help you filter out false positives and determine optimal bet sizes.
This secondary model will rely on features that will be predicitve of false positives so features such as volatility, serial correlation, skew, and so on will be very helpful.