Skip to content
QuantWright

Frequently asked questions


Is this investment advice?

No. QuantWright is research and educational software. Nothing it produces is investment advice or a recommendation to trade. Backtests, scores and simulations are hypothetical: they are computed over historical data, with the benefit of hindsight, and past performance does not predict future results.

Does QuantWright place trades?

No. It never executes orders and never holds your money or assets. What you do with a result is your decision alone.

Why are there no candlestick charts?

The licence for the market data covers results derived from it, not the prices themselves. A run shows what the strategy did (returns, drawdown, trade statistics, its equity curve) but not the prices it traded at or a chart of them. More on this.

Why does it only buy whole shares?

Stocks, ETFs and futures trade in whole units, shares and contracts, and FX in whole units of currency. A position sized as a share of equity becomes the whole units that money can buy. An order worth less than one unit is declined, and a run left with no trades for that reason says so. Buying fractional shares is a feature of some brokers; it is not what runs here.

Crypto is the exception: a coin is held in fractions, to one hundred-millionth, so a position sized as a share of equity buys that share whatever one coin costs.

What account does a backtest start with?

The account size you state — “my account is 25,000 dollars”, “a 50k account” — and $100,000 when you have not stated one. A later statement replaces it. A re-run of a version (a new period, a tweak, new costs) keeps that version’s account, as it keeps its costs; name a size in the same message to re-run at it. Sizes under $1,000 or over $100,000,000 are not used, and the result says so. Every result states its starting account and whose figure it is.

With whole units, a small account often cannot buy the position the strategy asks for: those orders are cancelled, and when most of them are, the result says so plainly. A prop-firm simulation always uses the firm’s own evaluation size, never yours.

Why are my results different from TradingView?

The same idea can give different numbers for reasons that have nothing to do with the strategy:

  • Data. Intraday US stock bars here come from IEX exchange prints only, and prices are split-adjusted without dividends. A chart built from another feed will differ.
  • Session. Intraday stock tests use the regular session only, with market holidays and early-close afternoons removed.
  • Fills. A market order placed at a bar’s close fills at the next bar’s open.
  • Costs. Commission and slippage are always charged: yours if you state them, the defaults if you do not.
  • Account and size. The account size you stated (your script’s initial_capital, or $100,000) and whole units, whatever your chart settings say.
  • Stops and targets. TradingView fills a stop or a limit when price only touches it; here price has to trade through it. When a stop and a target are both inside one bar, TradingView picks the order from the bar’s open; here the stop comes first.
  • Translation. A pasted Pine script is translated into Python and runs on the same engine as everything else. Each strategy() setting this engine cannot apply is listed before the run, and a part of the script the translation could not do is named before anything runs. Details.
  • Window. A different start date or length of history gives a different result.

Why is my test shorter than I asked, or missing data?

  • A test is sized in bars, so the years it covers depend on the bar size and the market’s hours. One run holds at most 200,000 bars. The tables show each window.
  • US stock intraday history starts in August 2017, and FX history in January 2020.
  • Intraday stock bars outside the regular session, on market holidays, and after an early close are removed. IEX prints are thin on smaller names, so their bars can be sparse.
  • A symbol the data provider has no series for (delisted, acquired, foreign-listed, some OTC names, or a typo) cannot be tested, and the reply says so rather than guessing.
  • A backtest needs at least 50 bars. With fewer, it does not run and the reply says how many there were.
  • If the data provider cannot be reached, no result is shown and the reply says the problem is on our side. Trying again a few minutes later is worth it.

Can I backtest a portfolio, or several symbols at once?

No. A backtest trades one symbol. Portfolio and multi-symbol backtests are not supported: one run cannot hold several symbols or share one account across them.

Can I backtest futures?

Not at the moment. CME futures backtests are paused while we finalise a licence for exchange data. Stocks, ETFs, crypto and FX run in the meantime.

Something looks wrong. What should I send?

Write through the Support page. Include the chat’s name or the address in your browser’s address bar, roughly when it happened, which card the number you doubt is on, and what you expected instead.

Not answered here? Write to us through the Support page.