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.
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.

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
AssetType | How to write the symbol | Examples |
|---|---|---|
STK | The ticker as your exchange writes it, nothing else. | AAPL, TSLA, NVDA |
OPT | One of the three contract formats below. | see the options section |
FUT | The root or the full contract code. Set Multiplier to match. | ES, MNQ, CL |
FOREX | The six-character pair, no slash or suffix. | EURUSD, GBPJPY, USDJPY |
CRYPTO | Ticker plus quote currency, as your exchange writes it. | BTCUSDT, ETHUSD, SOLUSDT |
CFD | Prefix with # when your broker treats CFDs as distinct instruments. | #AAPL, #TSLA, #SPX500 |
Options
Three symbol formats are accepted.
| Format | Shape | Example |
|---|---|---|
| Inline | underlying, expiry, strike, right | AAPL 17 Jan 2026 $180 CALL |
| OCC compact | 21 characters, no spaces | AAPL260117C00180000 |
| Extended | underlying, two spaces, expiry, right, strike | AAPL 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
AssetTypetoOPT, and setMultiplierto 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
Related
Still stuck? Email support@vexatrade.ai.