FAQ

DocumentationHelp

FAQ

Can I trade live with this?

No, and that is deliberate. OrionQuant is a research and testing instrument. It never connects to a broker for execution.

What crosses over is a file, never an order. Export translates a strategy into a cTrader cBot or a MetaTrader 5 expert advisor, and a Pine or block strategy into a TradingView script as well. You take the file to that platform yourself. A strategy the translator cannot render faithfully is refused by name and line rather than approximated. The MQ5 the AI assistant writes is a different thing: a draft to read rather than a translation to trust. In every case what runs there is that platform's engine on that platform's data, not this one.

Why is my stock or my index refused?

Because the engine will not guess what an instrument is. Priced as a currency pair, AAPL at 190 would get a 0.0001 pip and a 100,000 unit lot, which is 1.9 million of notional on a ten thousand account. The run would finish, and the result would be wrong.

Four groups need nothing from you. The first two because their shape says what they are, the last two because the engine carries an entry for each symbol:

  • two of twenty four currency codes, EURUSD and the rest
  • six letters that are one of twenty coin codes against USD, EUR, GBP, BTC or ETH
  • the metals XAUUSD and XAGUSD
  • every instrument in OrionQuant's archive under its code, US500, DE40, AAPL.US/USD, LIGHT.CMD/USD and the rest, and the energies WTIUSD, BCOUSD, NGCUSD

Anything else is refused with a message naming what to add. Two things make it run:

  • A custom symbol. Define it under Data, Instruments with its contract size and its pip size. A saved spec wins over everything else, and it is the only route for a ticker the picker does not list.
  • An asset class on the run. The configuration carries an assetClass field, one of forex, metal, index, crypto, equity or cfd, and a declared class supplies that class's defaults: one share and a 0.01 increment for equity, one contract and 0.1 for index. The app fills the field from the instrument picker, so picking a listed symbol is what sets it. It is read last, so it cannot turn EURUSD into an equity, and it says nothing about your broker's actual contract.

Getting the class right does not get you bars. The built in downloader serves every instrument in OrionQuant's archive; anything else needs a CSV import or a plugin data source, and the toolbar under Data, This machine offers a choice of source once a plugin registers one.

The class the app settled on is printed in an exported report.

Why did my run stop before the end date?

Equity reached zero. Insolvency ends a run: the engine closes the position at the price that costs exactly what was left, stops on that bar, and records the wipe out with the time it happened. Without it the account would go on trading with money it does not have, and the result would come back with a drawdown above 100%.

Where is my data stored?

Locally on your PC, in the app's data cache. Downloaded market data, external data, plugin caches, your strategy library and your run history all live there, and a run on this machine uploads none of it.

Three things do leave, and each is something you start. A fourth leaves on its own unless you switch it off.

A server run uploads the strategy. Running on the server pushes the strategy to your account and then queues the run against it. For a Python strategy that is the source; a catalog strategy travels as a name alone, with no source at all, because the server already carries the built in strategies. The run configuration goes with it. The push happens on every server run, so the server cannot execute a stale copy, and it updates the one row rather than adding another. Deleting the strategy from the account deletes its runs with it. Your cached bars are not uploaded: a server run reads the server's own data.

A prompt, when the AI key is on your account rather than on this machine. See below.

A question you type into the documentation bot. See below.

The figures of a backtest that made money. Signed in, a backtest on this machine that ends above 0 % a month sends us its key figures: the return, the return per month, the drawdown, the number of trades, the period, the instrument, the timeframe, the accuracy tier and the strategy's name and language. Never your code, your parameter values or your trades. They help us understand how the product is used and are not published. Switch it off in Settings, Privacy; that also deletes what was sent. Section 22 of the privacy policy says the same.

Why did my run not start, or stop for want of data?

A run reads real bars only. Pressing Start fetches what is missing from the archive, if your plan allows it. When none of the range arrives, the run does not start, and the page points to Data. Check the instrument and the period there: the built in source serves every instrument in OrionQuant's archive, and anything else needs a plugin data source or a CSV import.

Why are my results different from my live broker?

A backtest is a model. Spread, commission, swap, leverage and the intrabar fill rule all shape the outcome. The spread comes from the data where it has a bid and an ask, and from the custom symbol's average spread where it does not. Set the rest to your broker's real values and treat the result as a hypothesis, not a promise. Slippage is modelled only where the market gapped and, on the TICK tier, by Slip beyond the touch for an entry larger than the size offered at the best price. Costs and Fills has both.

Do I need an API key for the AI features?

For the code assistant in the Build and Indicators editors, yes: your own provider key, set in Settings under API keys. The documentation bot needs no key from you.

A key can live in either of two places. On this machine, encrypted with the operating system's own key store, in which case the request goes straight from the app to the provider and nothing about it passes through us. Any endpoint works this way, including a model running on your own machine, which needs no key at all.

Or on your account, encrypted on our server, in which case we make the request for you with it: that is what lets a key entered on one computer answer on another. Five providers can be reached that way: OpenAI, Anthropic, DeepSeek, OpenRouter and Google AI Studio. A custom endpoint cannot, so its key has to be on the machine.

The app prefers the local one when both exist, because a prompt from this product usually contains your strategy source and there is no reason to send it anywhere it does not have to go. Of a request we make for you we record which provider and model answered and how many tokens it cost. We do not record the question or the answer.

Both assistants are desktop only. The browser build has neither: they run in the desktop app's own process. The assistant panel still opens and says where the key lives, rather than taking a question it cannot send. The documentation bot is absent from the page instead, because a support box that says "not available" under every page is worse than no support box.

The assistant says my AI tokens are used up. Now what?

AI tokens are ours, not the model provider's. One of theirs is roughly a word; one of ours is a request, and your plan grants a number of them per calendar month: 50 on Free, 12,000 on Pro, 60,000 on Max. A request the app sends straight to your provider with your own key costs no tokens. A key you saved in your account, which our server passes on for you, costs one token a request, the cheapest rate there is.

The allowance resets on the first of the month. Until then there are two ways forward, both in Settings under Billing: move up a plan, or buy a pack of credits. Credits are spent only after the monthly allowance is gone, and unlike the allowance they never expire. No pack is cheaper per token than the plan above you, so if this happens every month the plan is the better answer.

Where does the documentation bot send my question?

To Google. It is Gemini (gemini-2.0-flash), called with a key OrionQuant owns and the desktop app holds, which is why you configure nothing. Each request carries the documentation page you have open and the question you typed, and nothing else: not your strategies, not your runs. On a build with no key configured it says so rather than answering.

OrionQuant