An experiment in crowd dynamics using bet sizes.
TLDR: The YES side wins if they each bet an average >=1K mana each, excluding YES users that bet >3K or <10 mana (this can be found on the Trades tab or API, not the Positions tab)
This means richer YES users can bet >1000 mana to help cover poorer YES users. But the 3K limitation means they can only 'cover' a limited number of others. If too many people try to take advantage of this generosity by betting YES with less than 1000, the YES team will fail.
If you bet 10-3000 mana YES on this market, you are contributing toward the YES team's average and betting on the outcome.
If you bet 3001 or more mana on this market, you are betting on the outcome, but you are not counted toward the YES team's average. The same applies to YES traders who bet under 10 mana.
If you bet NO you are betting on the outcome of the market but not impacting the YES team's average per person.
I reserve the right to N/A if i deem shenanigans have compromised the integrity of the answers or spirit of the question.
Shares version: /strutheo/resolves-at-1k-traders-to-no-unless
@strutheo Their algorithm seems to be plain trash though. Buy M10 YES, and then buy M3 NO, and it shows that you spent M13.
@SavioMak are you sure? I just tested this by buying 10 mana YES and 100 mana NO, and it shows 47 mana spent which makes sense.
never mind. It shows 47 mana for me, but it shows 110 in the positions tab.
import requests
def main():
users = {}
bets = requests.get("https://api.manifold.markets/v0/bets?contractSlug=resolves-no-at-1000-traders-unless").json()
for bet in bets:
if bet["amount"] > 0: # Ignore sell orders
user_id = bet["userId"]
sign = 1 if bet["outcome"] == "YES" else -1
if user_id not in users:
users[user_id] = sign * bet["amount"]
else:
users[user_id] += sign * bet["amount"]
for user_id in users:
userinfo = requests.get(f"https://api.manifold.markets/v0/user/by-id/{user_id}").json()
username = userinfo["username"]
print(f"{username}: {users[user_id]}")
This ignored sell orders and just sums (total mana spent on YES - total mana spent on NO)
Bayesian: -190
Stralor: -80
SG: 125
Joshua: 10
SavioMak: -496.23334496689125
EliJohnson: 9
acc: -11.192526006967842
Clark: -35
reed: -10
RichieLourie: -15
Bohreromir: 4
SamuelRichardson: -10
Edvirtus: -10
Voidvamp: -20
@SavioMak maybe we can just ignore selling and just look at the one max bet size they make? however you want to resolve it is ok
The ideal way to do this is probably to consider sell orders and buying in opposite direction as proportionally reducing the mana position. (so in my example the person now holds M50 in shares afters selling). This is insanely difficult to code as it requires a complete simulation of the bets, so I won't code this right now. I believe the resolution will be obvious enough that some variation of the code above can show that this market definitely resolves NO.
i hate this change to shares instead of mana, we're going back
here is your 'shares' one: https://manifold.markets/strutheo/resolves-at-1k-traders-to-no-unless
@SG I have bet NO based on the expectation that
1000 traders will take a long time
Coordination of YES traders become significantly more difficult across loong time periods, especially due to abandoned accounts
The lack of a fixed resolution time induces more difficulty to manipulation
The market does not get significantly easier for YES traders as the probability goes down (this is violated from the change from mana to shares)
The meta-level market dynamics based on most people having the same expectation drives the market price down consistently, making me mana over time from loans.
I would expect better (not suggesting large change of resolution criteria that is already coherent) from someone who is in Manifold for a long time, let alone someone in the team.
@strutheo give it something with more identity. spitballing:
"Coordinated Optimists vs. Brave Naysayers"
"The Team vs. The Rich"
@strutheo shares are usually used, because you can see how many shares someone bought in the positions tab. it's almost impossible without the api to know about amount of mana someone bought shares for, esp if they do a lot of buying and selling
@Bayesian i tried to make it clearer in the description. couldnt i just look at position? that is what i am going off of. i can edit it to say that.
@strutheo position = shares != mana bet, thus my question! it's fine either way imo, but mana bet will be a nightmare to figure out without the API
@strutheo the position tab tells us about amount of shares owned. but if you bought 1000 shares at 30%, you spent 300M. If you bought 1000 YES shares at 10%, you spent 100M. etc. so you can't know from that how much mana someone spent on their shares, unless you look at the entire bet history, parts of which just doesn't display bc it's bugged, so gotta use the api, so ahh
@strutheo You should just change the market to use shares (or "payouts"). Otherwise, no one will be able to follow the market.
@SG That's... basically making the YES team getting a boost of 1x to theoretically infinite depending on the market probability??
@SavioMak yeah im sorry i didnt get any of this :( i wanted to use mana not shares but i guess that isnt possible
@strutheo Basically, 1 mana is always 1 mana, but 1 mana can be 1 YES share, 10 YES shares, or 100 shares depending on the current market probability.
If this market is fixed at 10%, then YES traders can get 3000 shares by spending only M300.
@strutheo Do you understand it now? I believe it is quite a big change to the resolution criteria and I want it to be reverted.
@SavioMak i am honestly too lazy to check the api or care about this stuff, so im just doing what is easiest haha. i can make another for trades...? if youre willing to help get the data
@strutheo Alright I commit to writing the code to get the mana position data at 1000 traders if the resolution is not obvious and no one else wrote the code for it.