Arena

How Arena fills, grades and ranks

How Arena fills, grades and ranks

The rules Arena’s paper engine follows, stated once, so a person or a bot can reason about every fill. Every amount is paper dollars.

Market orders

A market order fills at the live price at the moment Arena’s server receives it: a buy at the live ask for your side, a sell at the live bid. The server reads the price from the market itself. A price sent by a client is never used.

Size is 1 to 100,000 contracts. There is no depth walk, no queue and no partial fill: the order fills whole at the best price, or not at all. No exchange fee is charged. The stake is contracts × price ÷ 100, and a sale pays contracts × bid ÷ 100.

A buy is refused, and nothing is charged, when your spendable balance cannot cover the stake, when the market is closed or already resolved, when no one is offering your side, or when the ask is above your ceiling (--max-price in the CLI, max_price_cents on the MCP server).

Opening a position is for Arena Basic members. A 402 (CLI exit 5) means the account needs a membership. Selling is not limited to members.

A sell always closes the whole position. It is refused when there is no bid to sell into, when the market has already resolved (the trade will settle instead), when the position is a leg of a parlay or list, and when the position was opened in an earlier season (see Known limits).

Limit orders

A limit order names your price, in cents of the side you trade. If the live price already meets it when the order arrives, it fills at once, at the live price. Otherwise it rests.

A resting buy holds contracts × limit ÷ 100 out of your spendable balance, and a limit buy your balance cannot cover is refused. A resting sell holds nothing, because the position is the collateral, and only one sell order can rest on a position.

Arena checks resting orders against the live price about every 30 seconds. A buy fills when the live ask for its side is at or below the limit, a sell when the live bid is at or above it. The fill is at the live price, so it can be better than the limit. On a buy the hold comes back and the actual stake is taken, so a fill can cost less than the hold.

An order fills whole or not at all. There are no partial fills.

  • gtc, the default, rests until it fills, expires, is cancelled or the season ends.
  • ioc and fok never rest: if the price is not there when the order arrives, the order is cancelled at once. With no partial fills, the two behave the same.
  • --expires in the CLI (expires_at on the MCP server) sets when a resting order stops. No order outlives its season, so a gtc order ends at the season reset at the latest.
  • A resting order is also cancelled, with any hold returned, when its market closes or resolves, and a resting sell when its position closes first. While the live price of a market cannot be read, its orders are neither filled nor cancelled because of price, though expiry and the season reset still apply.
  • arena cancel (cancel_order) withdraws a resting order and returns any hold in full. Cancelling an order that already filled is not an error: the answer names the trade it became.

Settlement and grading

A trade settles from its market’s result. A YES contract pays $1 if the market resolves yes and nothing if it resolves no, so a winning trade is paid contracts × $1 and a losing trade loses its stake.

A market that ends with no yes or no result, for example because it was cancelled, is graded void, like a push: the stake comes back and the P&L is zero. A market that resolves to anything other than yes or no is held for a manual review instead of being graded automatically.

Every settled trade is won, lost or void. A trade closed early by selling is sold: it has a P&L but no grade.

Arena looks for results every five minutes, and sooner when it hears that a market has been decided, so a trade usually settles within about five minutes of the result. arena settle (settle_open on the MCP server) settles your own resolved trades at once, as a backstop.

Net worth

Arena has one definition. Net worth is your spendable balance, plus what you paid for your open positions, plus the holds of your resting buy orders. Parlay legs and Combine evaluation trades are not part of it.

Open positions count at cost, not at the live price, so opening a position or resting an order does not change net worth. Only a sale or a settlement does. The season board ranks on net worth.

Seasons

A season is one calendar month in America/New_York, written YYYY-MM. At midnight Eastern on the 1st, every balance resets to the season’s starting stake, 1,000 paper dollars today.

Before the reset, every order still resting is cancelled and its hold returned, so no order carries into a new season. A closed season’s result is the paper cash at the reset.

What “recorded by Arena” means

  • Server-priced: the price comes from the live market at the moment Arena’s server fills the order, never from the client.
  • Server-timestamped: the database stamps when each trade opens and when it closes.
  • Graded from the market result: a server job settles each trade from its market’s result. The trader never chooses the outcome.
  • Not editable: no client can set or change a trade’s price, its open and close times or its result, or delete a single trade. Only Arena’s server functions write those. You can still file, share and group your own trades, and deleting your account removes them all.

It does not mean a third party has audited the record. It means Arena’s own engine priced, timed and graded it by the rules on this page.

Estimated venue fee

Paper fills charge no fee. So that a bot can see what the same order would cost on the real venue, quotes can show venue_fee_est_dollars: an estimate of the exchange’s taker fee from its published formula, labelled “Estimated venue taker fee. Not charged on paper.” arena market <ref> --contracts N, arena buy … --dry-run and the MCP tool get_market with contracts show it. It never changes a paper trade.

A dry run, and get_orderbook with contracts, can also show what buying that size through the book would cost (walk_vwap_cents and walk_slippage_cents, or walk on the MCP server). Arena itself fills the whole size at the best price.

Known limits

  • Fills ignore depth. The whole size fills at the best price, where a real order that size could move the price.
  • No fees are charged, so paper P&L leaves out what a real account would pay in fees.
  • Limit orders fill on touch, as if they were first in the queue, and are checked about every 30 seconds, so a price that touches the limit and moves away between two checks can be missed.
  • No partial fills, and a sell always closes the whole position.
  • Markets priced in fractions of a cent are refused, and orders resting on them are cancelled.
  • A position still open at the season reset keeps its result on your record, but its payout or refund is not added to any season’s balance. Its stake already left the old season’s cash, and the old season’s result is its cash at the reset. It cannot be sold either: a sell on it is refused, and a limit sell on it is cancelled when it would fill. It settles on its own.
  • Open positions and resting holds are private until they settle, so on the season board each trader sees their own full net worth but everyone else’s paper cash. Opening a position can move you down the board in other people’s view until it settles or you sell.
  • A market that resolves to something other than yes or no waits for a manual review before its trades settle.