På prognosmarknader med N utfall har jag hört att de kör en separat JA/NEJ-orderbok för varje utfall och förlitar sig på arbitrageörer för att "balansera" sådana marknader. Om så är fallet, varför? Varför gör inte börser den implicita matchningen atomärt för att öka likviditeten?
Till exempel, om det finns 3 utfall och jag lämnar in ett limit NEJ med 30% chans att varje utfall inträffar, så kommer dessa order att ligga kvar tills en arbitrageur matchar alla 3 för totalt 90 cent. Efter att jag lagt de två första beställningarna ska bytet istället visa en underförstådd JA-beställning på 40 cent vid det tredje utfallet, och förhindra att jag lägger min tredje beställning. Detta verkar strikt öka likviditeten för användarna, vilket ger dem bättre priser, snävare spreadar och även högre volym för börsen eftersom varje order som kan matchas kommer att matcha. Dessutom matchar arbitragörer inte nettonoll implicita affärer eftersom arbitragen inte vinner alls, medan börser gör det utan problem.
Slutligen verkar detta inte särskilt beräkningsmässigt komplext för matchningsmotorn. För en enda prediktionsmarknad kan den helt enkelt behålla den aktuella summan av de bästa buden och den aktuella summan av de bästa begärda priserna för vart och ett av de N utfallen. Detta är en O(1)-operation på orderplacering. Om summan av de bästa buden skulle överstiga 1, eller summan av de bästa säljarna skulle gå över N-1, matcha order över alla utfall till en implicit handel. Detta är O(N) men du matchar N ordningar.
Jag kan för närvarande inte komma på något sätt att effektivt leverera hela "implicit orderbook", men åtminstone kan touch-priset hanteras extremt effektivt med minimal omkostnader. Touch-mängden kan serveras om en min-heap (över orderstorlek vid beröring) upprätthålls, även om detta är mindre effektivt än O(1) per order (kan vara O(log n))
1,77K