1

In avellaneda-stoikov, https://blog.hummingbot.org/2021-04-avellaneda-stoikov-market-making-strategy/, σ^2 is an input for both the reservationPrice and optimalSpread. Hummingbot also mentions the market volatility in their docs.

However, when I look into the GitHub code in Hummingbot, they do not square the volatility that is determined by the following formula:

def _indicator_calculation(self) -> float:
        np_sampling_buffer = self._sampling_buffer.get_as_numpy_array()
        vol = np.sqrt(np.sum(np.square(np.diff(np_sampling_buffer))) / np_sampling_buffer.size)
        return vol

This is the standard deviation σ, not σ^2. Any explanations for this?

Research in multiple other papers about estimating historical volatility, but it ended up all with the same confusion.

1 Answers1

0
  1. They don't square the σ because σ is the markets volitilty value also in the formula it's left as σ^2 so the function gives you σ.
  2. The standard deviation also most likely has more use cases than the variance so it's probably quicker to square the st dev anytime you need the variance than to sqrt the variance everytime you need the st Dev.
  3. Standard deviation is in the same units as the mean

Hope that helped see https://stats.stackexchange.com/questions/35123/whats-the-difference-between-variance-and-standard-deviation?noredirect=1&lq=1 for more :)