Lot size in forex is trade quantity measured in lots: 1.00 lot equals the broker symbol’s contract size. On a 100,000-unit contract, standard, mini and micro lots are 1.00, 0.10 and 0.01 lots: 100,000, 10,000 and 1,000 base-currency units. The broker also sets minimum, maximum and step values. With a 0.01-lot step, 0.013 is invalid; a 0.001 step can permit it.
Contract size and the volume rules belong to each broker symbol, so read them in that symbol's Specification before you size an alert. Lots, contract size and lot step sit alongside pips, margin and costs in the trading mechanics library.

Lot size at a glance
Scroll horizontally to read every column.
| Term | What it means | Where to read it |
|---|---|---|
| Lot | The unit MetaTrader 5 uses for order volume. 1.00 lot equals one contract size. | Volume field of the MT5 order window |
| Contract size | Units of the currency, commodity or asset in 1.00 lot, set by the broker for each symbol. | Specification: Contract size. MQL5: SYMBOL_TRADE_CONTRACT_SIZE
|
| Standard, mini and micro lot | 1.00, 0.10 and 0.01 lot: 100,000, 10,000 and 1,000 units on a 100,000-unit forex contract. | A market convention. Your contract size decides the units. |
| Minimum and maximum volume | The smallest and largest volume of one deal on the symbol. | Specification: Minimal volume, Maximal volume. MQL5: SYMBOL_VOLUME_MIN, SYMBOL_VOLUME_MAX
|
| Volume step (lot step) | The increment between valid volumes, such as 0.01. | Specification: Volume step. MQL5: SYMBOL_VOLUME_STEP
|
| Volume limit | A cap on open plus pending volume in one direction, where the broker sets one. | Specification: Volume limit. MQL5: SYMBOL_VOLUME_LIMIT
|
| PineConnector volume |
vol_lots= requests lots directly. Four other methods calculate lots from a budget. |
PineConnector Syntax: Volume |
The lot names follow the common forex convention.[1] The field names follow MetaQuotes' Specification help and the MQL5 symbol properties reference, as of 25 September 2026.[2][3]
How do lots, units and contract size relate?
Units = lots × contract size
MetaQuotes defines contract size as the "number of units of the commodity, currency or financial asset in one lot".[2] MetaTrader 5 enters order volume "in lots".[4] A lot is therefore a multiplier on the contract size, not a fixed amount of money.
The standard, mini and micro names come from forex, where a standard lot is 100,000 currency units, a mini lot 10,000 and a micro lot 1,000.[1] On an MT5 forex symbol with a 100,000-unit contract, those names match volumes of 1.00, 0.10 and 0.01. The same volumes mean different quantities on symbols with other contract sizes.
| Symbol type (illustrative) | Contract size | 0.01 lot equals |
|---|---|---|
| Forex pair such as EURUSD | 100,000 units of the base currency | 1,000 units |
| Metal quoted per ounce | 100 ounces | 1 ounce |
| Index CFD | 1 unit of the index | 0.01 units |
Illustrative contract sizes, not your broker's. Read the Contract size field for the exact symbol, including any suffix.
Contract size also sets pip value. The house form is pip value per 1.00 lot = pip size × contract size, converted to the account currency. For EURUSD on a five-decimal quote, one PineConnector pip is 0.00010.[5] So 0.0001 × 100,000 = 10 USD per pip for 1.00 lot, and 0.10 USD per pip for 0.01 lot. The pip and pip value guide covers JPY pairs, metals and account-currency conversion.
What are minimum lot size, maximum lot size and lot step?
Valid volume: minimum ≤ lots ≤ maximum, and lots ÷ volume step is a whole number
- Minimal volume: the "minimal volume of a deal for the symbol".[2] MetaQuotes notes that the minimum volume and its change step "are limited by a brokerage company".[4] Forex has no universal minimum.
- Maximal volume: the "maximal volume of a deal for the symbol". A request below the maximum can still fail for lack of margin.
- Volume step: the "volume change step". Traders often call it the lot step. With a 0.01 step, 0.01, 0.02 and 0.03 are valid and 0.013 is not.
- Volume limit: the "maximum allowable total volume of an open position and pending orders" on the symbol in one direction.[2] Where a broker sets one, a new order can fail even when its own volume is valid.
An Expert Advisor reads the same values with SymbolInfoDouble(): SYMBOL_VOLUME_MIN, SYMBOL_VOLUME_MAX, SYMBOL_VOLUME_STEP, SYMBOL_VOLUME_LIMIT and SYMBOL_TRADE_CONTRACT_SIZE.[3] MetaQuotes' checklist for Market products says the lots must be checked "before calling the OrderSend() function". Its sample check flags a volume that is "not a multiple of the minimal step".[6]
MQL5's trade server return codes include 10014, TRADE_RETCODE_INVALID_VOLUME ("Invalid volume in the request"), and 10034, TRADE_RETCODE_LIMIT_VOLUME, for a reached volume limit. Margin shortfalls return 10019, TRADE_RETCODE_NO_MONEY.[7] The MetaTrader error guide covers where these messages appear.
Worked example: why 0.013 lots becomes 0.01 or is rejected
Illustrative example, not a recommendation. Assume a USD account and a broker EURUSD symbol with a 100,000 EUR contract and a five-decimal quote. Its Specification shows minimum volume 0.01, maximum volume 50.00 and volume step 0.01. Pip value per 1.00 lot is 0.0001 × 100,000 = 10 USD.
Demo test only. Confirm every account sharing the selected License ID is a demo account before creating the alert. These messages request broker trades or closures. Check the exact symbol and permitted volume, and add your configured secret= if required.[20]
-
The alert asks for a planned loss. The TradingView alert's Message field carries
LicenseID,buy,EURUSD,vol_dollar=13,sl_pips=100. PineConnector's loss-based formula gives 13 ÷ (100 × 10) = 0.013 lots "before broker volume rounding".[8] - Convert to units. 0.013 × 100,000 = 1,300 EUR. The valid neighbours are 0.01 lot (1,000 EUR) and 0.02 lot (2,000 EUR).
- Check the step. 0.013 ÷ 0.01 = 1.3 steps. The result is not a whole number, so 0.013 is not a valid volume on this symbol.
- Round to a valid step. 0.013 is 0.003 above 0.01 and 0.007 below 0.02. PineConnector's FAQ says the EA rounds an in-range target "to the nearest allowed step", which gives 0.01.[9] Rounding down also gives 0.01. At 0.01 lot the planned loss at the stop is 100 × 10 × 0.01 = 10 USD, not 13 USD.
-
See where two rounding rules differ. With
vol_dollar=17the target is 17 ÷ (100 × 10) = 0.017 lots. Nearest-step rounding gives 0.02 lot and a planned loss of 100 × 10 × 0.02 = 20 USD, above the 17 USD budget. Rounding down gives 0.01 lot and 10 USD. -
Fall below the minimum. With
vol_dollar=4the target is 4 ÷ (100 × 10) = 0.004 lots, below the 0.01 minimum. The FAQ says the EA rejects targets outside the absolute minimum and maximum.[9] A 0.013 target is rejected in the same way on a symbol whose minimum volume is 0.10.

PineConnector's two documentation pages do not say the same thing here. The FAQ states the nearest-step rule, with its own example of 0.029 becoming 0.03.[9] The syntax reference's 0.455-lot example says "The EA’s rounding direction is not established here".[8] Treat nearest-step as the documented description, then confirm it on demo: the Experts output shows "the actual calculated and submitted volume".[9]
When you size by hand, this library's position-sizing pages round down, which keeps the planned loss at or below the budget. A vol_lots= value that is already a whole step leaves nothing to round, although the minimum, maximum and volume limit still apply. The position sizing methods guide compares fixed lots with percent and cash budgets.
How do PineConnector volume parameters map to lots?
A PineConnector entry message uses one volume method.[10] Only vol_lots= is a number of lots. The other four are budgets that the EA converts to a target lot size, which it then checks against the broker's minimum, maximum and volume step.[9]
| Parameter | What the number means | How lots are found |
|---|---|---|
vol_lots=0.01 |
0.01 lot, "not 1% risk" | Used as the lot target |
vol_dollar=100 |
Planned loss at the stop, in account currency | Budget ÷ (stop in pips × pip value per 1.00 lot). Needs a stop. |
vol_pct_bal_loss=1 |
1% of balance as the planned loss at the stop | Same formula. Needs a stop. |
vol_pct_eq_loss=1 |
1% of equity as the planned loss at the stop | Same formula. Needs a stop. |
vol_pct_bal_margin=5 |
5% of balance allocated as margin | Needs the broker's margin calculation. Stop distance is not used. |
The three loss-based methods need one stop method in the same message: sl_pips=, sl_price= or sl_pct=.[10] Contract size enters through pip value, so the same budget produces different lots on symbols with different contracts. For margin allocation, MT5's Forex mode computes margin as "Volume in lots * Contract size / Leverage", and the Specification can add a margin rate.[11] PineConnector's reference adds that a margin budget "does not cap the trade’s loss".[10] For margin itself, see margin level, margin call and stop-out.
Illustrative messages, not recommended sizes. Paste one into the TradingView alert's Message field, with your License ID and the exact broker symbol:
-
LicenseID,buy,EURUSD,vol_lots=0.01,sl_pips=20requests 0.01 lot with a 20-pip stop. -
LicenseID,buy,EURUSD,vol_pct_bal_loss=1,sl_pips=20on a 10,000 USD balance plans a 100 USD loss at the stop: 100 ÷ (20 × 10) = 0.50 lots before broker volume rounding.
Older messages use risk=, whose meaning follows the EA's Volume Type setting. Under Lots, the documented default, risk=1 requests 1 lot. Under Dollar Amount, the same number is a cash loss at the stop.[12] Explicit parameters such as vol_lots= state their unit in the message itself.

Where do you find lot rules in MT5, TradingView and PineConnector?
- MetaTrader 5 terminal: right-click the exact symbol in Market Watch and choose Specification. MetaQuotes describes the window's parameters as "set by a broker".[2] Record Contract size, Minimal volume, Maximal volume, Volume step and Volume limit. PineConnector's lookup checklist also asks for Digits, Stops level, Point, tick size, and tick value with its currency.[13]
-
TradingView: a strategy's order quantity is TradingView's own unit. The
{{strategy.order.contracts}}placeholder "returns the number of contracts of the executed order".[14] PineConnector's no-code guide says that quantity "is not automatically MetaTrader lots, cash risk or a percentage".[15] Convert it deliberately, or send an explicit volume parameter. - PineConnector Edge: open Portal → Edge → Symbols, which lists every symbol the broker offers with its specification, including contract size, minimal volume and volume step, and copy the exact symbol name into the alert instead of retyping it (Edge Symbols guide). For any value the tab does not show, request the receiving broker’s MT5 symbol specification through the broker or support.[13] Use the connection and signal information available in Portal. If that view does not show the terminal detail needed to verify submitted volume, contact Support.[16][21]
The alert triggers, the webhook delivers its message, PineConnector processes it and the EA sends an order request. Acceptance is not a confirmed fill. Check the order state and resulting deals, then the actual position volume; a deal may open, change or close a position.[19] The TradingView alert log alone cannot establish the broker result.
Common lot size mistakes and limitations
- Assuming 1.00 lot is 100,000 units everywhere. Contract size is a per-symbol broker setting, and non-forex symbols can use very different sizes.
-
Reading 0.01 as 1%. PineConnector's syntax reference says
vol_lots=0.01"means 0.01 lot, not 1% risk".[10] - Treating the budget as the loss. Rounding moved the planned loss from 13 USD to 10 USD, and from 17 USD to 20 USD, in the example above. Costs, fills, gaps and broker limits can move the actual loss further.[8]
- Missing the minimum on a small budget or a wide stop. A loss-based target below the minimum volume is rejected under the FAQ rule, not raised to the minimum.
- Reading the wrong symbol. Check the Specification of the exact broker symbol, including any suffix.[13] The broker symbol suffix guide explains why names differ.
- Expecting identical lots on every account. One License ID can reach several accounts. PineConnector notes that identical routing "is not a promise of identical fills or lot sizes".[17]
- Skipping the log. PineConnector's error reference traces an invalid-volume message to the minimum, maximum and volume step, and to the EA's Volume Type.[18] The wrong symbol, lot size or account checklist covers the rest of the message.
Lot rules describe what a broker accepts. They say nothing about what size suits a strategy, and automation only sends the size you define. The rounding behaviour above comes from PineConnector's documentation and was not tested for this article.
Frequently asked questions
What is a standard lot, mini lot and micro lot?
A standard lot is 100,000 units of the base currency, a mini lot is 10,000 units and a micro lot is 1,000 units. On a MetaTrader 5 forex symbol whose contract size is 100,000, those are volumes of 1.00, 0.10 and 0.01 lot. On symbols with a different contract size, the same volumes represent different quantities.
Where do I find the contract size in MT5?
In MetaTrader 5, right-click the exact symbol in Market Watch and choose Specification. The Contract size field shows the number of units in one lot, as set by the broker. The same window lists minimal volume, maximal volume, volume step and volume limit. In MQL5 code, SymbolInfoDouble with SYMBOL_TRADE_CONTRACT_SIZE returns the contract size.
What is the minimum lot size in forex?
The minimum lot size is the Minimal volume the broker sets for that symbol, shown in the MetaTrader 5 Specification window. Forex has no universal minimum. A 0.01 lot is 1,000 units on a 100,000-unit contract, but a broker can set a larger minimum for a symbol. A volume below the minimum is not valid on that symbol.
What is lot step in MT5?
Lot step, called Volume step in MetaTrader 5, is the increment between valid order volumes on a symbol. With a 0.01 step, 0.01, 0.02 and 0.03 lots are valid and 0.013 lots is not. MQL5 exposes the value as SYMBOL_VOLUME_STEP. A volume that is not a whole multiple of the step must be rounded before the order is sent.
Does PineConnector round lot sizes?
PineConnector's FAQ says the EA checks the broker's minimum, maximum and volume step. It rejects targets outside the minimum or maximum and rounds in-range targets to the nearest allowed step, so with a 0.01 step, 0.013 becomes 0.01 and 0.017 becomes 0.02. The syntax reference does not establish the rounding direction, so check the Experts log on demo.
Reviewed 25 September 2026. Facts were checked against the linked sources on that date. Nothing in this article was tested on a trading account and no code was compiled.
Related reading
- Trading mechanics: orders, lots, margin and costs
- Position sizing methods: fixed lots, percent risk and cash risk
- Pips, points and pip value
- Wrong symbol, lot size or account: the pre-flight checklist
- Margin level, margin call and stop-out
Sources
- IG – What is a lot in forex and how do you calculate the lot size?, accessed 25 September 2026.
- MetaQuotes – MetaTrader 5 Help: Market Watch, viewing symbol specification, accessed 25 September 2026.
- MetaQuotes – MQL5 Reference: Symbol properties, accessed 25 September 2026.
- MetaQuotes – MetaTrader 5 Help: Executing trades, accessed 25 September 2026.
- PineConnector – Syntax: PineConnector pip, accessed 25 September 2026.
- MetaQuotes – The checks a trading robot must pass before publication in the Market, accessed 25 September 2026.
- MetaQuotes – MQL5 Reference: Trade server return codes, accessed 25 September 2026.
- PineConnector – Syntax: loss-based sizing and rounded volume, accessed 25 September 2026.
- PineConnector – FAQ: How is the final trade volume handled?, accessed 25 September 2026.
- PineConnector – Syntax: Volume, accessed 25 September 2026.
- MetaQuotes – MetaTrader 5 Help: Margin calculation, retail forex and futures, accessed 25 September 2026.
- PineConnector – EA settings: Volume Type, accessed 25 September 2026.
- PineConnector – Syntax: look up broker values, accessed 25 September 2026.
- TradingView – How to use a variable value in alert, accessed 25 September 2026.
- PineConnector – No-code alerts: strategy order-fill alerts, accessed 25 September 2026.
- PineConnector – FAQ: How do I open the Experts tab?, accessed 25 September 2026.
- PineConnector – Multi-instance signals: check the results separately, accessed 25 September 2026.
- PineConnector – Error reference: match the message beside 4756, accessed 25 September 2026.
- MetaQuotes – Basic Principles: order processing, accessed 25 September 2026.
- PineConnector – Test your setup: demo account and License ID scope, accessed 25 September 2026.
- PineConnector – FAQ, accessed 25 September 2026.
PineConnector executes the instructions you send it. It does not select trades, manage money, or hold funds. Trading carries risk, and past performance of any strategy does not indicate future results.