Liquidity_Predator/Utilities/M_CalcMaxLotMargin.mqh

21 lines
630 B
MQL5
Raw Permalink Normal View History

2026-06-09 21:41:18 +02:00
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;
}