burnside (OP)
Legendary
Offline
Activity: 1106
Merit: 1006
Lead Blockchain Developer
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 27, 2012, 05:38:40 AM Last edit: August 01, 2012, 03:37:04 PM by burnside |
|
Currently Discontinued... Sorry. I need to work out the flaws and come back with a new contract.You can now buy MINING_B INDEX futures on GLBSE!Experimental Mining Futures Trading - The MINING_B.HEADS Future is for investors that believe the MINING_B INDEX will go UP more than 5% by the end of the month. - The MINING_B.TAILS Future is for investors that believe the MINING_B INDEX will go DOWN more than 5% by the end of the month.
The MINING_B.TAILS.FUT future and the MINING_B.HEADS.FUT future are a paired offering, betting against each other. MINING_B.HEADS.FUTThe future is offered starting on the first of the month around 12 NOON EST. At the end of the month, the future will be purchased back from the bearer for the strike price. The strike price will be based on the rise and/or fall of the MINING_B INDEX. If the MINING_B INDEX has risen in excess of 5% over the course of the month, the strike price will consist of: 1 BTC + ((The total quantity of all MINING_B.TAILS futures x 0.6) / The quantity of MINING_B.HEADS futures) BTC If the MINING_B INDEX has not risen in excess of 5% or fallen in excess of 5% over the course of the month, the strike price will consist of: 0.8 BTC If the MINING_B INDEX has fallen in excess of 5% over the course of the month, the strike price will consist of: 0.0001 BTC MINING_B.TAILS.FUTThe future is offered starting on the first of the month around 12 NOON EST. At the end of the month, the future will be purchased back from the bearer for the strike price. The strike price will be based on the rise and/or fall of the MINING_B INDEX. If the MINING_B INDEX has fallen in excess of 5% over the course of the month, the strike price will consist of: 1 BTC + ((The total quantity of all MINING_B.HEADS futures x 0.6) / The quantity of MINING_B.TAILS futures) BTC If the MINING_B INDEX has not risen in excess of 5% or fallen in excess of 5% over the course of the month, the strike price will consist of: 0.8 BTC If the MINING_B INDEX has risen in excess of 5% over the course of the month, the strike price will consist of: 0.0001 BTC The MINING_B INDEX is created by polling the GLBSE's top volume mining bonds. For a complete explanation and graphing, please visit: http://www.everydayjim.com/mining_index.phpFor the purposes of calculating the strike price, the FIRST polled value within the month will be used and the LAST polled value within the month will be used. Thus, if there is a server outage or other interruption that prevents polling, there will be no question as to what values will be used in determining the strike price.
|
|
|
|
burnside (OP)
Legendary
Offline
Activity: 1106
Merit: 1006
Lead Blockchain Developer
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 27, 2012, 05:41:10 AM Last edit: June 29, 2012, 05:27:02 AM by burnside |
|
A quick case study!
If you buy 100 shares of MINING_B.HEADS during the month of July for 100 BTC and... - on July 1 the MINING_B INDEX is 109.53 and ... - 200 total shares of MINING_B.TAILS were sold and ... - 300 total shares of MINING_B.HEADS were sold and ... - at the end of July the MINING_B INDEX is 115.21 ...
- on Aug 1 we would calculate the percent change as: ((115.21 - 109.53) / 109.53) * 100 = 5.186% increase.
You would thus receive as a strike price: 1 + ((200 * 0.6) / 300) = 1.4 BTC Thus your total shares would be purchased back for a total of 140 BTC, giving you a 40% return!
Another example, this time you think the market will go down.
If you buy 150 shares of MINING_B.TAILS during the month of July for 150 BTC and... - on July 1 the MINING_B INDEX is 109.53 and ... - 400 total shares of MINING_B.TAILS were sold and ... - 350 total shares of MINING_B.HEADS were sold and ... - at the end of July the MINING_B INDEX is 102.21 ...
- on Aug 1 we would calculate the percent change as: ((109.53 - 102.21) / 109.53) * 100 = 6.683% decrease.
You would thus receive as a strike price: 1 + ((350 * 0.6) / 400) = 1.525 BTC Thus your total shares would be purchased back for a total of 228.75 BTC, giving you a 52.5% return!
* It will not always come out rosy. You must plan ahead and correctly anticipate what will happen with the top perpetual mining bonds. If you predict correctly, you gain. If you do not predict correctly, you will see losses. Do not risk anything you cannot afford to lose!
|
|
|
|
brendio
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 27, 2012, 05:55:22 AM |
|
GLBSE asks for a thread url when setting up a security... thus here is where my future security will reside. ![Wink](https://bitcointalk.org/Smileys/default/wink.gif) Unlike the contract text, you can edit the details of the thread link (and website, twitter etc.) after you have registered the security.
|
|
|
|
burnside (OP)
Legendary
Offline
Activity: 1106
Merit: 1006
Lead Blockchain Developer
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 27, 2012, 08:41:24 AM |
|
![Wink](https://bitcointalk.org/Smileys/default/wink.gif) live and learn.
|
|
|
|
Bitcoin Oz
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 27, 2012, 08:58:55 AM |
|
Interesting....
|
|
|
|
Meni Rosenfeld
Donator
Legendary
Offline
Activity: 2058
Merit: 1054
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 27, 2012, 09:00:03 AM |
|
The MINING_B INDEX consists of the sum total value of the 24h Avg for the following 5 perpetual mining bonds:
GIGAMINING PUREMINING YABMC BITBOND ZETA-MINING
By simply summing the prices, you are giving bonds disproportionate weight. Some of the bonds represent an amount different than 1 MH/s. The price per MH/s of a 5 MH/s will arbitrarily have 5 times as much weight in affecting the index. So you need to normalize each bond by the hashrate represented. In addition, you can also consider weighting bonds by their volume.
|
|
|
|
burnside (OP)
Legendary
Offline
Activity: 1106
Merit: 1006
Lead Blockchain Developer
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 27, 2012, 09:04:08 AM |
|
The MINING_B INDEX consists of the sum total value of the 24h Avg for the following 5 perpetual mining bonds:
GIGAMINING PUREMINING YABMC BITBOND ZETA-MINING
By simply summing the prices, you are giving bonds disproportionate weight. Some of the bonds represent an amount different than 1 MH/s. The price per MH/s of a 5 MH/s will arbitrarily have 5 times as much weight in affecting the index. So you need to normalize each bond by the hashrate represented. In addition, you can also consider weighting bonds by their volume. I'm more interested in the actual value of the bonds and how it shifts up and down than I am in what each bond represents. Weighting by volume is interesting. I wonder if it would instead be possible to weight by total share counts. Trick is keeping this as foolproof as possible. I don't want to get too complex if I can help it.
|
|
|
|
Meni Rosenfeld
Donator
Legendary
Offline
Activity: 2058
Merit: 1054
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 27, 2012, 09:32:38 AM |
|
The MINING_B INDEX consists of the sum total value of the 24h Avg for the following 5 perpetual mining bonds:
GIGAMINING PUREMINING YABMC BITBOND ZETA-MINING
By simply summing the prices, you are giving bonds disproportionate weight. Some of the bonds represent an amount different than 1 MH/s. The price per MH/s of a 5 MH/s will arbitrarily have 5 times as much weight in affecting the index. So you need to normalize each bond by the hashrate represented. In addition, you can also consider weighting bonds by their volume. I'm more interested in the actual value of the bonds and how it shifts up and down than I am in what each bond represents. But you're weighting them arbitrarily. Instead of a mix of all bonds, it basically is just the price of Gigamining. Weighting by volume is interesting. I wonder if it would instead be possible to weight by total share counts.
It's not trivial to find out how many bonds are outstanding. Going by volume is more meaningful, but you have to normalize. As an alternative to normalizing each bond, multiply the bond values (or take the geometric mean) rather than adding them, that's scale-invariant.
|
|
|
|
Sukrim
Legendary
Offline
Activity: 2618
Merit: 1007
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 27, 2012, 10:44:10 AM |
|
There's an API for outstanding shares now, so it's easy to find out.
The easiest thing to do currently would be to just gather a lot of shares (depending on the averagin/weighing used from Gigamining or else whoever has the most shallow bids), buy up all "more than 5% loss" shares and dump the price down to 1 Satoshi or whatever is needed to trigger the strike price. You could maybe even sell to yourself(?) so all you loose are 0.5% GLBSE fees and a few shares to some lucky bidders.
If you short these shares, you could even manage to make more profits out of such a dump action.
|
|
|
|
burnside (OP)
Legendary
Offline
Activity: 1106
Merit: 1006
Lead Blockchain Developer
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 27, 2012, 04:05:16 PM |
|
It's not trivial to find out how many bonds are outstanding. Going by volume is more meaningful, but you have to normalize.
As an alternative to normalizing each bond, multiply the bond values (or take the geometric mean) rather than adding them, that's scale-invariant.
The more I think about it, the more I think doing anything by volume (which, if I'm understanding this correctly, simply represents numbers of shares changing hands?) would be irrelevant to the metric I'm trying to portray. The metric I'm after is this; from a bond holders perspective: "If I hold 100 of each of these securities this month, do I win or lose at the end of the month?" I don't think that adjusting the index for outstanding shares or adjusting it for volume really helps out that index. Though, there may be a use case for creating other indexes. ![Wink](https://bitcointalk.org/Smileys/default/wink.gif) And I'm certainly not opposed to that if it would be of use to the community.
|
|
|
|
burnside (OP)
Legendary
Offline
Activity: 1106
Merit: 1006
Lead Blockchain Developer
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 27, 2012, 04:07:17 PM |
|
There's an API for outstanding shares now, so it's easy to find out.
The easiest thing to do currently would be to just gather a lot of shares (depending on the averagin/weighing used from Gigamining or else whoever has the most shallow bids), buy up all "more than 5% loss" shares and dump the price down to 1 Satoshi or whatever is needed to trigger the strike price. You could maybe even sell to yourself(?) so all you loose are 0.5% GLBSE fees and a few shares to some lucky bidders.
If you short these shares, you could even manage to make more profits out of such a dump action.
That's a great idea! I'll flesh it out on paper after work tonight, see if I can wrap my brain around it. In the meantime, in the API docs I couldn't see where you can pull the outstanding shares. Do you have a link or can you post some of the docs?
|
|
|
|
Meni Rosenfeld
Donator
Legendary
Offline
Activity: 2058
Merit: 1054
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 27, 2012, 06:32:31 PM |
|
"If I hold 100 of each of these securities this month, do I win or lose at the end of the month?"
But "100 bonds of each" is on an arbitrary scale. Let's take this to the extreme. Suppose someone issued a 1 GH/s bond. Each bond would be traded for 200 BTC. Someone holding "100 bonds of each" would have 20,000 BTC worth of this bond, and a few dozen BTC of other bonds. Almost his entire portfolio will be this particular bond, and only the price of this bond would affect whether he wins or loses, without any weight given to the other bonds. If instead you say "100 BTC worth of each bond" or "100 MH/s of each bond", you'll have a true average with each of the bonds having an effect on the index price. I don't think that adjusting the index for outstanding shares or adjusting it for volume really helps out that index.
Adjusting for volume isn't required, especially since you've included only the largest bonds, but consider this - if you included some bond where only 1 MH/s total were issued, its price could go up and down like crazy because there is no liquidity or depth, and this insignificant bond will be the major factor in the index trend. If you weight by volume you make sure only bonds that have a meaningful price will affect the index. There's an API for outstanding shares now, so it's easy to find out.
The easiest thing to do currently would be to just gather a lot of shares (depending on the averagin/weighing used from Gigamining or else whoever has the most shallow bids), buy up all "more than 5% loss" shares and dump the price down to 1 Satoshi or whatever is needed to trigger the strike price. You could maybe even sell to yourself(?) so all you loose are 0.5% GLBSE fees and a few shares to some lucky bidders.
If you short these shares, you could even manage to make more profits out of such a dump action.
That's a great idea! I'll flesh it out on paper after work tonight, see if I can wrap my brain around it. I think (not sure, correct me if I'm wrong) that Sukrim was suggesting your bond design is manipulable. That's not a good thing.
|
|
|
|
Sukrim
Legendary
Offline
Activity: 2618
Merit: 1007
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 27, 2012, 07:06:23 PM |
|
I think (not sure, correct me if I'm wrong) that Sukrim was suggesting your bond design is manipulable. That's not a good thing.
Yes, I'm saying that depending on how the index is built (and you will have to give out the algorithm how to do that publicly of course, otherwise nobody will trust you) it might be very easy to manipulate in the "-5%" area, since bids are generally shallow on GLBSE, so it is easy once you hold some shares to do a flash crash. You offer bets with quite good returns (depending on the amount these shares are priced) and I think I can sell to myself on GLBSE, so all in all you offer quite some incentives to crash some mining bonds and earn money with it. Howto: Buy all "tails" shares you can afford. In the end of the month, borrow shares of one of the index bonds (the one with the least bids ideally). Sell bonds right before the last time the index is calculated, mostly to yourself (bid a lot of shares for 100 Satoshis or so, to keep fees low) and a dozen or so to some lucky ppl. You can even sell multiple times, for more shares traded (I REALLY have to test this out on some trash shares with the API! Might be interesting to have a few thousand shares traded + no fees(?), if you sell for 1 Satoshi...) It might be the case that you manage to crash the bond even after that for some time, so you can cheaply buy back the missing shares and return them to your lender. Congratulations, you crashed the index (shares trading for a few satoshis should have some impact on it, no matter how you calculate the average) and win the jackpot! Your bets can only work if it is as easy to manipulate the price up (or to just buy through the walls) - as there is no real incentive to keep up lots of empty bids but it is completely free to put up ask orders just in case someone really wants an asset I hold so badly that he'll pay a huge premium (I recently sold 1 share of TEEK.B for 1.2...) as I get dividends in the mean time anyways, it is always VERY easy to dump share prices with tiny amounts of shares. Counter tactics would include allowing open orders that are not 100% backed or simply building sniper bots that detect rapid down movements and that jump in the middle, bidding themselves and getting a few cheap shares. The difficulty is then to make sure these are really just cheap shares, not already worthless shares that someone else wanted to get rid of.
|
|
|
|
burnside (OP)
Legendary
Offline
Activity: 1106
Merit: 1006
Lead Blockchain Developer
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 27, 2012, 07:07:18 PM |
|
"If I hold 100 of each of these securities this month, do I win or lose at the end of the month?"
But "100 bonds of each" is on an arbitrary scale. Let's take this to the extreme. Suppose someone issued a 1 GH/s bond. Each bond would be traded for 200 BTC. Someone holding "100 bonds of each" would have 20,000 BTC worth of this bond, and a few dozen BTC of other bonds. Almost his entire portfolio will be this particular bond, and only the price of this bond would affect whether he wins or loses, without any weight given to the other bonds. If instead you say "100 BTC worth of each bond" or "100 MH/s of each bond", you'll have a true average with each of the bonds having an effect on the index price. It sounds like what you're looking for is for the index to be sum(Bond 24h Avg / Bond MH/s) to reduce the impact a single large MH/s bond might have on the index? Sounds work-able. Within the framework of the contract, what action would you take when a bond issuer changes the MH/s their bonds represent? There's an API for outstanding shares now, so it's easy to find out.
The easiest thing to do currently would be to just gather a lot of shares (depending on the averagin/weighing used from Gigamining or else whoever has the most shallow bids), buy up all "more than 5% loss" shares and dump the price down to 1 Satoshi or whatever is needed to trigger the strike price. You could maybe even sell to yourself(?) so all you loose are 0.5% GLBSE fees and a few shares to some lucky bidders.
If you short these shares, you could even manage to make more profits out of such a dump action.
That's a great idea! I'll flesh it out on paper after work tonight, see if I can wrap my brain around it. I think (not sure, correct me if I'm wrong) that Sukrim was suggesting your bond design is manipulable. That's not a good thing. Hah, that's what I get for responding in the AM before I'd had any coffee. Given the volume and depth on GLBSE, it's really hard to make it so that you can't manipulate it given sufficient resources. The approach I took to this was: - Use the 5 highest volume bonds. - Use the 24hr Avg Can you think of any other reasonably straightforward ways to reduce manipulation? For instance, it would be possible to use the 5 day average I suppose?
|
|
|
|
Sukrim
Legendary
Offline
Activity: 2618
Merit: 1007
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 27, 2012, 07:18:22 PM |
|
Depending on the payout and the following panic, it might even be worthwile to manipulate 5 day averages. However, you miht have a tough time competing with pirate rates in that case.
|
|
|
|
burnside (OP)
Legendary
Offline
Activity: 1106
Merit: 1006
Lead Blockchain Developer
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 27, 2012, 07:18:41 PM |
|
Howto: Buy all "tails" shares you can afford. In the end of the month, borrow shares of one of the index bonds (the one with the least bids ideally). Sell bonds right before the last time the index is calculated, mostly to yourself (bid a lot of shares for 100 Satoshis or so, to keep fees low) and a dozen or so to some lucky ppl. You can even sell multiple times, for more shares traded (I REALLY have to test this out on some trash shares with the API! Might be interesting to have a few thousand shares traded + no fees(?), if you sell for 1 Satoshi...) It might be the case that you manage to crash the bond even after that for some time, so you can cheaply buy back the missing shares and return them to your lender.
Congratulations, you crashed the index (shares trading for a few satoshis should have some impact on it, no matter how you calculate the average) and win the jackpot!
...
Counter tactics would include allowing open orders that are not 100% backed or simply building sniper bots that detect rapid down movements and that jump in the middle, bidding themselves and getting a few cheap shares. The difficulty is then to make sure these are really just cheap shares, not already worthless shares that someone else wanted to get rid of.
I don't think we could prevent this really, but this issue isn't unique to this future either. It sounds like you could do that and come out ahead with just regular shorting as well. Would using the 5 day average mitigate that somewhat?
|
|
|
|
burnside (OP)
Legendary
Offline
Activity: 1106
Merit: 1006
Lead Blockchain Developer
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 27, 2012, 07:20:14 PM |
|
Depending on the payout and the following panic, it might even be worthwile to manipulate 5 day averages. However, you miht have a tough time competing with pirate rates in that case.
I suppose it gets harder too as GLBSE grows and we're (possibly) able to add more decent volume securities to the index.
|
|
|
|
Meni Rosenfeld
Donator
Legendary
Offline
Activity: 2058
Merit: 1054
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 27, 2012, 07:22:30 PM |
|
"If I hold 100 of each of these securities this month, do I win or lose at the end of the month?"
But "100 bonds of each" is on an arbitrary scale. Let's take this to the extreme. Suppose someone issued a 1 GH/s bond. Each bond would be traded for 200 BTC. Someone holding "100 bonds of each" would have 20,000 BTC worth of this bond, and a few dozen BTC of other bonds. Almost his entire portfolio will be this particular bond, and only the price of this bond would affect whether he wins or loses, without any weight given to the other bonds. If instead you say "100 BTC worth of each bond" or "100 MH/s of each bond", you'll have a true average with each of the bonds having an effect on the index price. It sounds like what you're looking for is for the index to be sum(Bond 24h Avg / Bond MH/s) to reduce the impact a single large MH/s bond might have on the index? Right, that's what I said. Sounds work-able. Within the framework of the contract, what action would you take when a bond issuer changes the MH/s their bonds represent?
This can be tricky, but dividing by what the hashrate was at the beginning of the month would work in most cases. Or you can just go by the geometric mean of the prices, then scale is irrelevant. There's an API for outstanding shares now, so it's easy to find out.
The easiest thing to do currently would be to just gather a lot of shares (depending on the averagin/weighing used from Gigamining or else whoever has the most shallow bids), buy up all "more than 5% loss" shares and dump the price down to 1 Satoshi or whatever is needed to trigger the strike price. You could maybe even sell to yourself(?) so all you loose are 0.5% GLBSE fees and a few shares to some lucky bidders.
If you short these shares, you could even manage to make more profits out of such a dump action.
That's a great idea! I'll flesh it out on paper after work tonight, see if I can wrap my brain around it. I think (not sure, correct me if I'm wrong) that Sukrim was suggesting your bond design is manipulable. That's not a good thing. Hah, that's what I get for responding in the AM before I'd had any coffee. Given the volume and depth on GLBSE, it's really hard to make it so that you can't manipulate it given sufficient resources. The approach I took to this was: - Use the 5 highest volume bonds. - Use the 24hr Avg Can you think of any other reasonably straightforward ways to reduce manipulation? For instance, it would be possible to use the 5 day average I suppose? In general, when the underlying event can be affected, prediction assets are at risk of manipulation. They are best suited for situations when the underlying cannot be feasibly affected, otherwise you want to directly entangle your instrument with the underlying and its negative. You could try the following: Issue two bonds/futures, a short and a long, for a price roughly equal to the current index A. At the end of the month, where the index is now B, pay 2A-B for the short bond and B for the long bond. If you sell equal amounts of both bonds, your own position is neutral (you always pay 2A for a pair of bonds) and buying a short bond is equivalent to selling short the basket on margin.
|
|
|
|
burnside (OP)
Legendary
Offline
Activity: 1106
Merit: 1006
Lead Blockchain Developer
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 28, 2012, 03:33:23 AM |
|
In general, when the underlying event can be affected, prediction assets are at risk of manipulation. They are best suited for situations when the underlying cannot be feasibly affected, otherwise you want to directly entangle your instrument with the underlying and its negative.
What is an example of situations in which the underlying would not be feasibly affected? I can think of natural disasters and climate change. What else? You could try the following: Issue two bonds/futures, a short and a long, for a price roughly equal to the current index A. At the end of the month, where the index is now B, pay 2A-B for the short bond and B for the long bond. If you sell equal amounts of both bonds, your own position is neutral (you always pay 2A for a pair of bonds) and buying a short bond is equivalent to selling short the basket on margin.
Problem with that model is what happens when it's obvious to everyone that the market is going to tank? Noone buys heads, everyone buys tails and I lose my shirt. ![Wink](https://bitcointalk.org/Smileys/default/wink.gif)
|
|
|
|
|
|