Hello,
I am trying to create an extended version of the Bollinger Bands indicator that would include the Band Width and %B as described by John Bollinger in its book ‘Bollinger on Bollinger Bands’ (I have also created a GitHub ticket).
I started by copying the code from the Bollinger Bands indicator on GitHub and tried to extend it from there. I ran into the following issues and would appreciate some guidance:
- In the custom indicator file (BBextended.cs), I have tried several things but I could not manage to get the current close price that I need to calculate the %B. I found a way around it which is to use a SMA indicator with a period of 1 (line 10), but I would like to understand how to do that the proper way. Also, to cross check the result, I have plotted the %B calculated from in the indicator vs. a %B calculated in the OnData method and if you look at the %B graph, you will notice that there are some slight differences between the two calculation.
- I wanted to apply a Bollinger Band indicator to the %B value of my custom indicator but I am getting an error. If you uncomment line 48 of ‘SymbolData.cs’ you will see “Cannot implicitly convert type 'QuantConnect.BollingerBandsExtended' to 'QuantConnect.Indicators.BollingerBands'”.
- The BandWidth indicator (line 85 in BBextended.cs) should be multiply by 100 for a cleaner reading. I tried several variations of the code below but I am getting an error. That’s just a minor cosmetic change but it would be good for my understanding to know how to do that.
BandWidth = (UpperBand.Minus(LowerBand).Over(MiddleBand).Times(100m, name + "_BandWidth");
Many thanks!