Skip to main content

Limit Order Timeouts

A time limit can be set on a limit order entry with cancel_after. On NinjaTrader this applies to PLACE and FLATPLACE. On Tradovate it applies to the limit entry leg of PLACE, FLATPLACE, REVERSEPOSITION, and CANCELREPLACE. If the order has not filled within the time limit, CrossTrade requests its cancellation.

Valid values are between 1 and 180 minutes. For example, cancel_after=15; attempts to cancel the order after 15 minutes.

Timeouts are not exact; there may be a few seconds of delay after the timeout period before the order is canceled.

warning

The Automated Trading Interface (ATI) requirement applies to the NinjaTrader path. Tradovate schedules the cancellation at the broker and does not use ATI.

Example Payloads

PLACE command with cancel_after timeout enabled.

key=your-secret-key;
command=place;
account=sim101;
instrument=ES 09-26;
action=buy;
qty=1;
order_type=limit;
tif=day;
limit_price=-10 ticks;
cancel_after=5;

On Tradovate

cancel_after is implemented in two layers. CrossTrade first submits a Tradovate-native scheduled cancel right after the entry is accepted, so on live accounts the timeout sits on Tradovate's servers and survives CrossTrade restarts. CrossTrade's servers also watch the same deadline and cancel the order themselves if it is still working shortly after the timeout passes. That second layer is what fires on Tradovate's demo environment (including most prop-firm evaluation accounts), where the broker accepts scheduled cancels but never executes them.

limit_price may be absolute or relative; relative values are resolved through CrossTrade's quote service before placement. For a continuous symbol, the relative-price quote must identify a concrete contract that can be pinned on the order. If no fresh quote or safe contract pin is available, the entry fails closed and no timeout is scheduled.