NixoraTrade

What NixoraPaper does not simulate

The published boundary of the paper simulator — depth, queue position, financing, session calendars, margin calls, the tie rule on a gap — with every line pinned to the engine by a test.

A NixoraPaper account is a simulator, not a broker. It fills your orders against the price feed you linked it to, and it is honest about what it can price and what it cannot. This page is the other half of that honesty: everything NixoraPaper does not simulate, written down, so that a result you get here is never mistaken for a result a broker would have given you.

Nothing on this page is a bug. Each line is a deliberate boundary, and each one is pinned to the code by a test — if the engine ever starts doing one of these things, or stops doing it, this page fails the build.

What is not simulated

Order-book depth and partial fills. There is one price per side and your order fills at it, in full, in one go. A real venue would walk the book: a large order takes the first price for part of the size and worse prices for the rest. NixoraPaper never splits a fill and never prices the second half worse.

Queue position. When the market crosses your limit price the order fills. A real venue puts you in a queue behind everyone who was already resting at that price, and the market can touch your level and leave without ever reaching you. NixoraPaper does not model that queue, so a limit order here fills more often than the same order would at a broker.

Real-time slippage. Slippage is the fixed number of basis points you set on the account (0 by default), applied to every fill in the direction that costs you money. It does not vary with size, volatility, time of day or the state of the book. A limit order is then capped at your own price — a buy fills at the limit or better, never worse — because that is what a limit order promises.

Financing and corporate actions. No swap, no overnight financing, no borrow fee on a short, no dividends, no stock splits, no contract expiry or rollover. A position held for six months costs exactly what a position held for six minutes costs: the commission you configured, once per executed side. On a real account a carried position is charged or credited every night.

Per-symbol margin. The account has one leverage and it applies to every instrument it trades. A broker sets margin per symbol and per asset class — and changes it before news, at the weekend, and on illiquid names. Margin here is notional ÷ leverage, always.

Sessions, margin calls and ties

Session calendars. NixoraPaper holds no market hours, no holiday calendar and no weekend rule. The only thing standing between your order and a fill is the age of the quote: a price older than the freshness gate cannot fill or value anything, so a closed market shows up as a feed that has gone quiet rather than as a session that has ended. An instrument whose feed keeps publishing outside its real trading hours will still fill here.

Margin call and negative balance. There is a stop-out — when equity falls to 20 % of the margin used, every position that can be priced is closed and the event is written into the journal. There is no margin call before it: no warning level, no grace period, no request for funds. And there is no negative-balance protection: between two pricing passes an account can go past zero and stay there. A broker would have closed you earlier, called you, or absorbed the shortfall.

The stop-loss-before-take-profit tie. When a single quote is past your stop and past your target at the same time, NixoraPaper takes the stop-loss. It is the conservative answer and it is a rule, not a measurement: this simulator sees quotes, never the path between two of them, so it does not claim to know which level the market touched first. A real fill would depend on the path the price actually took, and nobody here observed it.

Reduce and close quantities are not step-quantised. When you open a position the size must be one the linked terminal can actually trade — its minimum volume, its step, its maximum — and an order that is not is refused. Closing is deliberately not held to that rule, so a position can always be closed, in whole or in part, including one opened before those constraints were known.

What the numbers are worth

The Reference feed is delayed and has no spread. The NixoraTrade reference link publishes the last trade, roughly 15 minutes behind the market, and it quotes no bid and no ask. The engine prices both sides of a fill at that one number, so on this link your spread is zero — you pay nothing to cross it. Every fill, every position row and every mark taken from it is labelled last trade only, no spread and carries its delay. Treat it as a way to watch the mechanics work, not as a way to measure a strategy. An Alpaca or MetaTrader link quotes a real bid and ask and is what a forward test should run on.

A maximum spread is enforced only where the spread is real. On a MetaTrader or Alpaca link the account has a genuine two-sided quote, so a max_spread limit is tested against the actual bid/ask and the order is refused rather than filled at a worse price. On a Reference (BASIC) account it is refused by name: that feed is a delayed last trade with bid = ask, so its spread is synthetically zero and every limit would pass without ever being tested. A silently inert filter is worse than no filter.

close_first does not apply here. NixoraPaper nets one position per symbol, so closing the same side before opening produces exactly the same book as simply opening. The field is answered by name rather than ignored, and nothing is dropped. Use reverse to turn a position around.

Commission is charged per executed side. An entry pays one commission and an exit pays one. A reverse executes two sides — it closes what you held and opens the opposite — so it pays two, exactly as it would at a broker. A partial reduce pays one, on the part that actually executed. Placing a pending order, cancelling one, and an OCO sibling being cancelled are all free; the commission is charged when something fills.

Fills carry their own provenance. Every fill and every refusal records the bid, the ask, the timestamp of the quote it was decided at, how old that quote was at that moment, the feed and the link — as data, in the journal and the CSV export. A triggered fill also records the level that fired, the timestamp of the quote the level was first seen on, and whether that quote arrived after a blind window. If a fill looks wrong, that row will say why.

What IS simulated faithfully

So that the list above is read in proportion, these are not approximations: