MQL5

Money value of one point for 1 lot

Converts the smallest price change into account currency. The detour through tick_value/tick_size is mandatory: on gold and indices, a tick isn't always worth 1 point.

Prerequisites

MetaTrader 5, MQL5

MQL5
double PointValuePerLot(string symbol)
{
   double tickValue = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE);
   double tickSize  = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE);
   double point     = SymbolInfoDouble(symbol, SYMBOL_POINT);
   if(tickSize <= 0.0)
      return 0.0;
   return tickValue * (point / tickSize); // valeur d'UN point, pas d'un tick
}

// Exemple : montant risqué par une position existante
double slPoints = MathAbs(PositionGetDouble(POSITION_PRICE_OPEN)
                        - PositionGetDouble(POSITION_SL)) / _Point;
double risked = slPoints * PointValuePerLot(_Symbol)
              * PositionGetDouble(POSITION_VOLUME);
PrintFormat("Risque résiduel : %.2f %s", risked,
            AccountInfoString(ACCOUNT_CURRENCY));

Result

2026.06.10 12:04:09.551  PnLInfo (XAUUSD,M15)  tick_value 1.00 | tick_size 0.01 | point 0.01 -> 1 point = 1.00 USD/lot
2026.06.10 12:04:09.552  PnLInfo (XAUUSD,M15)  Position #812440021 : SL à 380 pts de l'entrée, volume 0.50 lot
2026.06.10 12:04:09.552  PnLInfo (XAUUSD,M15)  Risque résiduel : 190.00 USD
2026.06.10 12:04:09.610  PnLInfo (EURUSD,M15)  Contrôle EURUSD : 1 point = 1.00 USD/lot (tick = point ici)
Tick ValuePointConversionP&L

Related snippets

Back to the Data Lab