Math example for conditional investing

Let’s imagine you want to know the price impact of a specific event/DAO decision on the GNO/DAI price.
We will explorer again how conditional tokens can do that.

First again a reminder of the basics:
We can use the conditional token framework to take a DAI and split it into DAI-Yes and DAI-NO. Either of those tokens will pay out a DAI depending on whether or not yes or no happens. Because we can do this split (and also merge = converting DAI-yes and DAI-No back into DAI) at any time at no costs we can establish the price of DAI yes + DAI no == DAI

With those 3 tokens (DAI, DAI yes, DAI no) we can allow trading them against each other. In theory with 3 different tokens, we can establish 3 prices DAI-yes ↔ DAI; DAI-no ↔ DAI and Dai-yes ↔ DAI-no - in reality however there should be only 1 price and the other 2 prices can be derived with the mechanic (split/merge) introduced above.
All of this 3 prices should reflect the likelihood of the event/decision happening/ or not.

On Omen markets are established in the form DAIyes ↔ DAINo using the CPMM (from @alanlu/ prominently used by balancer/ Uniswap)

In the next step, we can use GNO in the same way as DAI and introduce thus 3 more tokens (GNO, GNOyes, GNOno)

By introducing 3 more tokens we have a total of 6 tokens and thus up to (6*5)/2 = 15 trading pairs/ prices.
However - in reality, we only have 3 degrees of freedom/ 3 prices that can be set by the market - all others can be derived from 3.

The pair that is easiest to understand is DAIYes / GNOYes. While in previous markets traders would have to make an assumption about the likelihood of yes occurring this likelihood is factored into BOTH DAIYes and GNOYes and thus is irrelevant for the ratio (price) of the 2 tokens.

Speaking form a user perspective:
A user can take $1000 DAI and convert them into 1000$ DAIYes and 1000 $DAINo. Now they take the $1000 DAIYes and buy GNOYes. They will end up with GNOYEs and 1000 $DAINo. The outcome is: if the decision is not made - they will just be able to get 1000$ DAI back (basically nothing has happened) but if the decision is made/ the event happened they have bought GNO at a specific price.

Soon™ Gnosis Protocol V2. will allow to trade all of those 15 pairs and inherently find consistent prices across them. Meanwhile, there are different options to set up those markets:
You could have one CPM AMM with DAIYes, DAINo, GNOYes, GNONo. Alternatively have 3 uniswap markets: DAIYes/GNOYes, DAINo/ GNONo and finally DAI/GNO

Since we are coming from Omen (vanilla prediciton market usecase) for GnosisDAO we will go with the options: DAIYes/DAINO; GNOYes/GNONo and as a third market the generally existing DAI/GNO markets.

Practically this will make it harder for a user to do the conditional investing described above - but it is still possible:
The steps are:
a) buy 1000No DAI (with e.g. 400 DAI)
(Omen allows you to do this - under the hood, you convert DAI to DAIYes and DAINo and then you trade all DAIYes for more DAINO)
Now in case “No” happens you get the full refund
b) with your remaining 600 DAI buy GNO on a regular market
c) Use all the GNO to buy GNOYes

In the end, you will hold 1000 DAI NO and only yesGNO.

regular price 60
price yes 63
likelihood yes 60.00%
DAI DAIYes DAINO GNOYES GNONO GNO
DAI 1 1.666666667 2.5 0.02645502646 0.04504504505 0.01666666667
DAIYES 0.6 1 0.6666666667 0.01587301587 37 100
DAINO 0.4 1.5 1 94.5 0.01801801802 150
GNOYES 37.8 63 0.01058201058 1 0.5873015873 1.587301587
GNONO 22.2 0.02702702703 55.5 1.702702703 1 2.702702703
GNO 60 0.01 0.006666666667 0.63 0.37 1
3 Likes

Is the inclusion of trade fees and GAS fees into this calculation significant with regards to the predictive value of the price impact?

Yeah, I think it would be really useful to create a model that accounts for slippage and fees in the markets. That said, the simple model is still very illustrative.

See my post here for a quick attempt at a calculator that includes trade fees + slippage Change the funding structure of Gnosis Impact markets - #8 by davidoj

2 Likes

Very cool. I’ll try adapting that into a version of my conditional investing exapmle sheet.

Thinking about the predictive value of Price Impact, I wonder if factoring in prior price volatility of the project token will give a better signal.

In other words, if the 7-day volatility for GNO is 10% at the start of the SnapShot poll, then a price impact of 10% or less would not provide a signal as it hasn’t escaped the bounds of how the price would normally move if the proposal was not happening. However a price impact that is greater than prior violently would be signal an impact on price which is equal to price impact - prior volatility.

FYI @auryn_macmillan, 've changed the sheet a lot since your reply.

@GraemeB in some cases it will be possible to precisely predict the change in price even if the actual price is quite volatile. For example, suppose 7-day volatility is 10% and the proposal is to airdrop 1% GNO to all holders of GNO. Then whatever random fluctuations the price takes between now and the end of voting, we have good reason to believe that if the vote is accepted it will be exactly 1% lower than if it is rejected. In this case, ignoring fees, slippage etc. the price impact should show a 1% change regardless of volatility.

While there is unusual reason for confidence in this example, I think it’s plausible that price impacts could often be more certain than “what is the price in one week?”

I think that in practice the market signal for the price impact of GIP-1 was just noise, but in principle I don’t think that 1 week volatility is necessarily a floor.

An interesting (but potentially costly!) experiment: we could implement a 5% chance to veto some GIPs, resolved after the snapshot vote ends. If the vote is overwhelmingly “yes”, then the price impact should be incorporated into the price of GNO. If the veto is triggered, the price of GNO will correct and, if the impact estimate is accurate, the correction ought to be 95% of the estimated price impact.