I am trying to obtain the Vega of some equities with the Dupire local volatility model.
For this I have already validated the pricing model (I am using Monte Carlo) and now I am able to obtain the Vega of every vanilla option I want.
This Vega is respect to the implied volatility surface and I have to compare both Vegas (surfaces) calculated with finite differences and with an automatic differentiation library called Autograd (in Python). The fact is that both results are the same but I have a doubt as I don't think they are correct so I have made a mistake somewhere but I can't find it.
The option is at the money and expiry is 0.5 years so, if I am not wrong, I have to expect a peak in that "point" in the Vega surface as it corresponds to the implied volatility value which I would use in Black-Scholes for example.
The surface I have is the one you can see below, I obtain that peak I just spoke about but I also obtain a huge peak in the at the money point in the first expiry bucket and I don't know if that peak is correct, so that is my question.
I guessed it is due to the (flat) extrapolation as I need to do it in the first time steps in the Monte Carlo engine but I don't know if it is normal or how to fix it.
Thanks and it would be a pleasure to give more information if necessary