Code Library / Risk Management
MQL5 Lot Size Calculator
Calculate lot size based on risk percentage and stop loss distance.
Language: MQL5 · Category: Risk Management · Tags: lot size, risk management, MQL5, position sizing, calculator
Source code
double CalcLotSize(double riskPct, double slPips) {
double bal=AccountInfoDouble(ACCOUNT_BALANCE);
double risk=bal*riskPct/100;
double tv=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE);
double ts=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE);
double pt=SymbolInfoDouble(_Symbol,SYMBOL_POINT);
double pv=tv*(pt/ts);
if(pv==0||slPips==0) return 0.01;
double lot=risk/(slPips*pv);
double mn=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
double mx=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
double st=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);
lot=MathFloor(lot/st)*st;
return NormalizeDouble(MathMax(mn,MathMin(mx,lot)),2);
}How to use this snippet
This is a building block, not a finished trading system. Paste it into your own MQL5 project, compile it, and test it on a demo account with your broker's real spreads before relying on it. If MetaEditor reports errors, the compilation error fixer can help.