Import data
Everything starts here: with no data there is nothing to test. File → Import data… opens a three-step wizard that looks at your file and works out how it is built, instead of asking you to explain it.
Drop the file and you are done
Drag the file onto the window (or click to browse) and AniQuant figures out on its own
the separator —comma, semicolon, tab, pipe or space—, whether there is a header row,
whether decimals use a period or a comma, the date format, and what each column
means. It recognizes header names in several languages:
Date, Fecha,
Open, Apertura,
Adj Close, Máximo,
OI…
With 03/04/2026 nobody can tell whether it is April 3rd or March 4th. AniQuant
does not guess: it scans the whole column and, as soon as it finds a day greater than 12,
the question is settled for the entire file.
You do not have to tell it: it measures the gap between bars and decides whether they are 1-minute, 90-minute, daily or weekly.
Step 2 shows you your bars, not a settings screen
This is what sets it apart from the importers in other programs. Instead of a settings screen you have to fill out blind, you see the first bars already interpreted: date, open, high, low, close and volume, exactly as they will end up. If that is what you expected, click next and you are done.
The settings are still there, below, collapsed and already filled in with whatever was detected. You only touch them if something looks wrong. And if the detected settings produce no bars at all, that panel opens by itself.
When it finishes it tells you how many bars it read and how many lines it discarded and why —too few columns, unreadable date, zero price, impossible OHLC—, with the line number and the text of the first few. Nothing gets silently discarded.
CSV, TXT, TSV, ASC and DAT. A file with closes only works too: open, high and low are filled in with the close.
If a bar has the high below the low, or the close outside its own range, AniQuant discards it and tells you — it does not fix it. Fixing it would mean inventing a price, and an invented price spreads through every backtest you run without you ever remembering it is there. What it does fix is whatever can be removed without inventing anything: blank rows, duplicates and sort order.
A continuous contract is built by chaining expirations backwards and adjusting the series at every splice. If one expiration traded very low —or outright negative, as crude oil did in April 2020— that adjustment can push the older prices below zero. It is not a corrupt file or an import failure: it is the arithmetic of back-adjustment, and AniQuant loads those prices as they are because they are the data you actually have.
Here is what matters: any percentage calculation on a negative price, or one close to zero, means nothing. A «+40%» on −5 is not a 40% gain, it is a meaningless number — and it slips into averages, rankings and verdicts without anything raising a red flag. It is the worst kind of error: the one that never shows its face. The daily crude oil continuous we measured this on contained 173 closes below zero, with a low of −30.22.
How to tell whether it affects you. Look at the minimum of the series after importing it: if there are closes at or below zero, this is your case. It tends to happen in energy (crude, gas) and almost never in indices or metals.
What to do. Work those series in points or dollars rather than percentages, and distrust any percentage result that comes out of them. The modules that depend on percentages already guard against this —the Duration Profile, the TP/SL Map and Seasonal Analysis skip bars with a close ≤ 0—, but which series you work with is your call.
AniQuant can be tried free for 30 days, with every module and no card.