On Balance Volume Histogram with Alternative OBV Calculation Optionsixion700 wrote: Fri Feb 16, 2024 10:05 pm Hello dear @kvak. I was trying to find a proper couple for mrtools' tdfi tv that i came across this nice OBV histo indicator made by you. The other indicator attached uses variants of OBV. I wanna ask is it possible to add those variants as an option to your OBV indicator? Im eager to compare the results specially with that second variant. My deep gratitude and best regards.
Here is your mod which includes the three variants below:
- The Classic OBV formula
Code: Select all
{ double prev = out[pos + 1] == EMPTY_VALUE ? tick_volume[pos + 1] : out[pos + 1]; if (close[pos] > close[pos + 1]) { out[pos] = out[pos + 1] + tick_volume[pos]; } else if (close[pos] < close[pos + 1]) { out[pos] = out[pos + 1] - tick_volume[pos]; } else { out[pos] = out[pos + 1]; } } break;
- Alternative Version 1
Code: Select all
{ if (high[pos] == low[pos] || open[pos] == close[pos] || close[pos] == close[pos + 1]) { out[pos] = out[pos + 1]; } else { if (close[pos] > open[pos]) { out[pos] = out[pos + 1] + (tick_volume[pos] * (close[pos] - open[pos]) / (high[pos] - low[pos])); } else { out[pos] = out[pos + 1] - (tick_volume[pos] * (open[pos] - close[pos]) / (high[pos] - low[pos])); } } } break;
- Alternative Version 2
Code: Select all
{ if (high[pos] == low[pos] || open[pos] == close[pos] || close[pos] == close[pos + 1]) { out[pos] = out[pos + 1]; } else { out[pos] = out[pos + 1] + (tick_volume[pos] * (high[pos] - open[pos]) / (high[pos] - low[pos])) - (tick_volume[pos] * (open[pos] - low[pos]) / (high[pos] - low[pos])); } } break;