Skip to content

Get Total Profit/Loss (GetTotalProfitLossAsync) ⭐

⭐ CRITICAL METHOD: Calculate total unrealized P&L across all open positions.

API: MT5Service.GetTotalProfitLossAsync(...) Region: [15] POSITION MONITORING

Signature

public static async Task<double> GetTotalProfitLossAsync(
    this MT5Service svc,
    string? symbol = null,
    int timeoutSec = 20,
    CancellationToken ct = default)

Examples

// Total P&L
double totalPL = await svc.GetTotalProfitLossAsync();
Console.WriteLine($"Portfolio P&L: ${totalPL:F2}");

// EUR USD P&L only
double eurusdPL = await svc.GetTotalProfitLossAsync(symbol: "EURUSD");

// Risk alert
if (totalPL < -500)
{
    Console.WriteLine("🚨 Portfolio down $500 - emergency close!");
    await svc.CloseAllPositions();
}

// Real-time monitoring
while (true)
{
    double pl = await svc.GetTotalProfitLossAsync();
    Console.WriteLine($"[{DateTime.Now:HH:mm:ss}] P&L: ${pl:F2}");
    await Task.Delay(5000);
}

Summary

  • ✅ Returns total unrealized P&L (double)
  • ✅ Optional symbol filter
  • Essential for portfolio risk management