Symbol formats for the CSV template

How to write stock, option, futures, forex, crypto and CFD symbols so VEXA reads them correctly in the manual CSV template.

Web Updated

What this does

The Symbol cell in the manual CSV template does more work than it looks like. VEXA reads the asset class from AssetType, then reads the contract details out of the symbol itself. Getting the format right is what makes an option carry the correct contract size and a futures trade carry the correct tick value.

The template accepts six asset types. For everything else about the template, see Fill in the VEXA CSV template.

The AI import screen, before a file is chosen — Web
The AI import screen, before a file is chosen

Before you start

The same reference is available in the app. On the import page, expand the Symbol format examples panel next to the template download.

The six asset types

AssetTypeHow to write the symbolExamples
STKThe ticker as your exchange writes it, nothing else.AAPL, TSLA, NVDA
OPTOne of the three contract formats below.see the options section
FUTThe root or the full contract code. Set Multiplier to match.ES, MNQ, CL
FOREXThe six-character pair, no slash or suffix.EURUSD, GBPJPY, USDJPY
CRYPTOTicker plus quote currency, as your exchange writes it.BTCUSDT, ETHUSD, SOLUSDT
CFDPrefix with # when your broker treats CFDs as distinct instruments.#AAPL, #TSLA, #SPX500

Options

Three symbol formats are accepted.

FormatShapeExample
Inlineunderlying, expiry, strike, rightAAPL 17 Jan 2026 $180 CALL
OCC compact21 characters, no spacesAAPL260117C00180000
Extendedunderlying, two spaces, expiry, right, strikeAAPL 20260117C180.000

If none of the three fit what your broker gave you, put the plain underlying ticker in Symbol and fill in the option columns instead: Expiration, Strike, CallPut and Underlying. Those columns exist for exactly this case, and a row that uses them is read just as reliably as one with a packed symbol.

Set Quantity in contracts, not shares. Ten contracts is 10. VEXA applies the contract size, which is 100 shares per contract unless you override it in Multiplier.

Futures

Write either the root (ES) or the full contract code with its month and year (ESH25, MGCQ6). Both single-digit and two-digit years are read.

Set Multiplier for every futures row. It is the dollar value of one point, and it is what turns a price move into a P&L figure. VEXA knows the common contracts and fills the value in on its own, but a contract it does not recognise is imported with a multiplier of 1 and a warning, which makes the P&L wrong by whatever the real multiplier is.

Common values: ES 50, MES 5, NQ 20, MNQ 2, YM 5, MYM 0.5, RTY 50, M2K 5, CL 1000, MCL 100, GC 100, MGC 10, SI 5000.

If you see the unrecognised-contract warning after importing, read The “unrecognized futures contract” warning.

Forex

Use the six-character pair with no separator: EURUSD, not EUR/USD or EURUSD.m. Broker suffixes are stripped on the broker-file paths, but the template is read literally, so leave them out.

Write Quantity in the units your broker records. VEXA displays forex sizes as lots, where one lot is 100,000 base units.

Crypto

Follow your exchange’s own convention, including the quote currency. BTCUSDT and BTCUSD are different instruments, and mixing them splits one position into two.

CFDs

Use # in front of the underlying when your broker distinguishes a CFD from the cash instrument. Without the prefix, a CFD on Apple and shares in Apple net against each other as one position.

What you should see

In the preview before you confirm, the Symbols tile counts the distinct symbols VEXA read. If that number is higher than the number of instruments you traded, a symbol is written inconsistently somewhere in the file: a suffix on some rows, a slash on others, or a CFD prefix used on half the rows.

Rows VEXA cannot read at all are listed as rejected with a reason rather than being dropped silently.

If it doesn’t work

  • Options imported at a hundredth of the expected P&L. The row was read as a share trade rather than a contract. Set AssetType to OPT, and set Multiplier to 100 if your symbol format is unusual.
  • Futures P&L is off by a fixed factor. The multiplier is wrong. Check the value against your contract’s specification and re-import.
  • One instrument shows as two positions. Two spellings of the same symbol. Normalise them in the spreadsheet and upload again. The rows you already imported are skipped, so nothing doubles.

Related

Still stuck? Email support@vexatrade.ai.