You can use BSM to derive vega for a given delta (Nd1);
stock price*nd1*sqrt(T)
Recall that a call price is a function
CP(S, X, t, v, r), where
S is the current stock price
X is the strike price
t is the time to expiration
v is the volatility assumption
r is the interest rate assumption and assumption for the expected growth rate of the underlying
Vega is defined to be the partial derivative d(CP)/dv.
Typically, the function CP is calculated via a binomial tree expansion. For American options this is necessary, because of the early exercise right. For European options, there is an explicit formula you can differentiate.
To calculate vega, you do a numerical approximation of the derivative. Suppose epsilon = 0.001. In that case, vega is (CP(v + 0.001) - CP(v) / 0.001). You can't make epsilon too small, because floating point round-off will introduce error if epsilon is really small. A value of 0.001 is good enough.
To calculate vega, you construct two binomial trees, numerically approximating the derivative.
<a href="http://www.optionstack.com"> Options analysis & backtesting software </a>