حداکثر لات مجاز بر اساس مارجین (OrderCalcMargin)
بیشترین حجمی که با یه بودجه مارجین مشخص میتونی تأمین کنی رو حساب میکنه. OrderCalcMargin اهرم واقعی، نوع محاسبه نماد (فارکس، CFD، فیوچرز) و ارز مارجین رو هم در نظر میگیره.
کاربرد
محدود کردن درگیری مارجین به 25% از مارجین آزاد تو هر معامله — روی شاخصها که مارجین هر لات بالاست واقعاً لازمه.
پیشنیازها
MetaTrader 5, MQL5
MQL5
double MaxLotByMargin(string symbol, ENUM_ORDER_TYPE type, double marginBudget)
{
double price = (type == ORDER_TYPE_BUY)
? SymbolInfoDouble(symbol, SYMBOL_ASK)
: SymbolInfoDouble(symbol, SYMBOL_BID);
double marginOneLot = 0.0;
if(!OrderCalcMargin(type, symbol, 1.0, price, marginOneLot) || marginOneLot <= 0.0)
return 0.0; // symbole non synchronisé ou calcul impossible
return NormalizeLot(symbol, marginBudget / marginOneLot);
}
// Exemple : ne jamais engager plus de 25% de la marge libre
double budget = AccountInfoDouble(ACCOUNT_MARGIN_FREE) * 0.25;
double maxLot = MaxLotByMargin(_Symbol, ORDER_TYPE_BUY, budget);نتیجه
2026.06.10 11:12:40.207 MarginCap (US30,M5) Marge libre 9850.00 USD -> budget 25% = 2462.50 USD 2026.06.10 11:12:40.208 MarginCap (US30,M5) OrderCalcMargin(BUY, 1.00 lot @ 42985.0) = 2149.25 USD 2026.06.10 11:12:40.208 MarginCap (US30,M5) Lot max finançable = 2462.50 / 2149.25 = 1.1457 -> normalisé 1.14 2026.06.10 11:12:40.209 MarginCap (US30,M5) Levier réel et devise de marge intégrés par le serveur
OrderCalcMarginMargeRisk ManagementIndices