MQL5

محاسبه حجم معامله بر اساس درصد ریسک

حجم دقیق معامله رو طوری حساب می‌کنه که اگه به حد ضرر خوردی، دقیقاً همون مبلغی که می‌خوای ضرر کنی؛ با کمک SYMBOL_TRADE_TICK_VALUE و SYMBOL_TRADE_TICK_SIZE — روی فارکس، شاخص‌ها و فلزات کار می‌کنه.

کاربرد

مدیریت سرمایه سفت‌وسخت: تو هر معامله دقیقاً 1% از اکوییتی رو ریسک کن، فرقی نمی‌کنه نماد چی باشه.

پیش‌نیازها

MetaTrader 5, MQL5

MQL5
double LotForRisk(string symbol, double riskMoney, double slPoints)
{
   double tickValue = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE);
   double tickSize  = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE);
   double point     = SymbolInfoDouble(symbol, SYMBOL_POINT);
   if(tickValue <= 0.0 || tickSize <= 0.0 || slPoints <= 0.0)
      return 0.0;

   // Perte en devise du compte pour 1 lot si le SL est touché
   double lossPerLot = slPoints * point / tickSize * tickValue;
   if(lossPerLot <= 0.0)
      return 0.0;

   return NormalizeLot(symbol, riskMoney / lossPerLot);
}

// Exemple : risquer 1% de l'équité sur un SL de 250 points
double risk = AccountInfoDouble(ACCOUNT_EQUITY) * 0.01;
double lot  = LotForRisk(_Symbol, risk, 250.0);

نتیجه

2026.06.10 10:02:14.873  RiskSizer (EURUSD,H1)  Equité 10000.00 USD -> risque 1% = 100.00 USD
2026.06.10 10:02:14.874  RiskSizer (EURUSD,H1)  SL 250 pts | tick_value 1.00 | tick_size 0.00001 -> perte/lot 250.00 USD
2026.06.10 10:02:14.874  RiskSizer (EURUSD,H1)  Lot calculé 0.40 -> normalisé 0.40 (min 0.01 / step 0.01)
2026.06.10 10:02:14.875  RiskSizer (EURUSD,H1)  Si SL touché : perte = 100.00 USD soit 1.00% de l'équité — OK
Risk ManagementLot SizingTick ValueExpert Advisor

اسنیپت‌های مرتبط

بازگشت به آزمایشگاه داده