Show docs pages

Spreader

Spreader trades two markets with the same base asset on one account. The lead is priced off the hedge's book under a spread limit, and the hedge follows.

This page covers how Spreader works its two legs, which markets can pair, each field in the ticket, how the ticket fills in the spread limit, what the order sheet shows, how a Spreader ends, what you can change while it runs, and what it does when something goes wrong.

What Spreader does

Spreader works two legs on the same exchange account. The lead is the market and side you picked in the ticket. The hedge is the opposite side of a second market with the same base asset.

Aura prices the lead off the hedge's book so the spread between them stays within your spread limit: Max spread when you buy the lead, Min spread when you sell it. The hedge then covers what the lead filled. The hedge always follows the lead, so the spread limit is best effort.

Which markets can pair

Both legs trade on the same account, on the same exchange, in the same base asset, and they must be different markets.

ExchangeLegs that can pair
OKXSpot and perpetual markets, in any pairing. Inverse perpetuals can't be a leg.
CoinbaseSpot and futures markets, in any pairing.
KrakenNone. The ticket reads "No market on this account can hedge …".
BybitSpot and perpetual markets, in any pairing.

Aura does not compare the two legs' quote currencies. If they differ, the spread limit bounds a ratio of prices quoted in two currencies, and any exchange rate between them is yours to account for.

How it works

The spread

The spread is measured in basis points of the hedge price: (lead price ÷ hedge price − 1) × 10,000.

When you buy the lead and sell the hedge, the spread must stay at or under your Max spread. When you sell the lead and buy the hedge, it must stay at or over your Min spread. A negative limit means buying the lead below the hedge price, or accepting a sell below it.

Pricing the lead

The hedge price Aura counts on is the hedge's bid when you buy the lead, and its ask when you sell it. The limit turns that into the Implied lead price: the hedge price × (1 + limit ÷ 10,000). The ticket shows it live from the hedge's book.

  • A Post lead rests like Chase. It rests at the more passive of Chase's own price, your Lead limit price, and the implied lead price, and requotes as either book moves.
  • A Take lead sends IOC orders like Sniper, but only while it can cross the lead's book within the implied lead price. It never pays past it.

The lead's orders are never larger than the size showing at the hedge's best price, and they are sized so the hedge can cover them in whole lots of the hedge market.

The spread now

The spread now is what the lead would get this moment: its price at the touch it trades at, against the hedge price above. A Post lead trades at its own side (its bid when you buy), and a Take lead at the far side (its ask when you buy).

The limit starts empty. At its top right, Now 3.4 bps shows the spread now, rounded to a tenth of a bp so the lead reaches its touch: up for Max spread, down for Min spread. Click it to set the limit to that figure. A Post lead then joins its touch, and a Take lead takes it at once.

  • The limit does not follow the market. Click Now again to take the spread of that moment.
  • The limit stays when you change the side, the hedge market, or the lead's Post / Take.
  • Now shows once both books have arrived. The order can't be sent until the limit has a value.

The hedge follows

The hedge covers what the lead has filled, less any fee the exchange took in the base asset, in whole lots of the hedge market.

  • A Take hedge sends an IOC on each lead fill.
  • A Post hedge rests like Chase, at or just inside its best price, and is enlarged as the lead fills.

The hedge has no price limit of its own. A taking hedge that fills after the book moved lands the realized spread past your limit by that move.

The lead ahead cap

The Lead ahead cap bounds how much the lead may have filled or resting beyond what the hedge has covered. When the lead reaches its cap, it waits for the hedge to catch up.

Never one leg alone

The lead posts only while both legs' books and trading rules are live. When the hedge's book goes away, Aura pulls the resting lead order.

Balances

On a spot leg, each order is kept within what your available balance can pay for, as in Chase. A hedge that pays with what a spot lead delivers, such as a hedge selling the BTC a buying spot lead receives, is never limited this way: it has to follow the lead's fills. A lead on an OKX or Bybit perpetual is kept within your margin, as in Chase. Its fills open a position rather than deliver coins, so a spot hedge behind it is kept within the balance it pays with. A hedge on a perpetual is never limited.

Aura does not check balances across the two legs. Set up the legs so the lead can trade from what you already hold. If the lead needs what the hedge would deliver, for example selling a spot lead whose base asset you do not hold, the exchange rejects the lead for insufficient balance.

When a spot hedge pays with a coin your available balance cannot cover for the whole quantity, the ticket says so under the Hedge row. An example is selling BTC you do not hold behind a perpetual lead. The exchange would reject the hedge, and the order would stop with Needs attention · Hedge leg can't be traded, leaving what the lead filled unhedged. The warning never stops you from placing the order.

Parameters

The ticket's Legs section holds the two legs. Each leg has a Post / Take toggle.

ParameterWhat it doesDefault and limits
QuantityThe lead's quantity, in the base asset. The hedge covers what the lead fills.Required. Base asset only. At least one hedge lot and the minimum order size of both markets.
Lead Post / TakePost rests at the touch inside the spread limit and requotes, in place where the exchange allows it. Take sends IOC orders whenever the spread is inside the limit.Default Post.
Hedge marketThe second market. The picker lists only markets on this account that can hedge the lead. The hedge's side is always the opposite of the lead's.The first market in the list.
Hedge Post / TakeTake sends an IOC on each lead fill. Post rests at its touch and is enlarged as the lead fills.Default Take.
Max spread / Min spreadMax spread when you buy the lead: the most it may pay over the hedge price, in basis points. Min spread when you sell: the least it must earn over it. Fees are not in it.Required. Type it, or click Now to set it to the spread now. See The spread now. Must be above -10000. Up to 14 decimal places.
Implied lead priceRead-only. Where the limit puts the lead right now. Blank until the hedge's book arrives.—
Lead ahead capHow much the lead may be filled or resting beyond what the hedge has covered, in the base asset.Filled in at a fifth of the quantity, and follows it until you type a value. Clear the field to go back to the fifth. Must be positive, at least the larger of the two markets' minimum order sizes, and no more than the quantity.
Lead limit priceOptional. An absolute price cap on the lead, on top of the spread limit.Default none.
Lead reduce onlyThe lead only reduces your current net position.Default off. Shown on a perpetual lead only.
Hedge reduce onlyThe hedge only reduces your current net position. When that position is used up, Aura pulls the lead and the order closes.Default off. Shown on a perpetual hedge only.
Post onlyEvery Post leg sends maker-only orders. An order that would take on arrival is rejected or cancelled by the exchange and requoted.Default off. Shown when at least one leg is Post.
StartsNow sends the order on submit. At holds it as scheduled and starts it at the time you pick.Default Now. At offers 15 minutes ahead. At most 365 days out.
ExpiresNever is good till cancelled. At cancels both legs at that time and closes the order as Expired.Default Never. At offers 1 hour ahead. At most 365 days out, and after the start.

Lead ahead cap, Lead limit price and Post only sit under More options, a row that reads them back, for example "Ahead cap 0.1 BTC · Lead limit None · Post only Off". Click it to open them. While one of them can't be sent, the row is outlined in red.

The automatic Lead ahead cap is rounded down to the lead's lot, and is at least the larger of the two legs' minimum order sizes.

Below the submit button, Est. lead fee and Est. hedge fee estimate each leg's fee. A Take leg uses your taker rate. A Post leg uses the maker rate with Post only on, and a maker-to-taker range without it. The button reads, for example, "Buy BTC-USDT / Hedge BTC-USDT.PERP" until you enter a quantity.

While it runs

StatusMeaning
scheduledWaiting for its Starts time.
newAccepted, nothing working at the moment.
armedWith a Take lead, waiting for the spread to reach your limit. Hover it to see the limit.
workingAn order is working on either leg.
waitingEither leg is waiting for market data.
amendingApplying your changes.
expiringCancelling both legs at its Expires time.
cancellingCancelling at your request.

The order sheet

The headline shows:

  • Filled: the lead's fill against the quantity.
  • Avg fill: the lead's average price.
  • Realized spread: the spread the two legs' fills realized, in bps, with your limit under it, for example "Limit ≤ 5 bps".
  • Fees: what both legs paid, in bps of both legs' filled value, with the share of both legs' fills that filled as maker. When the two markets are quoted in different coins, the hedge's fee shows apart, for example "+ 1.41 USDT hedge", with no bps. While a leg has filled and its fee isn't known yet, Fees shows — rather than the other leg's fee alone.

The Legs row replaces the fill meter. It draws one bar per leg against the quantity:

  • The lead's bar shows what filled and what rests. While the order works, a mark across it shows where the lead ahead cap stops the lead. Hover the bar to read the cap as a share of the quantity.
  • The hedge's bar shows what it covered, with any unhedged amount hatched in amber.

Its lines say how hedged the order is: Unhedged … in amber, Fully hedged, or Nothing filled yet. While it works, a second line reads Lead at its cap, waiting for the hedge or Lead … under its cap. Before it starts it reads Not started, while cancelling Cancelling both legs, and when the order needs attention Needs attention.

Beside Max spread or Min spread in the Order card, a note shows the spread the lead would get right now, for example Now 6.1 bps. It turns amber once the spread is past your limit. There, a Post lead rests behind its touch and a Take lead does not fire. The Order card also lists the Hedge market.

After a Spreader finishes, the TCA column shows the realized spread against the mid spread at arrival, and the spread net of fees against crossing both books at arrival. See Execution cost.

How it ends

The status chip shows the outcome: filled, cancelled or part. cancelled. It reads rejected only for an order above your Max USD notional or one that never reached the exchange because the account had no connection. Every Spreader ends with a summary of what was unhedged, what was hedged, and the realized spread. For a filled or cancelled order, hover the status to read it. For other ends, it appears in the red box at the top of the order sheet. The Legs row also reads Ended fully hedged, Ended with … unhedged, or Ended with nothing filled.

ReasonWhat happened
FilledThe lead reached its quantity and the hedge owes less than one order the exchange accepts. That leftover is shown as unhedged.
CancelledYou cancelled, or the order needed attention and Aura stopped both legs. Aura cancels both legs and does not hedge what is left; the unhedged amount is yours.
ExpiredThe order reached its Expires time. Aura cancels both legs, as for a cancel.
Rejected by the exchangeThe exchange rejected the lead for a reason that sending again cannot fix. The lead stops and the hedge finishes covering what the lead filled. The exchange's reason appears beside it.
Stopped after repeated rejectionsThe exchange rejected the lead 5 times in a row. Rejections for the exchange's rate limit don't count. The lead stops and the hedge finishes covering.
Remainder below the exchange's minimum sizeWhat is left of the lead is below the exchange's minimum order size. The lead stops and the hedge finishes covering.
Remainder below the exchange's minimum order valueWhat is left of the lead is worth less than the exchange's minimum order value. The lead stops and the hedge finishes covering.
Position already closedA reduce-only leg found no position left to reduce. On the hedge, Aura pulls the lead and closes once nothing rests.
Cancelled by the exchange for marginThe exchange's risk or margin controls cancelled a lead order. The lead stops and the hedge finishes covering.
Order could not be sentThe account's current settings cannot carry the lead.
Above your Max USD notionalThe order is larger than your max USD notional. See Settings.
Amended order was refusedAura accepted an amend, but the order with its new values failed Aura's checks.
Exchange account disconnectedThe account had lost its connection, or the exchange had refused its API key, before the order reached the exchange. See Connection status.
Exchange account could not connectAura could not connect the account to send the order.
Closed when the paper account was restoredYou reset a paper account whose saved state Aura couldn't restore.

Needs attention

When the hedge cannot be traded, Aura stops both legs and marks the order needs attention. The order sheet shows Needs attention · Hedge leg can't be traded. This happens when the exchange rejects the hedge for good, when its risk or margin controls cancel a hedge order, or after 5 hedge rejections in a row. A rate limit never does: the hedge waits and sends again. Nothing more is sent on either leg, and whatever the hedge did not cover stays unhedged. See Managing orders.

Amending

Open the order and click Amend, or click the pencil on its row in Open Orders. In the Order column you can change:

FieldNotes
QuantityMust stay above what the lead has filled. If the new quantity is below the Lead ahead cap, lower the cap with it.
Max spread or Min spreadA number of bps above -10000, with at most 14 decimal places.
Lead ahead capPositive, at least the larger of the two markets' minimum order sizes, and no more than the quantity.
Limit priceThe lead's limit price. Leave it empty to remove it.
ExpiresUnchanged, At a time, or No expiry (GTC). On an order with no expiry, the choices are No expiry (GTC) and At a time.
StartsOnly while the order is scheduled: Unchanged, At a time, or Start now.

The Hedge market, Lead leg, Hedge leg, Post only and the reduce-only switches are fixed and stay dimmed.

Click Apply to send only what you changed, or Discard to leave without sending anything. Aura cancels the resting orders on both legs, checks the new values the way it checks a new order, and starts both legs again. What the hedge already covered stays covered. A lower cap holds the lead back until the hedge catches up.

What can go wrong

SituationWhat Spreader does
Either leg has no book or no trading rulesThe lead posts nothing and shows waiting. A resting lead order is pulled when the hedge's book goes away.
The hedge's book moves while a taking hedge is in flightThe realized spread can land past your limit by that move. Realized spread shows what you got.
The lead is rejected for goodThe lead stops, the hedge finishes covering, and the order ends with the lead's reason.
The hedge is rejected for goodThe order stops with Needs attention · Hedge leg can't be traded.
The exchange rate-limits either legThat leg waits out the exchange's window, 2 seconds on OKX and 1 second on Coinbase, Kraken and Bybit, then sends again, as many times as it takes. A rate limit never counts as a rejection, never ends the order and never marks it needs attention. A resting order the exchange won't move for its rate limit stays where it is until the wait is over, unless the hedge's market moves so that the lead's price no longer meets your Max spread or Min spread: then the lead is cancelled, and placed again inside your limit when the wait is over.
Insufficient balance on either legThat leg retries at half the refused size and keeps its later orders at that size until one fills. After 5 rejections in a row on the lead, the lead stops, the hedge finishes covering, and the order ends with Stopped after repeated rejections and Insufficient balance beside it. On the hedge, the order is marked needs attention.
The lead's remainder falls below the exchange's minimumThe lead stops, the hedge finishes covering, and the order ends with one of the two Remainder below… reasons.
The hedge owes less than one order the exchange acceptsThe order ends Filled with that amount shown as unhedged.
You cancel, or the order expiresBoth legs are cancelled at once and nothing is hedged after that.

Spreader works in the base asset only, so a quote-currency budget does not apply. If your exchange account disconnects, see Connection status. To compare Spreader with the other algos, see Choosing an algo.