Thought experiment

arabianights

Legendary member
Messages
6,721
Likes
1,380
Suppose we have a futures contract cash settled on a random number (uniform distribution) between 0 and 1 inclusive, tick size 0.001. How do you trade it?
 
When you say between 0 and 1... you mean the underlying asset is lognormally distributed with mean 0 and variance 1, right? Not that the underlying exists between the boundary condition 0 <= Asset <= 1...
otherwise it'd be pretty easy to trade, just buy at 0 and sell at 1.
 
Suppose we have a futures contract cash settled on a random number (uniform distribution) between 0 and 1 inclusive, tick size 0.001. How do you trade it?


quote a mid price of: 0.500 / (1 + rt) , then add 0.001 each side as a market makers' spread

where r is the annual interest rate, and t is (time in days)/260 to expiry.
 
Last edited:
When you say between 0 and 1... you mean the underlying asset is lognormally distributed with mean 0 and variance 1, right? Not that the underlying exists between the boundary condition 0 <= Asset <= 1...
otherwise it'd be pretty easy to trade, just buy at 0 and sell at 1.

No I mean it's uniformly distributed between 0 and 1.

Joey's answer was what first came to mind but it ignores other traders, in particular noise traders.
 
On second glances joey's answer is not quite what I had in mind: the mid point should remain 0.500 but the spread should tighten over time.
 
Mental was not buying the down binary today!

Reminds me... I have a fairly exotic swap to propose, even if you don't give me a price I like it would be nice to see how you would value it. Assume I buy a >300 up dow every day for a month and also have an option to opt out by 9 am each day. Feel free to start a new thread about it... I'm just interested in financial engineering as I know so little about it.

Hope nobody minds me posting a reply here, seemed the most appropriate place.

Anyway.

Firstly, I'm not sure it's a swap; Secondly, sh!t arabian, this is beyond the realms of my quant ability.

Let us begin with just buying the binary for tomorrow, we can price this fairly easily from the Delta.

The next part is to clarify what you mean by "opt out" - I assume you mean sell the binary option back to the market at the price you paid for it, and get your money back. (otherwise, you could always "opt out" from the binary by selling it to the market at Spot, and not pay for the additional option).

So, consider it as a compund option - a put on a binary - and calculate the value of a Put on the binary with strike = Price paid for Binary, T = 8am.

Well, if we assume constant volatility (which means everything from here on is bulls!t), the value of each Binary should be the same - what I mean is, ceteris paribus the value of the dow > 300 binary on Friday should cost just as much as the dow > 300 binary next thursday; all binaries from Tomorrow + 1 are "forward start" options. It follows that, ceteris paribus, the value of the puts should be the same too

** we are treating the puts as forward starting options too - so you can't "opt out" of next wednesdays binary today, the option only exists between 00:00 and 08:00 for each and every binary underlying the put. Also, we are not accounting for the returns on the underlying - if the Dow fals by 3,000 points, it is less likely to increase by 300. These are serious factors to rule out, but we'd need a model of the Underlying to work through it - the SB's underlying, not the actual indices**

So, how do we calculate the value of a put on a binary?? This is where I run into difficulties. I guess we could use a time series of the binary prices, and model the volatility with GARCH or something, but the prices are range bound between 0 and 100 and this complicates things I think (and we'd need a history of the prices, which we havent got - we could calculate the theoretical value of the > +300 binary from historical Dow prices, but this is not the binary we are writing an option for, see below). The easiest thing to do would be to look around the market to see what others were quoting, and infer the IV from their price, but nobody is quoting it.

Another difficulty is the fungibility of the binaries themselves; what i mean is, it really doesn't make any difference what the theoretical value of the binary is, the only price that matters is the price that is quoted from the monopolised market - i.e. you can't sell an IG binary to CMC, and so on. The provider of the price will be subject to it's own book risk, and will skew prices to adjust it; something we can have NO model for whatsoever. More of an issue though, is that the put is wholly unmarketable - you can't sell it on to anyone else, you are lumbered with the cost for good as soon as you pay for it.

Anyway; if you could get around all those problems for the binary tomorrow, lognormal returns, assuming constant volatility etc..., you could just find the present value of each binary after that out to a month, and that is how much it should cost.

However, I think it might be easier to consider the problem another way around; we can describe your portfolio of compound options differently, with a similar payout:

For each day, @ 9am your position has the payout Max[(S(0) - K - P), (K - K - P)]...

S(0) is the quoted price of the binary at 9 am

K = the strike of the put, the price you paid for the binary in the first place

P = the price you paid for the Put option

You can either exercise the option, leaving you with payout K - K - P = -P; you have sold the binary back to the writer at the price you paid for it, and lost only what you paid for the Put.

OR

you can choose not to exercise the option, leaving you with a payout S(0) - P - K; The value of the binary now, minus the price you paid for the Put option which expires worthless, minus the price you originally paid for the binary.


Can we not replicate this payout with call options? The prices should be the same (No arbitrage), but it is a little more intuitive if nothing else...

Say that you are always "opted out"; then, under what conditions would you want to "opt in'"? You would want in if you could buy the binary for less than it was (theoretically) worth.

(These are the "opt out" conditions of the put - you would want to return your binary for the price you originaly paid if the quoted price was less than it is theoretically worth).

So, calulate the theoretical value of the binary as we have done before, and use this as the strike for a call option; then, come 00:00, you decide whether you are interested in buying the binary at all; then, if you want the binary, you decide whether the call with strike "theoretical value" is reasonably priced (bear in mind this is unmarketable too, so it is only worthwhile if S(0) > K + C ; you buy the call for C, exercise at K, and left with the binary worth S(0). Obviously, with no arbitrage, this isn't going to happen today; but if you buy all the compound Calls with Strike K today, it might happen in the future.

So you could buy a whole string of calls today at their present value, each with the same strike, and not have to buy all the binaries (although the total cost should be the same, as the two portfolio's have the same payout).

Another, more sensible route, would be to ditch the binaries altogether.

You could engineer a portfolio with the same payout from straight calls and puts on the underlying, a bull or bear spread. You wouldn't have to ar$e about with compound options (which now have me scratching my head in bewilderment), just close out the leg of the spread you didn't want.

Lastly, and succinctly, why on earth would you want to bother? Binaries from SB firms are bad news. The market is skewed, the spread are sh!t, put-call parity is right out. If you want a binary at 9 am, buy it. If you don't, well, don't. And you are never going to be able to model the binaries well, so why on earth would you think about buying options on them??

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Disclaimer: I draw pretty pictures on my currency charts to trade, and readers should bear this in mind when considering this response.
 
interesting question. gecko would be right wouldnt he, everyone would want to buy at 0 and sell at 1, which would ultimately cause the price to stabilise at the midpoint, ie 0.5 with a really tight spread to encourage liquidity. however if the market is to randomly cash settle at any point, as soon as there is a move above the midpoint, you would buy/short sell a contract in the opposite direction, putting the odds in your favour. Im not sure if i interpreted correctly.

gecko your last answer is great. maybe get spanish to help you out with the calculations haha :p just joking. i think the only way to calculate a put option in this scenario, will have to be on approximating distributions and probabilities based on historical data (as you accurately mention, are not available), and even in that scenario we need to make strong assumtions. i have just about finished my quant major and i definitely didnt encounter anything like this in my studies. I wasnt too sure how to approach this. very interesting discussion. i hope someone else will be able to put forward their opinions on this too.
 
I don't think that everyone would buy at 0 and sell at 1 once we introduce other traders.

Finite capital... maybe best to buy 0.4 sell 0.45, for example, rinse and repeat, rather than holding the 0.4s until settlement.

I'd be willing to try a simulation of this if enough people (who can code java) are interested?
 
Ivan,

Did you come across MATLAB in your studies?? I am messing about with something called "Octave", which DT pointed me towards - I am trying to build a simple Binary Call pricing function, and currently the score is Octave 2: MrGecko 0

I have been thinking about the compund problem a bit more; perhaps it would be possible to calculate the value of the Binary at the beginning of every day from historical DOW prices, with a model of volatility, to get an "index" of the binary price - then, calculate the value of the Put on the "index" with it's own volatility model.

It gets us one step closer, prices the binaries a little more accurately as it takes into account the Spot price of the DOW for each and every binary (i.e. lognormal returns). Of course we are left with the problem of modelling the volatility correctly for both the DOW and the Binary(!).

w.r.t the previous problem, it's just like "play your cards right" with replacement of the cards. Everybody understands that to go "lower" on a King and "higher" on a 2 makes sense - but with finite capital, the demand to go "lower" on a queen is increased as a result, and so on, until everybody rushes to go "lower" on an 8 , "higher" on a six - market dynamics would push price back to the mean as soon as the "card" moved away from it, it is mean reverting.

If one were going to program it you'd need to specify how many times the RV is calculated, i.e. if I've just bought one @ 0.275, how many "goes" have I got for price to move > .275 before expiry?
 
P.S.

Ivan, RE: your Screen name

is it your real name, as in Ivan Tchourilov

or

"I vant Chouri lov", whoever "chouri" may be?
 
Ivan,

Did you come across MATLAB in your studies?? I am messing about with something called "Octave", which DT pointed me towards - I am trying to build a simple Binary Call pricing function, and currently the score is Octave 2: MrGecko 0

I have been thinking about the compund problem a bit more; perhaps it would be possible to calculate the value of the Binary at the beginning of every day from historical DOW prices, with a model of volatility, to get an "index" of the binary price - then, calculate the value of the Put on the "index" with it's own volatility model.

It gets us one step closer, prices the binaries a little more accurately as it takes into account the Spot price of the DOW for each and every binary (i.e. lognormal returns). Of course we are left with the problem of modelling the volatility correctly for both the DOW and the Binary(!).

w.r.t the previous problem, it's just like "play your cards right" with replacement of the cards. Everybody understands that to go "lower" on a King and "higher" on a 2 makes sense - but with finite capital, the demand to go "lower" on a queen is increased as a result, and so on, until everybody rushes to go "lower" on an 8 , "higher" on a six - market dynamics would push price back to the mean as soon as the "card" moved away from it, it is mean reverting.

If one were going to program it you'd need to specify how many times the RV is calculated, i.e. if I've just bought one @ 0.275, how many "goes" have I got for price to move > .275 before expiry?

A fair trial would have the contract expiring at a known time but not known trading volumes... could run a few different scenarios.

Clearly without noise traders no one will trade at all. Unless we assume hedgers against the random number (possible).
 
TBH I think that the Asset pricing model is the easy bit; the tricky part, if we are to run a sim, would be to record and monitor the payouts and positions of all the players, the order matching process, and so on.
 
I haven't written anything other than a simple script for a couple of years, should be able to write a quick java program in no time ;)

Basic plan: Each strategy derives from a paticular model and runs as a thread... one order book object sends out messages to each strategy when prices/volumes change/trade happens. Orders matched FIFO. Don't need any locks etc as the order book processes each message as they're received.

Conceptually it should be quite easy to code I think.
 
I don't think that everyone would buy at 0 and sell at 1 once we introduce other traders.

Finite capital... maybe best to buy 0.4 sell 0.45, for example, rinse and repeat, rather than holding the 0.4s until settlement.

I'd be willing to try a simulation of this if enough people (who can code java) are interested?

It would be interesting indeed. I have basic java knowledge, but i dont know if it will be enough to actually write something like this. we did a similar thing at uni with imaginary stocks, but it turns out hectic... people have a natural tendency to go long, and thus i doubled my money just by buying first and holding (coincidentally i beat 100 other students at the same game lol) ... obviously the rules of this are slightly different, and it would be interesting to see how a market would react to price changes.. i suppose if everyones approach to it would be different, then the market could actually be rather volatile in a specific range (possibly even within normally distributed ranges)
 
Ivan,

Did you come across MATLAB in your studies?? I am messing about with something called "Octave", which DT pointed me towards - I am trying to build a simple Binary Call pricing function, and currently the score is Octave 2: MrGecko 0

I have been thinking about the compund problem a bit more; perhaps it would be possible to calculate the value of the Binary at the beginning of every day from historical DOW prices, with a model of volatility, to get an "index" of the binary price - then, calculate the value of the Put on the "index" with it's own volatility model.

It gets us one step closer, prices the binaries a little more accurately as it takes into account the Spot price of the DOW for each and every binary (i.e. lognormal returns). Of course we are left with the problem of modelling the volatility correctly for both the DOW and the Binary(!).

w.r.t the previous problem, it's just like "play your cards right" with replacement of the cards. Everybody understands that to go "lower" on a King and "higher" on a 2 makes sense - but with finite capital, the demand to go "lower" on a queen is increased as a result, and so on, until everybody rushes to go "lower" on an 8 , "higher" on a six - market dynamics would push price back to the mean as soon as the "card" moved away from it, it is mean reverting.

If one were going to program it you'd need to specify how many times the RV is calculated, i.e. if I've just bought one @ 0.275, how many "goes" have I got for price to move > .275 before expiry?


ill start with the easy one, lol, my name. it actually is Ivan Tchourilov :) i was born in russia. a woman i know always used to pronounce my surname as cherry love.. haha. its close, it was translated using french spelling, thus it has two silent letters. churilov is the way to pronounce it hehe...

in terms of the binary problem. we have been told that such a program exists and it uses programming languages. this was concluded by saying we dont teach programming so take an IT course haha. my dad is an IT contractor, so he knows c++, and thus ive been interested in actually seeing if i can use it, obviously with his help... is it hard to use??

the spot price would be an invaluable addition to the problem, provided that we agree that the moves in the underlying are not random. im sure all my academics at uni will probably want to kill me at this very instant for saying the markets are inefficient lol. the problem with getting a volatility model, is that the statistical distributions dont really apply THAT accurately in response to the markets. For example major crashes theoretically should happen very rarely, however they happen rather often. despite this, if we have a range bound index, based on normal distributions (i.e. +/-95% should be one range, 97.5% should be another and so on, it could be handy, as we should be able to predict the range for a good majority of the moves, probably 90%+. i wonder what the correlation of the volatility is between the dow and the binary, if any?

as to the original problem, wouldnt the amount of goes be defined by the volatility of the market? if that is the case then we need to have market makers who put the markets out of equilibrium. i would think there would be many people staying at 0.5.

-ivan
 
one order book should be ok to write i think.. as long as there is some interference with the equilibrium. you know if this post develops any further we will create a new trading platform... watch out project turquoise :)
 
If we can get another couple of people interested when I have a spare weekend (which may be in a fortnight actually) I'll have a go at coding one...
 
Top