I am trying to estimate the intraday ATM volatility in a market where the the strike prices are relatively sparse thus the ATM option may not exist (let's say the closest strike is about 2% away from the spot price). A brute-force way to do this is to fit a volatility model, such as SABR or Heston, and compute ATM volatility using that model.I am wondering if there's any other method without fitting the model. Here's what I have tried: Suppose we have already fit a SABR model with end of day data and we have obtained the SABR parameter $\alpha, \beta, \rho, \nu$. If the strike $K$ is not too far away from the forward price $f$, we can approximate the SABR volatility using $$\sigma(K, f) = \frac{\alpha}{f^{1-\beta}}\{1 - \frac{1}{2}(1 - \beta - \rho\lambda)\ln(\frac{K}{f}) + \frac{1}{12}[(1-\beta)^2 + (2-3\rho^2)\lambda^2]\ln(\frac{K}{f})^2\}$$ where $\lambda = \frac{\nu}{\alpha}f^{1-\beta}$. Under such approximation $\sigma_{ATM} = \frac{\alpha}{f^{1-\beta}}$, hence $\lambda = \frac{\nu}{\sigma_{ATM}}$. We can then rewrite the above equation as, $$\sigma(K,f) = \sigma_{ATM}\{1 - \frac{1}{2}(1 - \beta - \frac{\rho\nu}{\sigma_{ATM}})\ln(\frac{K}{f}) + \frac{1}{12}[(1-\beta)^2 + (2-3\rho^2)\frac{\rho^2\nu^2}{\sigma_{ATM}^2}]\ln(\frac{K}{f})^2\}$$ We can directly observe $\sigma(K, f)$ from the market. If we can assume $\beta, \rho, \nu$ are constant throughout the day (or can we?), we can solve for $\sigma_{ATM}$.
However, I am not very satisfied with the above result since it has a lot of approximations and assumptions. I am wondering if there's anything I can do to improve my result or there's a better method to do this.