Display VaR per Symbol as opposed to the Entire Portfolio

MQL5 Indicadores Asesores Expertos

Trabajo finalizado

Plazo de ejecución 11 días
Comentario del Cliente
Was flexible and able to solve a difficult task. I appreciate his patience and hard work throughout this project :)
Comentario del Ejecutor
Super client

Tarea técnica

The code that has been provided calculates the value at risk for the entire portfolio (opened trades on MT5). I would like to understand what this comprises of on a per Symbol basis.


1) Calculate the Value at Risk for Each of the 10 Symbols (for Buy & Sells) and then for the Whole Symbol:

Line 51 of Account Manager Part 1:

input    string      CHART_MANAGEMNET1= "====== CHART MANAGEMENT ======";
input    string      symbol1          = "US30";      // Symbol - Other
input    string      symbol2          = "XAUUSD";    // Symbol 2 - Other
input    string      symbol3          = "AUDCAD";    // Symbol 3 - Forex
input    string      symbol4          = "AUDUSD";    // Symbol 4 - Forex
input    string      symbol5          = "AUDNZD";    // Symbol 5 - Forex
input    string      symbol6          = "EURUSD";    // Symbol 6 - Forex
input    string      symbol7          = "EURGBP";    // Symbol 7 - Forex
input    string      symbol8          = "USDCHF";    // Symbol 8 - Forex
input    string      symbol9          = "USDCAD";    // Symbol 9 - Forex
input    string      symbol10          = "GBPCHF";    // Symbol 10 - Forex

Suggested Process:

  //Calculate the Value at Risk for Buy & Sell Side - Note Repeat Process fro Symbols 2 - 10
  /*
  double ValueAtRiskB1
  double ValueAtRiskS1
  
  //Used to Calculate the Total Value at Risk of the Symbol - Note Repeat the Process for Symbols 2 - 10
 if((ValueAtRiskB1 - ValueAtRiskS1) > 0)
   {
   double ValueAtRisk1 = (ValueAtRiskB1 - ValueAtRiskS1)
   }
   else
   {
   double ValueAtRisk1 = (ValueAtRiskB1 - ValueAtRiskS1)*-1
   }
   


2) Show the Relevant Weightings of the Currently Open Trades (in terms of Value at Risk):

Divide the current Value at Risk of the Symbol by the Total Value at Risk & Convert to a Percentage

Line 173 of Account Manager Part 1

  // Portfolio Weighting 
  double Weighting1 = ValueAtRisk1/currValueAtRisk
  double Weighting2 = ValueAtRisk2/currValueAtRisk
  double Weighting3 = ValueAtRisk3/currValueAtRisk
  double Weighting4 = ValueAtRisk4/currValueAtRisk
  double Weighting5 = ValueAtRisk5/currValueAtRisk
  double Weighting6 = ValueAtRisk6/currValueAtRisk
  double Weighting7 = ValueAtRisk7/currValueAtRisk
  double Weighting8 = ValueAtRisk8/currValueAtRisk
  double Weighting9 = ValueAtRisk9/currValueAtRisk
  double Weighting10 = ValueAtRisk10/currValueAtRisk

3) Display Information in Dashboard:

            Comment(
   "  RISK MANAGEMENT:  ", "\n\n",
   "Symbol 1: VaR: " + DoubleToString(ValueAtRisk1, 2) + "Weighting:" + DoubleToString(Weighting1, 2) + "\n\n",
   "Symbol 2: VaR: " + DoubleToString(ValueAtRisk2, 2) + "Weighting:" + DoubleToString(Weighting2, 2) + "\n\n",
   "Symbol 3: VaR: " + DoubleToString(ValueAtRisk3, 2) + "Weighting:" + DoubleToString(Weighting3, 2) + "\n\n",
   "Symbol 4: VaR: " + DoubleToString(ValueAtRisk4, 2) + "Weighting:" + DoubleToString(Weighting4, 2) + "\n\n",
   "Symbol 5: VaR: " + DoubleToString(ValueAtRisk5, 2) + "Weighting:" + DoubleToString(Weighting5, 2) + "\n\n",
   "Symbol 6: VaR: " + DoubleToString(ValueAtRisk6, 2) + "Weighting:" + DoubleToString(Weighting6, 2) + "\n\n",
   "Symbol 7: VaR: " + DoubleToString(ValueAtRisk7, 2) + "Weighting:" + DoubleToString(Weighting7, 2) + "\n\n",
   "Symbol 8: VaR: " + DoubleToString(ValueAtRisk8, 2) + "Weighting:" + DoubleToString(Weighting8, 2) + "\n\n",
   "Symbol 9: VaR: " + DoubleToString(ValueAtRisk9, 2) + "Weighting:" + DoubleToString(Weighting9, 2) + "\n\n",
   "Symbol 10: VaR: " + DoubleToString(ValueAtRisk10, 2) + "Weighting:" + DoubleToString(Weighting10, 2) + "\n\n",
   "Total Value at Risk: $" + DoubleToString(currValueAtRisk, 2) + "\n\n", 
   "Standard Deviation: " + DoubleToString(currportfolioStdDev, 6) + "\n\n"  
   
   );


Note: Account Manager Part 2 - will likely need to be adapted. To fetch values from it make these values a double in the following code (this worked beforehand).


class CPortfolioRiskMan
{
   public:   
      double portfolioStdDev;
      double MultiPositionVaR;


Make sure to add the MPH file in the includes folder for decompiling.



Han respondido

1
Desarrollador 1
Evaluación
(16)
Proyectos
35
23%
Arbitraje
4
0% / 50%
Caducado
2
6%
Trabaja
2
Desarrollador 2
Evaluación
(7)
Proyectos
7
29%
Arbitraje
3
0% / 100%
Caducado
1
14%
Libre
Solicitudes similares
Project Name EliavTrade – Supply & Demand Prop Firm Trading System Executive Summary EliavTrade is an MT5 Expert Advisor designed to trade funded accounts and personal retail accounts using a rule-based Supply and Demand methodology combined with institutional risk management. The EA's primary objective is capital preservation and consistent account growth rather than aggressive returns. The system must be capable
Description: I am looking for a highly experienced MT5 developer to build a manual‑execution Expert Advisor called Chain Flow . This project is not suitable for beginners , indicator‑only developers, or anyone who has not previously built complex object‑based systems. The EA relies heavily on chart objects , state machines , and clean UI panel logic . Project Overview (High‑Level): Chain Flow is a manual execution EA
I'm after a solid, ready-to-use indicator (already built — not looking to commission from scratch) with the following: Clear BUY / SELL signals — clean and easy to read on the chart Around 75% accuracy (backtested / proven results preferred) Clear labeling directly on the chart for every signal Built-in Stop Loss levels Smart Take Profit targets (multiple TPs ideal) Fast-reacting — picks up moves quickly without
Hello, I am interested in working . I have several strategies that I want to automate. However, I need a developer beforehand to explain the strategies and discuss the next steps
Read signal and enter trade and close trade at good profits and open trade again. Either bullish or bearish signals at 0.1 on XAUUSD. Maximum trade a day should be 4-5 times with good opens and close signals. Looking foward to a long cooperation and also a honest and genuine person
Strategy Overview: I am looking for a professional MQL5 developer to create an Expert Advisor named "AURAE". The EA is based on a hybrid strategy that combines trend momentum analysis with volatility filters to identify high-probability entry points. Core Requirements: Logic: The EA should analyze trend direction using Moving Averages and confirm momentum using RSI. Entry Rules: * Buy: When the price closes above
AlphaGreen 150 - 200 USD
Hello, I need a professional MT5 Expert Advisor (EA) developed for a custom indicator-based strategy. Strategy Logic: Determine the trend direction: Uptrend = Buy opportunities only. Downtrend = Sell opportunities only. Entry Conditions: The indicator has 4 lines: 2 Green lines, 1 Red line, and 1 Blue line. Open a Buy trade when both Green lines move inside/between the Red and Blue lines during an uptrend. Open a
Robot trading 30+ USD
A trading robot that operates with a balance of $20 to $50, with a loss of $5 and a profit of $10, and a maximum of three trades per day
Prop Firm EA 30 - 40 USD
I am looking for an MT5 Expert Advisor specifically designed to help meet common prop-firm evaluation requirements while prioritizing consistency, low drawdown, and strong risk management. The EA should use a robust trend-following and market structure-based strategy with multi-timeframe confirmation, momentum filtering, and optional news filtering to avoid low-quality trades. It must include configurable risk
The bot uses: RSI MA(2/7) crossover for entry signals Price Bollinger Bands as trend filter RSI Bands(34) as confirmation London/NY session filter (M5 only) ATR-based SL/TP Gap bridge between sessions Here's your EA. Here's what it replicates from the Pine Script bot: Strategy logic RSI MA(2) crosses MA(7) for entry signals Price Bollinger Bands(20) as trend filter RSI Bands(34) as confirmation filter ATR-based SL/TP

Información sobre el proyecto

Presupuesto
50+ USD