MT5 INDICATORS · UPDATED OCTOBER 2026

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.

BBenjamin SF · Founder Published Oct 21, 2026 Updated Oct 21, 2026 Read 5 min
Quick answer

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.

Click Buy/Sell, nothing happensBUTTON DEAD · NO JOURNAL ENTRY
cause 1Algo trading is disabled. The panel places orders programmatically: if the “Algo Trading” button in the toolbar is off (or the indicator is not allowed to trade), the click is ignored silently. The most common cause of all.
Order rejected, 10014 invalid volumeJOURNAL · TRADE REQUEST
cause 2The calculated size breaks the broker’s lot rules: below the minimum, above the maximum, or not aligned with the lot step (0.01 on FX, but 0.1 or 1.0 on some indices). The panel rounds; the broker refuses.
Lot comes out 0.00SIZING MATH · NO ERROR
cause 3No tick value / contract size for that symbol in your account currency: custom or suffixed symbols (.r, ft), exotic account currencies, index CFDs quoted in another currency. The risk math bottoms out at zero instead of erroring.
Order rejected, 10016 invalid stopsJOURNAL · TRADE REQUEST
cause 4SL/TP closer than the broker’s minimum stop distance (stop level) for that symbol. Typical on indices and gold right after news, and on ECN accounts where some stops must be set after the fill.
Order rejected, 10019 not enough moneyJOURNAL · TRADE REQUEST
cause 5The risk % produced a lot the margin of the account cannot carry (leverage, symbol margin rate). Smaller size, or the risk input is bigger than you think.
Works on demo, fails on the real accountSYMBOL SPECS DIFFER
cause 6Demo and real servers have different symbol specs: step, stop level and tick value often differ for the same name. A size that works on demo bounces on live — classic on prop-firm demo challenges vs funded accounts.

Where 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, a 0.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.

Check the size before you trade

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.

Keep reading

Size any trade with the symbol rules applied: lot size calculator. Sister guides: MT5 error 4756 (request failed) and MT5 error codes explained.

Author

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.