How to Value Nadex Bull Spreads?

Exotic options have always been a hobby of mine. One of the curious things about Dodd-Frank was it started to push swap trading onto exchanges. As such, a cottage industry of exchange traded exotics (in the US they’re technically swaps) has popped up over the last few years. The biggest of these markets by volume seems to be Nadex so I recently became a member and started playing around with some valuation methods. The exchange offers two flavors, binary options and bull spreads so today I will start with the latter.

Bull spreads are neat little instruments*. On the surface they look like futures, but they cap your risk and reward in the underlying product. In a way they are like double barrier options, in that there is an upper and lower strike price. When you buy a spread the maximum you can make is the upper strike minus your purchase price. Likewise, the maximum you can lose is purchase price minus the lower strike.

It gets interesting because the barriers introduce optionality into the contract price. When the underlying is trading in the middle of two barriers, the price is almost exactly equal the futures market price. When the price moves near a barrier however, some interesting divergences occur because the barrier caps risk and reward.

For example, suppose we are looking at a bull spread on the S&P500 (called US500 on Nadex presumably due to licensing issues?) with upper strike (U) equal to 2030 and lower strike (L) equal to 1990.

Now assume the S&P 500 is trading around 2015, exactly in the middle of the barriers. What will the price of the bull spread swap look like? It turns out it will be pretty much the same as the prevailing futures price (see chart, which models a bull spread U = 110 L = 90 for a theoretical underlying initially trading at 100. Each curve corresponds to a different amount of time left to expiry 5, 30, 60, and 120 minutes):


What if the S&P 500 is trading at 1990 instead? Now the pricing becomes more complicated. The price will not be zero unless there is no time to expiration, even though there is zero intrinsic value. Like an out of the money vanilla option, out of the money bull spread swaps have value because there is a chance they will become valuable. This probability is proportionate to the future expected volatility of the underlying instrument, and so bull spread swaps near a lower barrier will contain a premium that rises with increased implied volatility, and upper barriers will contain a discount. Likewise, the longer the time left to expiry the more premium/discount any out of the money bull spread price will contain when the underlying is near a barrier.

We can model these dynamics using some simple simulation techniques, the code for which I have reproduced below.

import pandas as pd
import numpy as np

fixed_N = 50000
fixed_vol = 0.5
fixed_U = 110.0
fixed_L = 90.0

max_iters = 60 # minutes
min_iters = 1

min_start = 80.0
max_start = 120.0

def value_end(end, U, L):
 #print end.values[0], "boom!"
 end = end.values[0]
 if end >= U:
 return U - L
 elif end <= L:
 return 0
 return end - L

def value_spread(start, U, L, vol, iters, N):
 #end_values = []
 start_is = start + np.sum(np.random.normal(0.0, fixed_vol, fixed_N * iters).reshape(iters, fixed_N), axis = 0)
 start_is = pd.DataFrame(start_is, columns = ['ends'])
 end_values = start_is.apply(value_end, args = (U, L), axis = 1)
 return {'value': end_values.mean(),
 'stdev': end_values.std()}

values = []

for start in np.arange(min_start, max_start, 1.0):
 print start
 values.append({'start': start,
 'EV': value_spread(start,

The script above will simulate 50k random walks and take the mean of these values at the options EV. You can play around with it for yourself. One possible extension is to add a drift component and see how that impacts swaps pricing.

If there is interest I’ll post a script next time for valuing the other type of derivative: binary options. These are different in that they are Yes/No bets that the underlying will be above the strike by expiration. They either pay 1 or 0, hence the name.

*(full disclosure I / Hekaton doesn’t have a biz relationship with Nadex, of course anythings possible in the future. I am not trying to be a shill I am merely interested in a potentially profitable new market… as with all things on MKTSTK, this is not an inducement to trade and please for the love of god do your own research and make your own decisions before making any investment)

** edit 4/12/2016 This article caught the attention of Nadex and since then Hekaton, LLC has been retained to create educational content for the exchange. As with all things on this blog, do your own research before making a trade. Remember, Futures, options and swaps trading involve risk and may not be appropriate for all investors. And please, if you learn nothing else: Past performance is not necessarily indicative of future results.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s