Valor monetario de un punto para 1 lot
Convierte la variación de precio más pequeña a divisa de la cuenta. El rodeo por tick_value/tick_size es obligatorio: en el oro y los índices, el tick no siempre vale 1 punto.
Requisitos
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));Resultado
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