Open-source MQL5 library for calculating position size using account risk and stop loss.
- MQL5 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| Docs | ||
| Include | ||
| Scripts | ||
| LICENSE | ||
| README.md | ||
Smart Lot Calculator for MQL5
Smart Lot Calculator is an open-source MQL5 library for calculating position size according to the amount of money a trader is willing to risk.
The library uses MetaTrader 5's native OrderCalcProfit() function to estimate the potential loss between the entry price and the Stop Loss price in the account currency.
Features
- Calculates volume by risk percentage
- Calculates volume by a fixed monetary risk
- Supports balance, equity and free-margin risk bases
- Uses the broker's own symbol calculation settings
- Supports buy and sell calculations
- Respects minimum and maximum volume
- Respects the symbol volume step
- Rounds volume down to avoid exceeding the selected risk
- Provides clear error messages
- Does not open or manage trades
Repository structure
Include/SmartLotCalculator.mqh
Scripts/SmartLotCalculatorExample.mq5
Docs/Usage.md
Basic example
#include "../Include/SmartLotCalculator.mqh"
void OnStart()
{
MqlTick tick;
if(!SymbolInfoTick(_Symbol, tick))
return;
double entry_price = tick.ask;
double stop_price = entry_price - (500 * _Point);
string error = "";
double volume = CSmartLotCalculator::CalculateByRiskPercent(
_Symbol,
ORDER_TYPE_BUY,
entry_price,
stop_price,
1.0,
RISK_BASE_EQUITY,
error
);
if(volume <= 0.0)
{
Print("Calculation error: ", error);
return;
}
Print("Recommended volume: ", DoubleToString(volume, 2));
}
Important
This project is a position-sizing reference tool. It does not guarantee profits, prevent losses or provide trading signals.
Always verify the calculated volume before trading. Symbol specifications and trading conditions can differ between brokers.
License
MIT License.