Position Sizer errors: the MT5 fix guide.
You installed a Position Sizer indicator on MT5, and now one of three things happens: the button does nothing, the lot comes out as 0.00, or the order bounces with an error. None of that means your strategy is broken: it is almost always the panel colliding with the broker’s symbol rules (volume steps, stop distance) or with a terminal setting. Here are the six real causes, the retcode each one prints in the Journal, and the fix for each — in the order we see them.
Read the Journal first: the retcode tells you which of the six causes it is. 10014 invalid volume = lot rules (fix the size inputs), 10016 invalid stops = stops too close, 10019 not enough money = margin, button dead = algo trading disabled, 0.00 lots = no tick value for that symbol in your account currency. If you came here because sizing keeps failing on unusual symbols, check the size in the calculator first: if the calculator cannot size it either, the symbol data is the problem, not the indicator.
The 60-second diagnosis
MATCH THE SYMPTOM (AND THE RETCODE) TO THE CAUSE.
BUTTON DEAD · NO JOURNAL ENTRY10014 invalid volumeJOURNAL · TRADE REQUESTSIZING MATH · NO ERROR.r, ft), exotic account currencies, index CFDs quoted in another currency. The risk math bottoms out at zero instead of erroring.10016 invalid stopsJOURNAL · TRADE REQUEST10019 not enough moneyJOURNAL · TRADE REQUESTSYMBOL SPECS DIFFERWhere to look: the Journal (Ctrl+T > Journal) prints every failed trade request with its retcode. The Experts tab shows the indicator’s own logs. Both together identify the cause in seconds.
The fixes, in order of frequency
1. Enable algo trading (and the indicator’s permission)
Fixes cause 1. A Position Sizer is an indicator that sends orders programmatically: the terminal blocks that unless you allow it twice.
- Turn ON the “Algo Trading” button in the MT5 toolbar (it turns green).
- In the indicator’s settings, under Common, make sure “Allow algo trading” is checked for the Position Sizer itself.
- Click the panel button again and watch the Journal: a request appearing there means the block is gone.
2. Respect the broker’s lot rules
Fixes cause 2. Open the symbol spec (right-click the symbol > Specification) and copy the three numbers that matter: volume min, volume max and volume step.
- Set the panel’s size inputs so the result never goes below the minimum or off the step (on indices with step
0.1, a0.01-granular size will bounce). - Prefer the fixed lot mode while you validate, then switch back to risk-based sizing.
- Sanity-check any manual size first in the lot size calculator: it shows the volume aligned to the step.
3. Give the math a tick value (or size it elsewhere)
Fixes cause 3, the 0.00 lots. If the terminal exposes no tick value for the symbol in your account currency, no risk-based sizing can converge — not the panel’s, not anyone’s.
- Check the symbol’s Specification: if tick value is zero or empty, use fixed lots for that symbol.
- Trade the broker’s exact symbol (with suffix). Suffixed clones sometimes lack the data the bare name has.
- We saw this live with an index CFD on a JPY account: the right size existed, but only with the symbol’s own quote conversion. If sizing must not guess, it must fail closed with a reason instead of sending 0.00 or a wrong lot.
4. Fix invalid stops (10016)
Fixes cause 4. The broker enforces a minimum distance between price and stops; the panel cannot know your intent, only the spec.
- Read trade stops level in the Specification and keep SL/TP at least that many points away.
- On ECN accounts, send the order without stops and modify right after the fill if your panel supports it.
- Right after news, stop levels widen temporarily: retrying minutes later often just works.
5. Fix not enough money (10019)
Fixes cause 5. The size was mathematically right for your risk but the margin was not there.
- Halve the risk input and retry: if the order passes, it was margin, not the panel.
- Check the symbol’s margin rate and your account leverage in the Specification.
- On prop accounts, remember drawdown limits effectively cap the risk you should be taking per trade anyway.
6. Treat demo and live as different brokers
Fixes cause 6. Demo servers are generous with specs; live servers are not. Re-do fixes 2-4 against the live symbol spec before blaming the tool.
- Open the Specification on BOTH servers and compare volume step, stop level and tick value.
- Adjust the panel inputs to the live numbers.
- Run your first live trades at minimum size to validate the full path.
When a panel is not enough
MANUAL SIZING MEANS YOU ARE THE AUTOMATION.
The panel sizes YOUR click. It does not size your strategy.
A Position Sizer is a manual helper: it waits for you. If your signals come from TradingView, someone still has to be at the terminal, read the alert, and click the right size at the right moment — and every cause above still applies to each manual order.
The automated path: sizing on every signal
A bridge like SignalForge receives each TradingView alert, calculates the size from your risk settings (fixed or percent-based), aligns it to the symbol’s volume rules and sends the order — and when the broker’s symbol data is unusable, it rejects with a logged reason instead of guessing a lot. That is the same fail-closed behavior we recommend for any sizing engine.
The lot size calculator applies the same symbol rules (step, min, max) and shows the aligned volume. Related reads: error 4756, trade request failed and the MT5 error codes hub.
FAQ
BUTTONS, ZERO LOTS, PROP FIRMS, AUTOMATION.
Why does the Position Sizer fail when I click Buy or Sell?
Three reasons cover almost every case: the calculated volume breaks the broker’s lot rules (minimum, maximum or lot step — retcode 10014), algo trading is disabled so the panel cannot send any order, or the stops are closer than the broker’s minimum stop distance (10016). Read the Journal tab: the retcode next to the failed request tells you which one it is.
Why does the Position Sizer calculate 0.00 lots?
Because the risk calculation cannot convert the stop distance into a size: the symbol has no tick value visible to the terminal (custom or suffixed symbols, exotic account currencies, index CFDs quoted in a different currency than the account). Without tick value and contract size the math bottoms out at zero. Fix: use a fixed lot as a fallback, trade the exact broker symbol, or use a sizing engine that fails closed.
Is the Position Sizer indicator allowed on prop firms?
As a manual helper, yes: it only adds on-chart buttons and calculates the size for YOUR click. It does not place orders by itself while you are away, which is what most prop firms restrict. Always check your firm’s rules on automation and copy trading before running any tool on a challenge or funded account.
Can I automate the position sizing instead of clicking buttons?
Yes. A bridge like SignalForge calculates the size from your risk settings on every incoming TradingView alert and sends the order to MT5 automatically, with the sizing failing closed (order rejected with a reason) when the broker does not provide usable symbol data. You can sanity-check any size first in the free lot size calculator.
Size any trade with the symbol rules applied: lot size calculator. Sister guides: MT5 error 4756 (request failed) and MT5 error codes explained.
Benjamin SF is the founder of SignalForge and an expert in trading algorithm automation. He builds and operates the SignalForge bridge for prop-firm traders and maintains its public latency benchmark.
Automate your TradingView signals on MT5
SignalForge routes your alerts to MetaTrader 5 in milliseconds. 14-day free trial, no card required.
SignalForge AI is an order-execution tool. We do not provide investment advice. Trading involves risk of loss.