MarkoutDocs

How it works.

What the bots do with your orders, what a funding pair costs and when it pays back, who charges which fee, and what the keys can and cannot do.

What it does

Markout runs trading bots on your own account at a perp DEX. Your money stays on the venue. The bot gets a key that can trade and cannot withdraw.

You Funds stay in your venue account
Markout Places and cancels orders on the settings you chose
Venue Fills, fees and points land on your account

Cost per $1M

Volume is not free. A bot pays fees, and the price sometimes moves against the small position it holds. Cost per $1M is everything a run lost, per million dollars it traded. It is the one number to compare venues, markets and settings by.

( fees − price result ) ÷ volume × 1,000,000
  • Fees $3.00
  • Price moved against the position $2.00
Example: $100,000 of volume cost $5.00, so the run cost $50 per $1M. The app shows an estimate of this number on the launch button before you start, and the measured number while the bot runs.

Maker bot

The maker bot keeps buy and sell orders resting in the book, at the best price or a little behind it. The orders are post-only: they wait to be hit and never cross the spread, so every fill pays the lower maker fee.

  1. Rest on both sides. When the price moves, the orders follow it.
  2. One side fills. The bot now holds a small position.
  3. The other side works it off. Both fills count as volume.
  4. Repeat until the target volume or the max loss.

You set three numbers: the capital the bot may use, the volume you want, and the most you accept to lose. The estimate then gives the cost per $1M and the hours to the target.

Style: where the orders sit and how much the bot may hold

A style is one point on a square. Left to right moves the orders away from the best price. Bottom to top lets the bot hold a bigger position before it stops adding to it.

Careful, 20 %Bold, 60 %
Tight, at the best priceWide, 8 bp off
Sharp
The default. Almost at the best price, small position. The most fills per hour.
Patient
A few bp off the best price. Far fewer fills, so slower.
Bold
At the best price with a bigger position. More volume, more swing.
Wide & bold
The fewest fills per hour, the slowest to a target.
In our runs wide orders filled 4 to 11 times less often and did not cost less per $1M. Wide is slower, not cheaper.

Protection: four limits, from the first to the last

First Exposure limit Past it the bot stops adding to the position and only works it off.
Then Stop-loss on the venue A stop order kept on the venue for the whole position.
Then Max loss Your dollar limit for the whole run. The bot stops there.
Last Close Maker orders first, then a market order for what is left.
Stop-loss distance
From the loss budget that is left, and never closer than 3 spreads or 10 bp, so normal noise does not trigger it. After a stop-out the side that built the position waits 30 s.
If our server is down
The stop order is on the venue, not with us, so it still works. When the server is back the bot picks up where it was.
Stopping a bot
It cancels its orders and closes the position: up to 120 s with maker orders, then at market. "Close fast" waits 15 s.
Max loss
Counts fees and price moves together. It is a limit the bot acts on, not a guarantee: in a fast market the close can land past it.

Taker bot

Some venues score taker volume higher than maker volume. The taker bot buys at the ask and sells at the bid about a second later, at a steady pace. Nothing rests in the book and the position lives for about a second.

Open An immediate order across the spread. Pays the taker fee.
Close The opposite order for the whole position. Pays the taker fee again.
2 × taker fee + spread = cost of one round trip
Example: a 2.5 bp taker fee and a 1.0 bp spread make 6.0 bp per round trip. A round trip is two fills, so that is 3.0 bp of the volume, or $300 per $1M.
When it waits
While the spread is wider than 3 taker fees (at least 1 bp). Paying more spread than fee defeats the point.
Pace
6 to 600 fills per hour. By default the pace that reaches your target in the estimated hours.
Protection
The close is the stop, so no stop order is placed. The max loss and the target work as for the maker bot.

Funding pairs

A perp has no expiry, so venues keep its price near the spot price with funding: a small payment between longs and shorts every hour, or every 4 or 8 hours. When the rate is positive, longs pay shorts.

The same asset has a different rate on each venue. A pair is a long on the venue where the rate is low and a short of the same size where it is high. The price moves cancel out. What is left is the difference between the two rates: the carry.

Long on venue A Rate +0.0010 % per hour You pay 0.0010 %
Short on venue B Rate +0.0050 % per hour You receive 0.0050 %
0.0050 % − 0.0010 % = 0.0040 % per hour, or 0.4 bp
The carry of this example. Over a year 0.4 bp per hour adds up to 35.0 % of the position: the gross APR. Every example below uses this pair.

What a pair costs: four fills

To open the pair you trade twice, and to close it twice more. The cost of the pair is the fee on these four fills. It depends on how the orders are filled, which is the switch Maker / Mixed / Taker above the table.

OpenBuy on A
OpenSell on B
CloseSell on A
CloseBuy on B
Maker on both legs 3.0 bp All four orders rest and wait: 1.0 + 0.5 + 1.0 + 0.5 bp. Cheapest, and neither fill is certain. Pays back in 8 payments, 33.5 % net over 7 days.
Mixed: one rests, one crosses 9.0 bp Rest on A, and the moment it fills cross on B: 1.0 + 3.0 + 1.0 + 3.0 bp of fees and 1.0 bp of spread on B. You are never left with one leg. 23 payments, 30.3 % net.
Taker on both legs 17.0 bp All four orders cross: 4.0 + 3.0 + 4.0 + 3.0 bp of fees and each market's spread, 2.0 + 1.0 bp. In at once and the most expensive. 43 payments, 26.2 % net.
Example fees: venue A 1.0 bp maker and 4.0 bp taker with a 2.0 bp spread, venue B 0.5 bp maker and 3.0 bp taker with a 1.0 bp spread. In Mixed the app rests on the leg where that is cheaper and names it under the cost. On an asset's page the block "Three ways to fill this pair" shows the three side by side for a real pair.
What is in the cost
Each venue's fee on each of the four fills, the Markout fee where it is on, and the current spread of each market you cross.
What is not
The price moving between your two orders while you open or close, and the cost of moving money between venues.
Which one
Maker when you can wait for both orders to fill. Mixed when you want the hedge the moment you are in. Taker when the rate is a spike you want now. The dearer the fill, the longer the hold has to be to earn it back.

When it pays back

A pair starts below zero by its cost. Funding is not paid by the minute: it arrives at each venue's payment time, to whoever holds the position then. So the pair climbs in steps, and it has paid back at the first payment that takes it above zero.

Starts at the cost, −3.0 bp 8th payment: paid back Each payment adds 0.4 bp
The example with maker fees and both venues paying every hour: 3.0 bp ÷ 0.4 bp is 7.5, so the eighth payment covers it and the table says "8 h". If one venue paid only every 8 hours, one payment of 3.2 bp would cover it, and the table would say "1 payment" with the time left until that payment.
"Pays back" in the table
The number of payments of the slower leg that cover the cost at the rate right now, and the wait until the last of them. With Mixed costs the same pair needs 23 payments, with Taker 43.
Why not "break even in 0.7 h"
Dividing the cost by the hourly rate gives a time that no venue pays on. If you close before the payment time you collect nothing and still pay the four fills.
It assumes
That the rate stays where it is until then. It often does not, which is what the next two parts are for.

Net APR: the carry minus the cost, over the time you hold

carry per hour × 8,760 − cost × 8,760 ÷ hours held = net APR
Held 24 h 24.1 %
Held 7 d 33.5 %
Held 30 d 34.7 %
  • Net APR
  • The 3.0 bp round trip, as a share of 35.0 % gross
You pay the round trip once, so the longer you hold, the less it weighs. Pick the hold with the switch 24h / 7d / 30d.
Which rate
The table ranks and shows net APR on the pair's average carry of the last 7 days, not on this hour's rate. One hour's spike does not lead the list.
"now" under a number
Shown when this hour's rate is more than twice the 7 day average: the pair is in a spike that may not last.
APR, not APY
No compounding, and no price result. It is a rate on the position size, and with leverage the margin you post is smaller than the position.

How past holds ended

A rate can fall or flip the hour after you enter. So for every pair we replay its history: for each past hour when you could have entered, we add up the funding over the next 24 hours, 7 days or 30 days and take the cost away.

Held 7 d, example
74 %in profit, of 2,482 entry hours
+15.6 bpthe middle outcome
−16.0 bpthe bad tenth: one entry in ten ended here or worse
This is the column "In profit after 7d" in the table and the block "How past holds ended" on an asset's page. The entry hours overlap, so read it as "of the past entry hours", not as odds. Past funding is not a forecast.

How a pair runs here

"Launch pair" starts two maker bots, one on each venue. The long leg leans long and the short leg leans short. Both keep quoting on both sides, so a pair also makes maker volume while it collects the carry.

Long leg, venue A A maker bot that leans long Its own margin, stop-loss and max loss
Short leg, venue B A maker bot that leans short Its own margin, stop-loss and max loss
Each bot carries about half of its exposure limit in its direction: with Sharp, about 14 % of its capital times leverage. The table's numbers describe a position held at full size for the whole period, so a pair of bots earns the carry on the part it actually carries.

What can go wrong

The rate changes
The carry can shrink or turn negative. Then the pair pays instead of earning, and closing early still costs the four fills.
The legs are on two venues
Each leg has its own margin. A fast move can stop out or liquidate one leg while the other stays open, and then you hold a plain long or short.
Prices differ between venues
The two markets do not trade at the same price at every moment. The gap can widen while you hold.
Payment times differ
One leg can pay every hour and the other every 8 hours. Between the two you have paid on one side and not yet received on the other.
Reference rows
A row marked "reference" uses a large exchange's rate for comparison only. It cannot be launched here.

Fees

Two parties can charge a fee on a fill, and the app always shows them apart.

Goes to the exchange Venue fee Set by the venue, per fill, in bp of the fill's size. Maker is lower than taker. On some venues maker is zero or a rebate.
Goes to us Markout fee 0.5 bp per fill on venues with a builder program. During launch it is 0 everywhere.
1 bp is 0.01 %. A 1.0 bp fee on a $1,000 fill is $0.10, and on $1M of volume it is $100. No subscription and no token.
Where you see it
In the window where you connect an account, on the launch button as part of the cost per $1M, and on every bot's page as fees paid.
Hyperliquid
Many stock, index and commodity markets on TradeXYZ, Entropy and Paragon have a far lower maker fee than the core markets: 0.29 bp against 1.5 bp.

Keys and safety

You connect a venue with a key made for trading. On Hyperliquid it is an API wallet, which signs orders and has no right to move funds.

The key can Place and cancel orders
The key cannot Withdraw or transfer
With us it is Encrypted, never shown again
The key is stored encrypted on our server and the app never returns it. You can revoke it at the venue at any moment. Stop the bots first, so no position is left open.
Your limit
Every bot has a max loss in dollars, set by you before launch.
One bot per market
One account runs one bot on a market at a time, so two bots never trade against each other's orders.
Legal
The Terms and the Risk disclosure are part of using the service.

Venues

One Hyperliquid key also trades the exchanges built on it. They are separate order books with their own markets and fees, and the app lists them under their own names.

Hyperliquid
The core markets, and with the same key TradeXYZ, Entropy and Paragon: stocks, indices, commodities and FX as perps. Funding is paid every hour.
Hibachi
Funding is paid every hour.
RISEx
Funding is paid every hour.
Extended
Funding is paid every hour.
Paradex
Funding accrues continuously while the position is open.
GRVT
Funding is paid every 1, 4 or 8 hours, by market, to whoever holds the position at that time.
TxFlow
Waiting for its mainnet.

Words

bp
Basis point: 0.01 %. On $1M, 1 bp is $100.
Maker, taker
A maker order waits in the book for someone to trade against it. A taker order trades against a waiting order at once and pays more.
Spread
The gap between the best buy price and the best sell price.
Post-only
An order that is refused if it would trade at once. It can only be a maker order.
Position, exposure
What the bot holds after a fill, and its size as a share of what the capital allows.
Markout
Where the price went after your fill. If it went against you, the fill was a bad one. It is the part of the cost that is not fees.
Funding, carry
The payment between longs and shorts on a perp, and the difference between two venues' rates that a pair collects.
Open interest
The total size of open positions on a market. A pair is only as large as the smaller leg's market can take.
Round trip
Opening and closing. For one market two fills, for a pair four.

See the numbers on live markets.

Open Markout