Someone posted about this in another thread, which eludes me at the moment.
Basically, MQ has allowed broker-dealers to change margin required on-the-fly... so now some broker-dealers are. The margin rate can increase as total position size increases.
What you're seeing actually makes sense and it’s not a bug. It's a common broker policy called tiered margin or progressive margin.
Simply put, as you increase your position size (more lots), the broker increases the margin requirement accordingly as a way to manage risk. This means your effective leverage decreases as your exposure grows.
Why do they do this?
-
Risk protection: If a trader opens large positions with high leverage, even a small market move could wipe out the account. Raising the margin helps prevent that.
-
Market conditions: Bigger volumes can face lower liquidity and higher execution risk. The broker adjusts margin to cover that.
How does this benefit the trader?
It may seem limiting at first, but this system can actually protect you from overexposing your account. By requiring more margin as positions grow, it encourages more disciplined risk management and makes it harder to unintentionally overleverage. It's a safety net that can help you stay in the game longer, especially during volatile markets.
So when you passed a certain threshold, like going from 2 to 3 lots, the system adjusted the margin calculation automatically. It's not a glitch, it's a built-in safeguard for both the trader and the broker.
Hope this helps clarify what’s happening.
It has a name... step margin. From a U.S. forex broker-dealer's website (which shall remain nameless here):
"The larger the trade size, the higher the risk level associated with the trade. Therefore, we may increase our margin requirements for larger size trades or any additional trades in that instrument. To do this, [in-house platform] increases the size of the margin requirement at specific quantity levels, known as step margin levels. You can view a market’s step margin levels in its Market Information Sheet within the [in-house platform]. Step margins are not present in MetaTrader 4."
Interestingly, partially obsolete MT4 can't be configured for step margin.
This isn't an issue with exchange-based futures trading where there is always initial margin every day and maintenance margin (higher) every night.
How can I anticipate these changes of the margin requirements? As far as I understand, OrderCheck is only of limited use because it is based on positions that are already open. However, if I want to calculate the volumes of a whole cascade of orders/positions at different prices in advance without real open positions, then I have a problem.
Vague, half-baked idea: I check the margin requirements for different volumes (especially higher ones) with the aid of a script on a demo account and write them into a table.
I then use this table later in the real EA. In the hope that the margin requirements remain constant and are not changed in between.
Is this a useful idea or total nonsense?
Matthias
Interestingly there is a similar question /thread created one day ago or so. Please see https://www.mql5.com/en/forum/486768
![[Strange Margin Calculation Behavior in MT5 During Grid Scaling][Anyone Faced This?] [Strange Margin Calculation Behavior in MT5 During Grid Scaling][Anyone Faced This?]](https://c.mql5.com/36/89/strange-margin-calculation-behavior.jpg)
- 2025.05.17
- Emile Belot
- www.mql5.com
From a purely logical (not programmatic) standpoint, we can't be 100% certain what the increased margin rates will be unless they're published in advance by a forex/CFD broker-dealer.
Again in contrast, futures brokers publish their initial and maintenance margin rates with any changes in official online disclosures. As a caveat, futures margins are always higher than forex/CFD margins right out of the gate.
Hi,
I have a problem with margin calculation and would be very happy if someone can help.
MT5 build 4885. MetaQuotes Demo Account Netting. Leverage is 1:500. Deposit currency is EUR.
If I buy 1 Lot EURUSD all is like I expect:
Margin is 200 like I expect.
Buying another lot results in margin 400 which is like I expect. And these values remain constant during each price movements.
But somewhere between 2 and 3 lots there seems to be a fundamental change in the margin calculation. If I buy another lot I get:
Instead of a margin value of 600 I get 666.38 and this value is floating with the price changes.
I do not understand this?????
The specification of EURUSD does not help me here:
According to this table I expect a margin value of 600 for 3 lots and 1000 for 4 lots.
I ask very politely: can somebody help me here? Would be great.
Matthias
I opened 3.00 lot directly and I got 668.15 then 668.18
A bit later, I closed the trade and try again.
Strange but it's a test server. Don't know if it's a bug or a joke.
I opened 3.00 lot directly and I got 668.15 then 668.18
A bit later, I closed the trade and try again.
Strange but it's a test server. Don't know if it's a bug or a joke.

- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Hi,
I have a problem with margin calculation and would be very happy if someone can help.
MT5 build 4885. MetaQuotes Demo Account Netting. Leverage is 1:500. Deposit currency is EUR.
If I buy 1 Lot EURUSD all is like I expect:
Margin is 200 like I expect.
Buying another lot results in margin 400 which is like I expect. And these values remain constant during each price movements.
But somewhere between 2 and 3 lots there seems to be a fundamental change in the margin calculation. If I buy another lot I get:
Instead of a margin value of 600 I get 666.38 and this value is floating with the price changes.
I do not understand this?????
The specification of EURUSD does not help me here:
According to this table I expect a margin value of 600 for 3 lots and 1000 for 4 lots.
I ask very politely: can somebody help me here? Would be great.
Matthias