Liquidity_Predator/Utilities/M_CalcMaxLotMargin.mqh
2026-06-09 21:41:18 +02:00

21 lines
No EOL
630 B
MQL5

double M_CalcMaxLotMargin(ENUM_ORDER_TYPE orderType)
{
double price = (orderType == ORDER_TYPE_BUY)
? SymbolInfoDouble(_Symbol, SYMBOL_ASK)
: SymbolInfoDouble(_Symbol, SYMBOL_BID);
double marginPerLot;
if(!OrderCalcMargin(orderType, _Symbol, 1.0, price, marginPerLot))
return 0.0;
double freeMargin = AccountInfoDouble(ACCOUNT_MARGIN_FREE);
double maxLots = freeMargin / marginPerLot;
// Auf gültige Lot-Schritte runden
double lotStep = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP);
maxLots = MathFloor(maxLots / lotStep) * lotStep;
return maxLots;
}