📰 Latest: HaasOnline Academy Is Back — Structured Education for Smarter Trade Bots
Account
Using Crypto Trade Bots

Differences between live and simulated trade bots

Differences Between Live and Simulated Trade Bots

Before deploying a trade bot, you need to understand the distinction between running it on a live exchange account versus a simulated account. Both have an important role in your workflow, but they behave differently in ways that directly affect your results.

What Is a Simulated Account?

A simulated account (labeled [Sim] prefix) uses virtual funds on a simulated exchange environment. Market prices are real -- pulled from the actual exchange -- but orders, balances, and positions exist only within the platform.

Simulated accounts are not a toy. They are a critical step in validating that your bot logic does what you expect before risking capital.

Where They Behave the Same

Simulated accounts do a good job of replicating live conditions in several areas:

  • Real market prices -- bots react to actual price data, not synthetic data
  • Order types -- limit, market, stop, and other order types work the same way
  • Fee calculation -- exchange trading fees (maker/taker) are calculated and deducted correctly
  • Bot logic execution -- your HaasScript or visual strategy runs identically

Where They Differ

Order Execution

Simulated accounts fill orders at the exact displayed price with full certainty. Every order fills completely and instantly.

Live accounts are subject to real market conditions:

  • Slippage -- market orders execute at a worse price than displayed, especially on low-liquidity pairs or large order sizes
  • Partial fills -- an order may only fill partially, leaving the remainder on the book
  • Order rejections -- exchanges can reject orders due to insufficient margin, rate limits, or maintenance windows

Liquidity and Order Book Depth

Simulated accounts assume the displayed price is available in any quantity. A simulated market buy for $100,000 fills at the ticker price.

In reality, the live order book has limited depth at each price level. Large orders eat through multiple levels, resulting in an average fill price worse than the top-of-book price. This is especially noticeable on smaller altcoin pairs.

Funding Rates

Perpetual futures contracts charge or pay funding rates at regular intervals. These are real costs that accumulate over time and affect your net PnL.

Simulated accounts do not simulate funding rates. If your bot trades perpetual contracts, expect a difference between simulated and live results that grows the longer positions are held open.

Margin and Liquidation

Live accounts on margin or futures markets are subject to liquidation. If your position moves against you beyond your maintenance margin, the exchange forcibly closes the position at a loss.

Simulated accounts handle this differently. If you are fully invested and attempt to place a new order, the platform returns a "not enough funds" error. Existing positions remain open even if they would have been liquidated on a live account. You can close positions and recover some funds, and you can reset your simulated wallet balance in the account settings.

This means simulated accounts understate the risk of ruin -- a bot that gets margin-called on live might keep running on sim.

API and Connectivity Issues

Live bots communicate with real exchange APIs over the internet. This introduces variables that sim accounts never face:

  • Rate limits -- exchanges enforce request limits that can delay order placement
  • Downtime -- exchanges undergo maintenance or experience outages
  • Latency -- network delays between your bot and the exchange

Simulated accounts execute locally within the platform and are not affected by these issues.

Why This Matters for Your Workflow

The differences above mean that simulated results tend to look better than live results. This is not a flaw -- it is the nature of simulation. The key is understanding why so you can interpret your simulated results honestly.

A simulated bot that shows strong profits is a candidate for live deployment. A simulated bot that loses money is almost certain to lose money live. Use simulation as a filter, not a guarantee.

Recommended Approach

  1. Build and test your bot on a simulated account first
  2. Validate that the logic behaves as expected across different market conditions
  3. Run backtests to cover historical scenarios
  4. When results are consistently positive on sim, deploy to a live account with conservative position sizes
  5. Compare live results against simulated results to quantify the gap
  6. Adjust your strategy parameters based on real-world performance