Fair Price Finding In a Decentralized Exchange Economy

ETHCC 3 · March 2020 · 39:26

Felix Leupold examines fair price discovery in an economy of decentralized exchanges.

Speakers

Topics

From ETHCC 3, hosted by Ethereum France.

Transcript

okay hello everyone thanks for coming to this talk I'm Felix I work with gnosis and today I'm going to talk about how we can find fair prices in the presence of overlapping preferences and this might sound a bit vague and so let me start with an example and explain what we're going to talk about today so we are going to look at exchange economies and the kind of special thing about an exchange economy is that there is no single reference currency that you use to kind of trade your things into and out of so in the traditional financial market this would probably be the US dollar in the European economy your reference currency would be the euro but in an exchange economy you don't

have such you don't have such you don't have such a reference currency instead you're trading directly what you produce against the thing that you want to receive so you can think about it a little bit more like a medieval Market where you show up and you trade your goods directly to what you want and so in our use case in our example we have three protagonists we have Alice who is a producer of apples and she would like to receive eggs we have Bob on the bottom who is a producer of pears and would like to receive apples and then we have Charlie on the right who is a producer of eggs and would like to receive pears and these people express their valuations in terms of limit sell orders and you can think about it so Alice for example says she's willing to

sell at most six apples for at least ten eggs and you can judge this preference as kind of saying I value ten eggs the same as I value six apples so if I'm if I'm selling six apples give me at least ten eggs and the other thing that you can interpret here is that if she was to sell three apples she would like to receive at least five eggs so it kind of gives you an amount and the limit price and the level of indifference where she doesn't care if she trades or not and so one thing to look at here is that none of these two people could trade directly with one another because none of them are a direct counterparty to one another but what we can do is we can still make them trade if we bring them all to the same

marketplace and kind of match them all in the same ring trade and so what we can do this is a potential settlement there multiple what we could for example do is we could make everyone sell their maximum willingness so Ellis would be selling six apples Bob would be selling six pairs and Charlie would be selling 12 eggs and now if we look at kind of how happy or how content the people would be with a settlement we can find that Ellis is actually quite happy about it because you can see that she is making what we call utility of this trade so she's getting a surplus compared to her original evaluation and she's selling six apples but she's receiving twelve eggs

although she only asked for ten eggs so she's making a utility of two eggs Bob on the other hand is indifferent because they are matched exactly at their at their preference at their a value at their willingness at the evaluation if you wish and so they are indifferent about this trade and on the top right charlie is happy because while they sell twelve eggs they receive two pairs more than they asked for but that is not the only settlement that we could do here we could also have this settlement where now Charlie is giving ten eggs to Ellis and Bob is giving five pairs to Charlie still all the limit prices are respected so this is still a valid settlement and if we now look kind of at the sentiment of the settlement just like we did before we can see that now Ellis is

indifferent because she is still selling six apples but only receiving ten eggs which is exactly at her valuation what he doesn't she doesn't care if she's trading or not and Bob on the bottom is now happy because they get to keep one of the pair's and that is kind of their surplus Charlie at the top right also remains happy because they are giving away less eggs and they are willing to and receiving more pairs and we can even find a settlement where everyone is happy just by basically chopping up Charlie's cell amount to Ellis with one egg we now have Ellis making a surplus of one egg so she's happy Bob still as making a surplus of one pair so they're happy and Charlie is now making a surplus of one pair and one egg so in this case everyone is happy so

back to like the original question what are fair prices on an exchange we're looking at an exchange economy why because the token space in on the Ethier and blockchain resembles more an exchange economy than a traditional economy sure you could argue there's a US dollar that we could use as a reference currency but then there's so many instantiation of the US dollar in forms of different stable coins or you could say sure we take ether as the unique reference currency but again creating tokens on the blockchain is so easy that you're actually looking at a much more fragmented space and modeling it as an exchange economy might make more sense as we'll see and so yes basically we were assuming that they're overlapping preferences of Hewish and we're wondering how can we settle these

how can we settle these overlapping preferences so that from a globally global perspective it is fair and desirable for people to participate in this exchange and the reason I'm talking about this year is because we asked gnosis have built a market mechanism and a decentralized exchange that we've launched on main net and we're going to cover this very shortly at the end but this is basically the market mechanism that we employ there so this talk is going to be roughly three parts I'm going to talk a little bit about where does an optimal matching criteria come from what is a little bit the market mechanism theory about it we're then going to look at how we can make this work in practice and the last step is how we can actually make it work on a

theorem and on the blockchain so let's look at kind of traditional market mechanisms on centralized and decentralized exchange I'm sure every one of you has seen something like this it's a classical order book where you have on the left side in green you have the bid curve on the right side you have the ask curve and just to quickly recap what this basically means it means that for example here you have a price it's always on a pair so in this case we look at diversity SCC and so the bidders are basically the people that are willing to buy dye for UCC and basically people are saying that at a price of 0.8 we are willing to buy a volume of 120 and I in this case now as the price gets higher

and higher the willingness to buy gets lower and lower so you have the step function that kind of converges to zero and on the other side you have the willingness to sell at a certain price so for example at one point two we have about ninety dollar died worth the volume that is be willing to sell sold at at this price and basically the people who are putting in the orders in the order book are called so-called market makers they are giving offers at which they would be willing to trade and then on the other side you have market takers that look at an order book and just say okay cool I'm going to buy a hundred at $0.99 for example and so the one key characteristic of these order

book is because you have market maker and market taker they're never going to overlap because if you had an overlap instead of becoming instead of putting your order in the market book and taking the maker side you couldn't just take the thing that you're overlapping with that's already existing in the order book so you'll always have these lines converge and there will be a little gap in the middle which is your spread and the other thing that's interesting about these order books is that they're classically well that they are continuous or in the blockchain at least pseudo continuous because we have block x so continuty doesn't really exist and one of the problems with continuty continuity is that if an event happens that materially changes the price of the underlying asset you now have a race condition where basically the market

makers let's say Donald Trump tweets something about died and that has a material impact on the price of die so this order book at the moment of the tweet will now be wrong and will have different information so you have people that are taking the market maker site who are rushing in and trying to cancel their orders because they are now based on wrong information and you have market takers who are rushing into the order book and trying to fill these orders they're still in there at wrong prices and this is traditionally called front-running and because on the new york stock exchange people were actually running down to the trading floor and trying to cancel the orders or trying to take the orders while they're still in there on the blockchain this basically means you send out a transaction with a really high amount of gas and then

somebody else sends a transaction with an even higher amount of gas and so you're having this arms race of who can out each other in terms of gas costs and of course this doesn't make the market more efficient or anything the market will be efficient when the next block is mined it's just an arms race and goes of course at the cost of the people that are participating in this market so one traditional mechanism against this front running is discretizing the time and not having continuous time order books but so-called batch auctions and on the new york stock exchange you can already see this in between trading days so overnight people can submit their buy and sell orders and then 9:30 in the morning when the bell rings all these buy and sell orders are kind of put into

an order book which can no overlap because they couldn't be cleared well I'm what people were sleeping and they get all matched at the same uniform clearing price and so let's look a little bit at how how this price is chosen it kind of is obvious that it's the intersection between a bid and the ask line but we can understand a little bit more why that is the case and kind of derive a more general sense of what is an optimal solution for this kind of exchange mechanism and so here I just zoomed into the to the order book and highlight the overlapping section and you now can see that we basically have an entire range of prices where we could where we could settle and let's just look at one of the possibilities here if we take a price of $0.99 and said the

price between dioneo SEC is 0.99 then you would have about 20 died was of cell volume and about 40 die worth of by volume which means not all buyers could be fulfilled and what is even worse is that these sorry you don't you actually have $80 worth of by volume at this price and what is even worse is that 40 of this by volume would even be willing to buy it a dollar and five so if you tell these people hey the market price is $0.99 they will say wait why is it $0.99 I'm willing to pay one dollar and five and I didn't get matched that doesn't make sense so they have a strong preference to buy at $0.99 and they're being left out which is not ideal and the other extreme would be your Wonderland 5 where you would have some

sellers with a strong preference to sell that are being left out and so you can see there's about 80 dollars worth of sell amount at one dollar and one and that couldn't be matched at this price and so the solution is very simple in the two damaged case you just take the intersection because their supply and demand match and so now the only people that could not be fulfilled so basically the the distance here those are people that are indifferent at this price they don't care if they stay in USD C or s or B are transferred in to die their indifference so they are not unhappy if you wish and so this concept sorry if you want I can go back if you want to so this concept that can be generalized not just from the two-dimensional space but it can be

a basically generalized to a to an exchange economy and it's called or it well it can be generalized to what is called the Viraj in equilibrium let's go m into the definition of androgyny equilibrium before first and then look at a kind of the intuition behind it so that is defined for an n-dimensional space and exchange economy so it's not just a price as in a point but it's a vector of of prices for each item in our exchange economy for each good paired with incomes consumption bundle the consumption bundle is basically just an allocation who gets what so if you have 100 orders in there you could think about the filament of these hundred orders are as an allocation and that is done so that each agent in our exchange economy

maximizes their utility given the prices and so this means the agent will look at the prices that we give them and they will look at their allocation that they manage to trade or not and they will be maximally happy with it this means that if they wanted to sell at 99 cents and the price was 98 cents they must have sold all their lot basically all their allocation because they would maximize a utility of 1 cent so basically in order to maximize the utility we need to sell everything conversely if the price is lower than their sell order they would have to be not matched at all and the only way to fractionally fulfill them if is if their limit price was exactly at

the price that we gave and then the second criteria is kind of just for completeness the markets need to clear so supply and demand need to need to match which means we can print or burn any any Goods in this economy and then just the intuition in other words so to speak is everyone if you if you show the solution to individual trader they look at it and they say well this is the best I could have done this is the maximum utility I could have achieved given the prices you have found and why this is super valuable is because it's basically an equilibrium state in which no single agent would want to diverge from the current allocation that they have so they are maximally happy with what they have and so it's it's stale in itself and it also incentivizes people to actually be honest about the about their

willingness to paid yeah but their willingness to pay because if they can be guaranteed to maximize their utility they can be honest about what their utility is yeah and just a recap here and the in the example from before this is of course exactly happening at the intersection here because as we said here are some people that are not maximally where the utility is not maximized which is exactly the people that are bidding on this curve and then in the other side we also saw it so now we have kind of defined our Holy Grail of a solution the origin equilibrium and we have kind of seen that it's very easy in the 2-dimensional case to find that and that's what what people also do in the 2-dimensional case

and now let's kind of extrapolate this to our n-dimensional exchange economy maybe we can recap first again why it's desirable to go and to expand into n dimensions and we've kind of seen this the the intuition behind that in the very first example where none of the two traders would have been able to trade directly with one another but by inviting them all to the same marketplace they were actually able to settle their trades in a ring and a very good example for this use case is the stable coin market on a theorem today from the top of your head you can probably name between five and ten stable coins which all tokenize the same real-world asset the US dollar but in order to actually well it the liquidity is very fragmented you have an ether tax order book you have an ether die order

book you have an ether UCC order book and then on uni swap even if you want to trade between die and packs you have to go via ether which makes yeah liquidity provision really inefficient and really fragmented and so by combining our kind of all the tokens that we have in the space into one big multi-dimensional order book we can actually react gate this liquidity and we don't have to decide now if we have let's say a hundred thousand UCC if we want to market make fifty percent against die and fifty percent against pax we can actually mark it make our entire a hundred thousand UCC in all dimensions at the same time which makes this really efficient for any kind of fragmented market but the the first big use case

and that we see is the UCC local market Ani theorem so then just to recap how the you are out in equilibrium is defined in this three dimensional space basically now our solution is not a point well it's still a point but it's not an intersection between two lines but basically any any price vector any solution that we have would be a point in this three dimensional space and then you can think about the coloring here as maybe the well the utility maximization of the each of the individual individual traders so just basically the goal of the slide is to say that the equilibrium is still defined for n dimensions however and there are three very important questions for generalized

barrage equilibria the first one is it guaranteed to always exist because if that's not the case that we cannot try to find it if we have cases where it doesn't exist and generally the answer here is no it's not guaranteed to always exist however if you limit or if you kind of make some compromises on how people can express their valuations and remember our evaluations are expressed in limit cell orders so in these kind of step functions which is a very simple form of value expression you could also express your value in as a function of all the other goods or as something very very complex if you make some assumptions then you can actually prove that the Virage in equilibrium is guaranteed to exist but even if this is

the case it's not clear that it's unique and if it's not unique if we have to we still have to decide well which one is better how do we rank them against each other and then the third and most important problem for us is we want to have an exchange economy for kind of all tokens on a theorem so can does it scale in polynomial time with the number of dimensions and the answer to this question as far as we know is no and we don't have a formal proof but we're left to work with people that with mechanism designers that can actually help us formulate that proof but our working assumption is we cannot find average an equilibrium in n-dimensional in an n-dimensional space in polynomial time and so since that is the case or since that is our working assumption we have

to go and look at how can we approximate this holy grail of Evora in equilibrium and this is kind of now the second part of the talk let me take a quick sip and this is kind of the second part of the talk we now kind of have defined where we want to go we are kind of sure we can get there and pulling home your time so let's make it practical by approximating it and so let's look a little bit more at our use case there's stable corn use case here we have basically two types of people in the market we have the liquidity providers and these could be even small retail

people like you and me who just say that they've value two stable coins equally and think about it as if you're going out to lunch with a friend he's paying for your they're paying for your lunch and you want to pay them back in tokens and they say well let me die or use TC I don't care so what they could what they could do on our exchange they could say well I'm willing to sell 100 died if I receive at least 101 US DC and conversely I will going to say 100 UCC if I'm receiving 101 die because in their minds they value the two tokens as one dollar so as long as they make a little bit of a profit here they're happy and they might be willing to make to make this market so we can have a bunch of liquidity providers on this

side each liquidity provider can choose their subset of stable coins which they trust some I trust Heather some might not trust Heather so to speak and then on the left side we have somebody who is coming in and who is providing a market style kind of order so basically this person is willing to take up to 90 cents on the die and that might be because they are either smart contract that needs to liquidate and they can actually judge what is a fair price or they're just you know they basically are putting a market order into the system and they really want to get their trade settled and so what are different ways of settling this trade now how can we kind of approximate average in equilibrium and what worked really well in the two

dimensional case was to just maximize for volume so there if you maximize volume you actually find the virajna equilibrium if we do this in our case what will happen is we will actually create artificially long rings because we have this overlap in preferences here between 190 and basically a 100 to 99 if you not account for like tiny percentage earnings and so within this ten dollar overlap we can actually not only create a ring of four we could theoretically even create a ring of ten probably and so what the exchange mechanism would do it would just load up kind of the path in the in our in our system and without

creating more overall utility which is create arbitrarily long rings which at first doesn't seem very efficient but also if you think about adding any kind of fee mechanism to this and because it's an exchange it needs to charge a fee it actually will then reduce the overall utility because with each hop you would well reduce the utility that's in the system so this doesn't seem like a very good solution and we've been talking a lot about utility and that this is kind of you know what we are trying to maximize so why not just straightforwardly tribe let's do that lets try mac to maximize utility and maybe a little recap there again what is utility utility is the amount of stuff you received in the actual settlement

minus the amount of stuff that you were minimally willing to receive basically your limit price so in in this case for example basically what this would lead to first of all now is we don't do arbitrarily long rings anymore because it doesn't increase utility we can now trade this person with any of the three directly and we can choose kind of any price between 90 and 99 USD see here and in this case just for the sake of the example we're choosing 90 and so the utility of the person on the Left would be zero because they're getting exactly what they want what they asked for and the person on the right would get a utility of nine because if you translate this to 100 to 99 it's it's roughly utility of nine and you can switch this

price from 90 to 99 and the sum will always be the same so here we have ambiguity and moreover if you think about the kind of the idea behind the Virage in equilibrium was that every agent maximizes their utility given the prices and so the person here on the top right and the person on the top on the bottom right they are actually not maximizing their utility given the prices they look this person getting 90 90 USD c4 100 died and they are very unhappy that they are not included in this deal and if we want to formalize this we can formalize this as something that we call disregarded utility which is basically just the difference between your maximum possible utility given the prices and the utility that you have eventually

received and in this case we see that we have a disregarded utility of 18 in our system and another way to intuitively kind of think about this is that we have three people and a lot of liquidity 300 die at a price of roughly one to one and then we have one person and just $100 quiddity at a price of 90 cents so just intuitively the majority is probably right and the price should probably be closer to one to one and not actually ninety cents and so what we can do is now that we have to find this this is this measure of disregarded utility we can try to minimize that and if we want to do that we basically have because we cannot match all these people on the right we have to set the clearing price

exactly at their willingness to pay so now we kind of we break the ambiguity and we actually in this case have average in equilibrium because now nobody on the right actually cares about trading that means they're also not unhappy if they don't trade and the utility is all captured by the person on the left and so with this disregarded utility we actually have found a measure that can tell us how far away are we from our kind of from our Holy Grail from our garage in equilibrium and so it seems like the intuitive thing to do is just to try and minimize for disregarded utility at least if you're not on the blockchain but now but now let's try to bring this

all to your theorem and so on a theorem we have limited amount of computation that we can perform in each block and we have actually implemented this market mechanism on here I am today without a lot of gas optimization without any roll-up technology or any in seer knowledge technology but where we ended up with in our first implementation is that we are able to settle just 30 orders in a single batch which of course is very little we think that we can increase the significantly maybe to a hundred or a thousand orders but it will always be limited and so there's two questions or two options that we have we can either say well our order book should also just be the same size as our solution space so in every batch that

can only be 30 orders or we say we have an unlimited order book and bound basically as much as we can store on chain and every solution is just sending as pointers into the subset of orders that we are trying to fill and of course since our number is that low but also because it just seems more reasonable to have kind of an unbound order book and then just each solution just basically picks the orders that are overlapping and can be settled we went for this road so we have an unbound in size unbound order book and we in our solution only consider orders that are part of the proposed settlement because this is the only these are the orders that we have access to in the smart contract one more thing maybe to say about applying this

all to aetherium and I've been asked a lot about do we actually find the solution in a smart contract and the answer to that is no the solution is found off chain on a big machine and you know running running with like paralyzed algorithms and a lot of approximation and the only thing that we have to do any theorem is verify that a solution is correct and give it a score so that if we could receive two solutions we can say this solution is better than the solution so it's a little bit like an np-hard problems the the way of finding the solution is actually super hard but it can be done off chain the only thing that has to have been on chain is the verification but for this still we have to touch kind of all the orders in the

settlement so we said disregarded utility is what we want to minimize and now we kind of see that we can only look at the orders that are part of the settlement so that kind of is a problem because disregarded utility is already minimal if we just have no trades in our solution so if you provide a trivial solution where no orders are settled there is no utility but also no disregarded utility so it's already minimal and so it doesn't really make sense to minimize for it so what we do instead we go basically rewind one step in our thought process from the last kind of section we say well let's instead optimize for utility but let's break the tie where we have overlapping

price ranges and also yeah basically let's get closer to our rajma equilibrium by discounting disregarded utility so the basically interim formula that we have so far is we look at all the traits that are proposed in a settlement and then we take the sum of the utility of each trade and discount the disregarded utility of each trade given the prices and that is kind of the interim formula now there's one more thing that we have to that we have to keep in mind and that is that we are that the order size kind of matters so in this example you have a person that is willing to sell a hundred died for 101 years TC and somebody else who's willing to sell at 100 for 102 so this

person has a slightly worse price but the order is significantly larger and so specifically keeping in mind that our order book sorry our settlement is limited to 30 orders this person has a bit of more value to our exchange because it can be settled it can be matched against more orders than just the person on the left so even though the price is slightly worse because the order is so big it's actually should be it's more valuable to our exchange and the second thought for looking at order size or the volume of trades is that in the current proposal if two orders match directly if you're willing to sell something at one dollar and somebody else is willing to buy it at one dollar there's no there's

disambiguation and it's not clear if we should trade or if you should not trade and if we look at the order size and the amount of volume that is being traded we break these ties in favor of trading and that is also a little bit it kind of makes sense intuitively because for example the liquidity provider that we saw three slides earlier they are actually slightly happy if they get to trade even though they're supposed to give us their true valuation people tend to actually price in a little bit of satisfaction so in case we have an exact match we want to break in favour of trading so what we do and that's the final formula that our smart contract looks at is we you get as a settlement and we look at all the trades you compute the utility given the prices the disregarded utility given the prices and

then we get a very very small discount one over two thousand of the volume that is being traded and this kind of breaks all our ties it makes sure that utility is maximized but disregarded utility is also somewhat minimized and now if we go back to the very first example that we had in the stock the medieval market with Ellis Bob and Charlie we can actually run a non linear program that we implemented that is able to solve these very small instance sizes to optimality in a reasonable time and we can see that the optimal solution in this case is very similar to the third settlement that we saw so it's it's basically yeah everyone in this case is

happy we can just recapture the the utility so Alice is getting two eggs more than she asked for Bob is able to keep half a pair more that's his utility and then Charlie is getting utility of 1.5 pairs so makes sense it checks out so maybe I've lost you already with all the pricing and all that like how do we find this this these these numbers and you just say well this one's all great I want to trade just tell me just tell me what you build and and how we can use it and so the good news is that we have taken this auction mechanism and implemented it in a decentralized exchange and it's life on maintenance right now it's in a kind of private beta

state but we invite everyone this conference to talk to anyone with ignosi shirt and kind of sign up for our beta testing to give you access and the exchange is based on five-minute batch options that's something that we discussed in the very beginning this is kind of to prevent front running and also allow a longer time frame if you place a large order the market can kind of come in and kind of can start the competition to to counter your order primer primarily our use case is focused on reactivating the fragmented stable coin liquidity that we have so right now on the on the user interface that you'll be able to see there's a focus on stable coins so you can trade any stable coin directly for any other stable coin

without going through ether or any other intermediary but the really cool thing about this exchange protocol is that it's fully permissionless and I don't just mean non-custodial permission is but actually there is no master key adding new tokens is as easy as invoking a sending a transaction to the smart contract so the listing is permission is of course the trading is permissionless and even the settlement is permission this in that anyone can submit a solution the smart contract will run through the steps that I just outlined and come up with the score at the end and if the solution proposed is better than the current best one it will be replaced so anyone can well take part of the mention process and so as I said

it's a it's an it's in beta at the moment we're looking for user testing and we're looking for feedback so please speak to us after this after the start and now I'm happy to take some questions thank you do we have question in the room you you thank you what did you say it was a nonlinear program where it seems to me at the end you would you know you just had the sum of utility plus disregarded utility plus some scalar times the volume but like you don't have any penalty function or you know for

disregarded utility or anything like that so cou could you qualify that yes so the the validation is a very simple addition and multiplication of values which is why we can put this into a smart contract and run it in a single earring block to find a solution that maximizes this this value that is a non linear program because in order to compute the disregarded utility that is a function of the price that we set and of the settlement of the allocation so you have two variables that you need to multiply with another and that makes it a nonlinear program but if you find a way to express it as a non non as a linear program please speak to us will it be extremely happy to work

how do you ensure that the optimizer is fairly processed for the stakeholders and so you're talking that the ATM transaction might not be the algorithm G processing to find the base point of the equilibrium how do you answer to the stakeholders but it's fairly processed yeah so basically the the the solution finding is completely permissionless in that the the basically the answer to the stakeholder would be run your own optimization problem your own solver you can find if you don't trust that whoever is solving these problems at the moment is doing a good job and of course the

people who are doing it are rewarded rewarded with trading fees so there's an incentive to provide solutions if you don't trust that the solutions that are being provided are actually trying to maximize the score because actually maximizing it might be np-hard then you would have to run your own optimizer to basically compete and outbid bad solutions you hello first of all very great talk I really liked it and secondly in this formula we're just looking at you were

talking that you're breaking ties in favor of trading is this actually expressed in the formula or is it something else you need to do and it's expressed in the formula because we give a little bonus for volume so if you have a tie and you wouldn't match the tie you would have less overall trading volume and so if I submit the same solution but execute the tie then I have a slightly slightly better objective value have you investigated any solution or setup where the disregarded utility or utility you know behind or below your limit price will not be actually leaner

you notice the difference between what you get and what your limit price was but you know some kind of nonlinear dissatisfaction or satisfaction for getting the trade done which in a way would somehow probably give another angle at the bonus you give for the traded volume which could be another way of looking at I don't know if I ain't fair but you you you see what I mean like if I've got a limited price at 50 I want to sell something at 50 and yeah and I end up selling it at 52 you give me a utility of two but Franklin you know many situations I made you know it may my extra utility may be

less than that actually because I as soon as I get to trade down I'm happy and then I don't really care about the extra price I see and see and vice versa yeah so this kind of rare comes down to how do people express their preferences and right now we have this in this very simple limit sell orders because that's what people are kind of used to from traditional order books yeah it's definitely interesting to think about how we can make this more customizable one other thing that we're looking into but that is of course not implemented in this very first version is to allow you to actually express kind of dependencies like I only want this if I only get if I also get this kind of basket trades where you say this is not valuable to me if I don't have this as well this is

going to simplify your LTV optimization it also makes the problem itself a little bit harder to explain and more complicated as well the question well thank you a lot Felix thank you very much [Applause] you