Contact

OPT_EURO_EXCHANGE Function (Gnumeric)

Financial Intermediate Gnumeric

Price a European asset-exchange option in Gnumeric using quantities, carry rates, correlation and a verified example.

Verification status: See the evidence and test scope described in this guide. How formula examples are checked

OPT_EURO_EXCHANGE computes a theoretical European option value for giving up a quantity of asset 2 in return for a quantity of asset 1 at expiry. The direction matters: it models the right to receive qty1spot1 while paying qty2spot2, rather than an unconditional asset swap. Inputs below are synthetic model examples.

Syntax and units

OPT_EURO_EXCHANGE(spot1, spot2, qty1, qty2, time, rate, carry1, carry2, volatility1, volatility2, rho)

All eleven arguments are required. Spot prices use a consistent valuation currency; quantities scale the two asset amounts. Time is in years. Rate, carries, and annualized volatilities are decimal fractions, while rho is correlation between the assets and must be within -1 to 1 for the intended model.

Use positive prices, quantities, time, and volatilities for these examples. The effective relative volatility is SQRT(volatility1^2+volatility2^2-2*rho*volatility1*volatility2). It must be positive in this implementation’s nonsingular calculation. Perfectly correlated identical-volatility inputs can reduce it to zero and are not tested here.

Worked example: one-for-one exchange

=OPT_EURO_EXCHANGE(100,95,1,1,1,0.05,0.05,0.05,0.2,0.3,0.5)

The expected value is approximately 12.9522726122745. Asset 1 costs 100, asset 2 costs 95, and the option exchanges one unit of each after one year. Both carries equal the rate in this example. Relative volatility is SQRT(0.07), approximately 0.264575131106459.

Changing both quantities from 1 to 2 gives approximately 25.9045452245491, exactly twice the original value within numerical rounding. That is a useful unit-scaling check. Changing only one quantity changes the exchange ratio and is not a simple doubling of the original contract.

With the original one-unit quantities and rho=0, the expected value becomes approximately 16.5882260238012. The example illustrates the effect of relative volatility in this parameter set, not a universal prediction of future asset correlations.

Advanced use: make the exchange direction visible

Build a worksheet with separate rows for the asset being received and the asset being surrendered, including spot, quantity, carry, and volatility. Label the result “right to receive asset 1 for asset 2.” This avoids treating the function as a symmetric exchange rate or swapping two arguments while leaving their carries and volatilities attached to the wrong assets.

The implementation uses d1=(LN(qty1*spot1/(qty2*spot2))+(carry1-carry2+relative_volatility^2/2)*time)/(relative_volatility*SQRT(time)) and d2=d1-relative_volatility*SQRT(time). It discounts each asset amount using its own carry less the common rate. Independent normal-CDF arithmetic reproduces the example.

A correlation change affects relative volatility, not an additional multiplication of the final option value. Keep estimated correlation and volatility assumptions documented separately from the numerical calculation.

Errors and limitations

The callback directly evaluates its formula rather than rejecting every economically invalid parameter set. Validate the domains before calling it. Do not infer correct behavior for zero quantity, zero time, negative prices, correlation outside its valid range, or zero relative volatility from these ordinary examples.

Use consistent currencies and annualization. If asset prices are quoted in different currencies, the input model is incomplete until their common valuation basis and relevant dependencies have been specified. A computed number does not establish the adequacy of those assumptions or a fair market price.

The release history mentions American/European exchange-option pricers under 1.3.2, but does not explicitly identify this exact worksheet name as newly added there. The first introduction release therefore remains unestablished rather than being inferred from that entry.

Version and verification

The guide is pinned to official Gnumeric 1.12.57 source checked on 17 October 2026. The first introduction and any last-working release are not established. The selected examples were recalculated in the actual 1.12.57 engine under C.UTF-8 on that date and compared with independent mathematical calculations. No GUI screenshot, extreme-domain certification, or newer-version equivalence is claimed.

SQRT · LN · EXP

Official references