- What's your risk percentage per trade relative to your total account balance?
- How do you calculate Lot size
- [Archive!] FOREX - Trends, Forecasts and Consequences (Episode 10: December 2011)
Just because your car can go 150 MPH doesn't mean you should. Just because you have a lot of margin, doesn't mean you should use it. Control your risk.
Risk depends on your initial stop loss, lot size, and the value of the symbol. It does not depend on margin or leverage. No SL means you have infinite risk (on leveraged symbols). Never risk more than a small percentage of your trading funds, certainly less than 2% per trade, 6% account total.
-
You place the stop where it needs to be — where the reason for the trade is no longer valid. E.g., trading a support bounce, the stop goes below the support. Then you compute your lot size.
-
AccountBalance * percent/100 = RISK = OrderLots * (|OrderOpenPrice - OrderStopLoss| * DeltaPerLot + CommissionPerLot) (Note OOP-OSL includes the spread, and DeltaPerLot is usually around $10/PIP, but it takes account of the exchange rates of the pair vs. your account currency.)
-
Do NOT use TickValue by itself - DeltaPerLot and verify that MODE_TICKVALUE is returning a value in your deposit currency, as promised by the documentation, or whether it is returning a value in the instrument's base currency.
MODE_TICKVALUE is not reliable on non-fx instruments with many brokers - MQL4 programming forum (2017)
Is there an universal solution for Tick value? - Currency Pairs - General - MQL5 programming forum (2018)
Lot value calculation off by a factor of 100 - MQL5 programming forum (2019) -
You must normalize lots properly and check against min and max.
-
You must also check Free Margin to avoid stop out
-
For MT5, see 'Money Fixed Risk' - MQL5 Code Base (2017)
Most pairs are worth about $10 per PIP. A $5 risk with a (very small) 5 PIP SL is $5/$10/5 or 0.1 Lots maximum.
Just because your car can go 150 MPH doesn't mean you should. Just because you have a lot of margin, doesn't mean you should use it. Control your risk.
Risk depends on your initial stop loss, lot size, and the value of the symbol. It does not depend on margin or leverage. No SL means you have infinite risk (on leveraged symbols). Never risk more than a small percentage of your trading funds, certainly less than 2% per trade, 6% account total.
-
You place the stop where it needs to be — where the reason for the trade is no longer valid. E.g., trading a support bounce, the stop goes below the support. Then you compute your lot size.
-
AccountBalance * percent/100 = RISK = OrderLots * (|OrderOpenPrice - OrderStopLoss| * DeltaPerLot + CommissionPerLot) (Note OOP-OSL includes the spread, and DeltaPerLot is usually around $10/PIP, but it takes account of the exchange rates of the pair vs. your account currency.)
-
Do NOT use TickValue by itself - DeltaPerLot and verify that MODE_TICKVALUE is returning a value in your deposit currency, as promised by the documentation, or whether it is returning a value in the instrument's base currency.
MODE_TICKVALUE is not reliable on non-fx instruments with many brokers - MQL4 programming forum (2017)
Is there an universal solution for Tick value? - Currency Pairs - General - MQL5 programming forum (2018)
Lot value calculation off by a factor of 100 - MQL5 programming forum (2019) -
You must normalize lots properly and check against min and max.
-
You must also check Free Margin to avoid stop out
-
For MT5, see 'Money Fixed Risk' - MQL5 Code Base (2017)
Most pairs are worth about $10 per PIP. A $5 risk with a (very small) 5 PIP SL is $5/$10/5 or 0.1 Lots maximum
Good point. I agree that margin and leverage should not be treated as risk control. They only define whether a position can be opened, while the real trade risk comes from stop distance, lot size, symbol value and commissions.
I also agree that the stop should be placed first, where the trade idea becomes invalid, and only after that the lot size should be calculated.
This is probably the part many manual traders skip: they choose the lot first and adjust the Stop Loss later.
Do you usually calculate DeltaPerLot manually for every symbol, or do you rely on broker data and then validate it?
I calculate my lot size primarily according to account size and combine it with a risk management system. Once I reach my daily target, I stop trading and come back the next day. For me, protecting capital and staying disciplined are more important than trying to maximize profits.
Protecting capital and staying disciplined are more important than trying to maximize profits.I calculate my lot size primarily according to account size and combine it with a risk management system. Once I reach my daily target, I stop trading and come back the next day. For me, protecting capital and staying disciplined are more important than trying to maximize profits.
Protecting capital and staying disciplined are more important than trying to maximize profits.That makes sense. Calculating lot size from account size and a risk management rule is much safer than choosing the lot first and adjusting the Stop Loss later.
I also agree about stopping after reaching a daily target. It helps avoid overtrading, which is a common problem in manual trading.
Do you also use a daily loss limit? In my opinion, a daily profit target and a maximum daily loss should work together: one protects profits, the other protects capital when market conditions are bad.
Forum on trading, automated trading systems and testing trading strategies
If an EA Is Truly Profitable, Why Sell It?
Ryan L Johnson, 2026.06.07 17:17
Here's a little known position sizing method to help with scaling up.
Let's assume that you have a simple entry and exit EA with a profit factor of 1.5, for example:
- Run it through the Tester.
- Read the Tester Report carefully.
- Pay particular attention to the months, days, and hours in which the EA is profitable.
- Code a time filter that blocks entries during the worst times in the EA.
- Run a fresh backtest with the time filter implemented.
- Examine the average count of consecutive loss trades─let's call this "NL".
- Code automatic position sizing based on say, 1% of account balance, into the EA.
- Code an exception to that 1% position size that triggers when NL+1 occurs (the EA has exceed its average loss count).
- Code an overriding minimum position size of say, 0.01, to operate when that exception occurs.
The purpose of that process is to solve the mystery of attempting to predict when the EA's logic will be profitable versus unprofitable. Arguably, the best way to track live prices, spread, slippage, etc. is to simply continue trading. Of course, it's nonsensical to continue on trading as if losing streaks don't exist─hence, the bottomed-out position size at the start of each losing streak. As soon as a tiny trade returns a profit, the balance-based position size is once again in effect. As a result the account balance grows, the default position size grows, the account balance grows─it's a vicious "profit loop." Get ready to add some zeros to the backend of your EA's net profit.
Unfortunately, that is so true. In fact, it happened to me without earning millions─it was merely 5 digits. I made a large withdrawal for the purpose of switching broker-dealers and my old broker-dealer closed my account without me even asking. if the goal was to make the disdain mutual, their plan certainly worked.
It's rather ironic that I can get better service from a prop firm than a registered FX broker-dealer. In fact, the apex of success at the prop firm that I use would be a direct hire with a salary.Interesting approach. I like the idea of reducing position size when the EA goes beyond its normal losing streak, instead of continuing with the same risk as if market conditions had not changed.
However, I would be careful with two points. First, filtering by months, days or hours can easily become overfitting if the sample is not large enough. Second, the average losing streak may not be sufficient for live trading, because the next losing streak can be longer than the historical average.
In my opinion, this kind of adaptive position sizing should be tested on out-of-sample or walk-forward data, and it still needs a hard maximum drawdown or daily loss limit.
For manual trading, the principle is similar: lot size should be calculated from risk first, not from hope that the next trade will recover the previous losses.
Interesting approach. I like the idea of reducing position size when the EA goes beyond its normal losing streak, instead of continuing with the same risk as if market conditions had not changed.
However, I would be careful with two points. First, filtering by months, days or hours can easily become overfitting if the sample is not large enough. Second, the average losing streak may not be sufficient for live trading, because the next losing streak can be longer than the historical average.
In my opinion, this kind of adaptive position sizing should be tested on out-of-sample or walk-forward data, and it still needs a hard maximum drawdown or daily loss limit.
For manual trading, the principle is similar: lot size should be calculated from risk first, not from hope that the next trade will recover the previous losses.
Exactly. My full calculation for algorithmic trading is stoploss points converted to account currency units, converted to a percentage of account balance (an input that auto-adjusts afterward), and ultimately set based on a lengthy backtest report─containing consecutive losses, relative drawdown, maximum drawdown, and profitable times. I also implement a time filter that goes on and off 4 times per day, ignores 1 day, and a presently unused monthly filter.😉
I'm not so sure that we're traders. I feel like a data forecaster, or a weapons manufacturer.😂
Exactly. My full calculation for algorithmic trading is stoploss points converted to account currency units, converted to a percentage of account balance (an input that auto-adjusts afterward), and ultimately set based on a lengthy backtest report─containing consecutive losses, relative drawdown, maximum drawdown, and profitable times. I also implement a time filter that goes on and off 4 times per day, ignores 1 day, and a presently unused monthly filter.😉
I'm not so sure that we're traders. I feel like a data forecaster, or a weapons manufacturer.😂
Yes, that is very close to how I see it too. In algorithmic trading the trader often becomes more of a data analyst and risk manager than a traditional trader.
I like the sequence you described: first convert the Stop Loss distance into account currency, then into a percentage of balance, and only after that adjust the lot size according to tested risk parameters.
The time filter is also interesting, but I think it is one of the areas where overfitting can appear very easily. Do you validate those time filters with out-of-sample or walk-forward testing, or do you mainly rely on the full backtest report?
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use