Rearview Join the waitlist

AmiBroker on a Mac

AmiBroker’s own knowledge base says it plainly: “AmiBroker is a Windows application and does not have native Mac version.” The same article says many Mac users run it in Parallels, and that “AmiBroker works perfectly fine in such configuration.” If that setup works for you, it’s a fine answer.

Rearview is for when you’d rather test natively on your Mac, with an engine that is checked against a second engine on every release and tells you when a result is probably luck.

Running AmiBroker on a Mac today

  • A Windows virtual machine. Parallels or VMware Fusion runs Windows in a window on your Mac. On a Mac with Apple silicon that is the Arm version of Windows, and Windows runs x64 programs on it through emulation. You need a Windows licence as well as AmiBroker’s.
  • Your data. If you use Norgate Data, its updater “will only work under Windows”, so it runs in the virtual machine too. Norgate’s FAQ adds that during an active subscription “you may export or extract data and process it on any other computer, operating system, server”, provided the use stays personal.

Moving a strategy to Rearview

A Rearview strategy is a short script with one statement per rule. Most AFL backtests map onto it directly:

AmiBroker (AFL)Rearview
Buy = <condition>;enter long when <condition>
Sell = <condition>;exit when <condition>
Short = ...; Cover = ...;enter short when ... and exit short when ...
PositionScore = <score>;rank by <score> (higher is preferred)
SetPositionSize(10, spsPercentOfEquity);size 10% of equity
SetOption("MaxOpenPositions", 10);max positions 10
SetTradeDelays(1, 1, 1, 1); BuyPrice = Open;fill next_open, the default
ApplyStop(stopTypeLoss, stopModePercent, 8);stop 8%
ApplyStop(stopTypeTrailing, stopModePercent, 10);trail 10%
ApplyStop(stopTypeNBar, stopModeBars, 10);max bars 10
Foreign("SPY", "C")close("SPY")
Ref(x, -1)x[1]
MA(C, 200), HHV(H, 30), LLV(L, 20)sma(close, 200), highest(high, 30), lowest(low, 20)
Optimize("entry", 10, 5, 20, 5)param entry = 10 in 5..20 step 5
An Exploration: Filter = <condition>; and AddColumn(x, "name");a scan script: filter <condition>, and each binding as a column

This table is written from AmiBroker’s public documentation and hasn’t yet been checked by running the same strategies in both tools. If a line is wrong, tell us.

The language reference has every statement and function, and the examples are complete scripts to start from.

Getting your data across

If your data comes from Norgate, Rearview’s Norgate export script writes it in the import format from inside the virtual machine: delisted stocks, splits, dividends and, if your subscription includes past constituents, index membership by date. Save it from Data Library ▸ Import ▸ Norgate Export Script… or download it, run it where Norgate Data Updater runs, and import the folder it writes.

From other sources, write each symbol’s daily quotes to its own CSV or text file, as AmiBroker’s exports do, and point Rearview at the folder with Data Library ▸ Import ▸ Per-Symbol Files…, or rvw convert ohlcv on the command line. The converter reads AmiBroker exports, finds the columns by name, and says what such files can’t tell it: whether prices are already adjusted, which stocks were delisted, and which were in an index on a past date. For those, use a source in Rearview’s import format.

What works differently

  • Signals at the close, fills next session. Every rule is evaluated on a day’s close and orders fill in the next session, at the open by default. Same-day fills are possible with fill same_close, and results that use them are marked approximate.
  • Prices as traded. Rearview stores the prices you actually traded at and works out split- and dividend-adjusted series itself. close is the day’s real close, averages run on split-adjusted prices, and percentage indicators on total-return prices.
  • Sizing and cash. A position is sized from the signal day’s equity. If cash runs short after a gap, the share count shrinks rather than the trade being skipped.
  • Stops. A stop is live from the entry day, and a day that opens beyond it fills at the open.
  • Ties. When candidates rank exactly the same, the one with the lower security id goes first.
  • Delistings. A delisted stock closes at its last price after an acquisition, or with a haircut you set after a delisting for poor performance, and every report lists the assumptions it used.
  • Is it luck? Every search counts the variations you tried, earlier runs and previews included, and reports a Deflated Sharpe Ratio and the Probability of Backtest Overfitting, with a plain verdict. A single run can be set against random entries at its own rate and stress-tested. A lockbox holds back the latest data until you choose to look.

Sources

Read on 23 October 2026: AmiBroker on a Mac (AmiBroker’s knowledge base, 2014) and Norgate Data Updater FAQ. Read on 3 November 2026: AmiBroker’s guide to Exploration.

Product names belong to their owners. Rearview isn’t affiliated with or endorsed by them.