Who will have the largest trade following?
1
380แน€8
resolved Jul 16
ResolvedN/A
86%Other
1.7%
George Vii
1.7%
Jack
1.8%
Michael Wheatley
1.8%
Gigacasting
1.8%
BTE
1.8%
S G
1.8%
Matt P
1.8%
Adrian

Scored based on total dollar volume of identical-direction trades made within one hour.

[ higher of 0 or the net amount traded in the same direction as the user, by any other users, in the hour after trading in any given market; ]



Jul 15, 11:22pm: Clone script (Python): ## Place API key in key.txt ## SET THESE PARAMETERS: CLONE = {'Jack': 1/200, } #'Olivia': 1/30,}# 'Gigacasting': 1/3} TIME_LIMIT = 60 * 60 * 1e3; PRICE_LIMIT = 0.03 ## import requests, json, time, zlib, pickle, shutil from collections import defaultdict URL = 'http://manifold.markets/api/v0' API_KEY = open('key.txt', 'r').read().split('\n')[0] def getMarkets(): markets = []; prior = None for i in range(100): try: m = requests.get(URL + '/markets', params = {'before': prior} if prior else {}).json() except: break if len(m) == 0: break; markets.extend(m) prior = m[-1]['id'] return markets markets = getMarkets() try: cache = pickle.load(open('cache.pkl', 'rb')) except: try: cache = pickle.load(open('cache.pkl.backups', 'rb')) except: pass print(len(cache)) errs = defaultdict(int); errs['YVDsNCQWr7hUrAiFiKIV'] = 5 def updateMarket(m): if errs.get(m['id'], 0) >= 3: return try: r = requests.get(URL + '/market/{}'.format(m['id']) ).json() print('updated {}'.format(r['question'])) cache['market/' + m['id']] = zlib.compress(json.dumps(r, sort_keys = True).encode('utf-8')) except Exception as e: errs[m['id']] += 1; print(e); time.sleep(0.1) def updateMarkets(): markets = getMarkets() for m in markets: c = cache.get('market/' + m['id'], None) try: c = json.loads(zlib.decompress(c)) except: updateMarket(m); continue; if c['volume'] != m['volume']: updateMarket(m) try: shutil.copy('cache.pkl', 'cache.pkl.backup') except: pass; pickle.dump(cache, open('cache.pkl', 'wb')) updateMarkets() users = requests.get(URL + '/users').json() uids = {u['id']: (u['name'], CLONE.get(u['name'])) for u in users if CLONE.get(u['name'], False)} for k, v in uids.items(): print(k, v)#print(uids) max_time = max([ max([b['createdTime'] for b in json.loads(zlib.decompress(v))['bets']] + [0]) for k, v in cache.items()]) s = set(); a = set() def runTrades(): for k, v in cache.items(): m = json.loads(zlib.decompress(v)) if m['outcomeType'] != 'BINARY': continue; bets = m['bets'][::-1]; if len(bets) == 0: continue; last = bets[0]['probAfter'] for b in bets: if b['userId'] in uids and b['createdTime'] > max_time - TIME_LIMIT: if b['id'] in s: break; if b.get('isRedemption', False): continue; cid, o, amt = b['contractId'], b['outcome'], b['amount'] u = uids[b['userId']] if amt < 0: amt = abs(amt); o = {'YES': 'NO', 'NO': 'YES'}[o] if (last - b['probAfter']) * (1 if o == 'YES' else -1) > PRICE_LIMIT: if b['id'] not in a: print('price past limit for ', m['question'], u[0], o, int(round(amt))); a.add(b['id']); continue; ramt = int(round(amt)); amt = int(round(amt * u[1])); if amt < 1: continue; print('\nTrading', m['question'], o, amt, '\n from', u[0], o, ramt, ); s.add(b['id']) try: submit(cid, o, amt); except Exception as e: print(e) print() def submit(cid, o, amt): r = requests.post(URL + '/bet', json = {'contractId': cid, 'outcome': o, 'amount': amt, }, headers = {'Authorization': 'Key {}'.format(API_KEY)}); try: c = json.loads(r.content); print(' ', c); s.add(c['betId']); except: print(r.status_code, r.content) while True: updateMarkets() runTrades() time.sleep(1);

Jul 15, 11:25pm: Inputs are the display name and clone ratio (e.g. 1/50 = M$1 per M$50 the user trades) for as many users as you'd like; and a time and price slippage limit (currently 60 minutes, *AND* no more than 3% price move); Market will resolve the % fraction of total volume by user, for anyone with a >1% total share.

Jul 15, 11:29pm: [fine print: all 'follow-ons' are capped at the user's net activity; e.g. if you bet M$1 and others trade M$30 the same way, it counts as M$1; if you buy M$50 and sell M$50, capped at M$0; code to be released in the future, and will count all activity regardless of intent]

Jul 15, 11:32pm: [[[correction: ..... except: try: cache = pickle.load(open('cache.pkl.backups', 'rb')) except: cache = {} print(len(cache)) ..... ]]]

Jul 16, 12:13am: Prior 30-day rankings with more egalitarian settings (M$1000 cap per market, M$200 cap per market-hour ): TOP 25, Quadratic Scaling, Final Resolution would be: Gurkenglas 0.261268 Pepe 0.128643 John Beshir 0.120275 Undox 0.078754 S G 0.058789 Michael Wheatley 0.047862 Jack 0.043325 Yev 0.033564 Predictor ๐Ÿ”ฅ 0.024368 Martin Randall 0.018564 BTE 0.017863 Gigacasting 0.015660 Matt P 0.015248 Gabrielle 0.013968 Duncan 0.013133 Austin 0.013100 George Vii 0.012721 Adrian 0.011645 Joel Becker 0.011523 Em of the Night 0.010374 [the main effect was to remove the up-arrow/down-arrow market from completely dominating rankings] Let the copy-trading (natural or algorithmic) begin!

Get
แน€1,000
to start trading!
Sort by:
With a million fixes, trailing 75-days (quadratic scaling, cap at M$200 per market-hour, and M$1000 per market), the people with the most "follow-on" trades to their bets: Jack 0.222091 Michael Wheatley 0.188215 Matt P 0.060662 George Vii 0.057339 S G 0.053561 John Beshir 0.048459 Predictor ๐Ÿ”ฅ 0.047033 Austin 0.040631 BTE 0.039848 Gigacasting 0.036006 J. F. Jurchen 0.034491 Martin Randall 0.031962 Adrian 0.027015 Bionic 0.025340 wasabipesto 0.019614 RoboTeddy 0.015186 James Grugett 0.014649 Joel Becker 0.013459 Scott Lawrence 0.013177 Trent Yazzo 0.011264
Trailing 30 days: Jack 0.210373 Michael Wheatley 0.210348 Gigacasting 0.073931 BTE 0.061987 Adrian 0.060381 John Beshir 0.055109 J. F. Jurchen 0.047022 Bionic 0.046919 George Vii 0.029562 wasabipesto 0.020173 James Grugett 0.019288 Matt P 0.018900 S G 0.016780 Martin Randall 0.016515 Forrest 0.016451 Predictor ๐Ÿ”ฅ 0.012697 Gavriel K 0.012342 1941159478 0.010809 Joel Becker 0.010335 Gurkenglas 0.009574 Franek ลปak 0.007727 HoosierDaddy 0.007601 Eli Lifland 0.007104 RoboTeddy 0.006955 Austin 0.005584 joy_void_joy 0.005534
Subject to verification, and with a cap of 500 for any one market-hour, the leaderboard for the prior 30 days would be: George Vii 0.281451 Gurkenglas 0.190007 Isaac King 0.106390 Adrian 0.091325 Pepe 0.081809 Bionic 0.075360 J. F. Jurchen 0.050264 Undox 0.047279 John Beshir 0.041267 Predictor ๐Ÿ”ฅ 0.034847 Will send only one bet, and then moderate without trading.
Raw totals, without the 1% cutoff: (very plausible in my experience; and rankings are almost invariant to market-hour caps of M$ 50, 100, 200) George Vii 0.133455 Gurkenglas 0.090095 Isaac King 0.050447 Adrian 0.043303 Pepe 0.038791 Bionic 0.035733 J. F. Jurchen 0.023834 Undox 0.022418 John Beshir 0.019568 Predictor ๐Ÿ”ฅ 0.016523 Yev 0.014501 Michael Wheatley 0.014001 BTE 0.013551 Gigacasting 0.012883 Jack 0.011764 Trent Yazzo 0.011194 Joel Becker 0.010202 S G 0.009977 Matt P 0.006817 Sam Casavant 0.006124
ยฉ Manifold Markets, Inc.โ€ขTermsโ€ขPrivacy