7
$\begingroup$

Assume a stock had an open of \$100 and a close of \$102. If the high of the day was \$103 and the low was \$99, the daily range is obviously \$4. What is the best way to express the daily range in terms of percentage?

If you take the range and divide it by the open, you get 4.00%. If you take the high and divide it by the low you get 4.04%.

The first method seems more intuitive but the second method is more computationally efficient and may be good enough. Is there an industry standard for this calculation?

$\endgroup$
4
  • $\begingroup$ why is it more computationally efficient? $\endgroup$
    – SRKX
    Oct 13, 2011 at 5:56
  • $\begingroup$ Because in the first case you have to subtract then divide. In the second you only have to divide. $\endgroup$ Oct 13, 2011 at 7:18
  • $\begingroup$ ah ok. but that's $O(1)$. not sure I really see the point. $\endgroup$
    – SRKX
    Oct 13, 2011 at 7:39
  • $\begingroup$ SRKX: The second method divides two numbers that are directly calculated. The first method takes those same numbers and adds a third number for which care must be taken that it is the correct one. The open 12-days ago, for an n=12 calculation, can be confused with 11 or 13 and then the calculation would be wrong. The second method adds complexity that is prone to OBO error. $\endgroup$
    – Milktrader
    Oct 13, 2011 at 10:36

2 Answers 2

4
$\begingroup$

It seems that the daily range would be based on the open. The close is just part of the range of that day (it must fall within the range, it just happens to be the last transaction of that day).

From a practical perspective, if you were looking for non-normal price deviations, you could not calculate whether the price at time N is within its normal distribution of past price ranges as the day progresses if you were waiting for the closing price to get your denominator.

$\endgroup$
1
  • $\begingroup$ The open makes the most sense as a point of reference. If you observe the range over the last n days, then the open of the first day is the denominator. (Hi - Lo) / Open. $\endgroup$
    – Milktrader
    Oct 20, 2011 at 13:42
4
$\begingroup$

...and assuming the stock opens at 48 and closes at 50 with a high of 51 and a low of 47 the percentage ranges will be 8.3% and 8.5%, the point being that your percentage measure of the range is determined entirely by the price level(s) of the denominator(s). This is an important caveat as these levels will change as the price bar data becomes historical data and this historical data is adjusted to accommodate future stock splits, dividends etc. or in the case of back-adjusted futures contracts the data is continually changing levels with the addition of new forward month contracts. Of course you can compensate for this by keeping track of the adjusted close, but then you are adding a data management problem and more complexity.

I would hazard a guess that you are seeking a way to normalise the range so that you can compare ranges at different time periods within the same time series or compare ranges across different time series. If this assumption is correct I would suggest normalising the range by using an average of the immediately preceding n=? bars. This resulting normalised range will remain consistent despite the above mentioned changes in levels in the historical data. Furthermore, I think it intuitively makes more sense to relate any bar's range characteristics to a summary of those that occur immediately before said bar: there is a qualitative difference in nature between a bar with a range of 4 now at a level of 50 that is much bigger/smaller than the average preceding range compared to a bar with a range of 4 six months ago at the 50 level where a range of 4 was "normal" for that market at that time. Using price levels for the denominator would not distinguish between the bars.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.