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
This Expert Advisor (EA) will use a custom indicator that connects all Higher Lows (HL), Higher Highs (HH), Lower Highs (LH), and Lower Lows (LL) using a continuous line. The line structure created by this indicator will be used to detect a valid W pattern for BUY trades
I already have an EA and willing to work together with a talented professional programmer so that we can make a profitable EA for the long-term. RazorQuant AI | Buy Trading Robot (Expert Advisor) for MetaTrader 5 RAZORQUANT AI v3.7 (MT5 EA) Purpose: Automated trading EA that combines classic technical filters with machine-learning signals and optional external AI (LLM) advice to decide BUY/SELL/HOLD and manage
I’m looking to develop an MT5 Expert Advisor based on a breakout and retracement strategy . Below is the core logic of the EA: Identify and mark the daily high and daily low Place a Buy Stop above the daily high and a Sell Stop below the daily low, using a 40-pip buffer Once a pending order is triggered: Set Stop Loss and Take Profit dynamically using ATR Apply an ATR-based trailing stop If price continues moving in
Hi, I’m looking for an experienced MT5 EA developer to build an Expert Advisor based on Elliott Wave and Fibonacci strategies . I’m specifically seeking a developer who already understands these strategies well and can actively advise on the best implementation approach , not someone who simply asks me what to build. I want to collaborate with a developer who can contribute ideas and structure the logic to achieve
Pre pending order EA 30 - 40 USD
Hey developers I want to code for me good pre pending order EA with a good strain stop loss, break out logic, MT5, it can trade starting from 20&, pre pending breakout logic , trend filter trades Xauus , Eurusd trades real breakouts
Range Reversal EA 29/01/26 Rev 0 Overview This EA will bound a range of price action over a set time. At a specified time range a trade will be enabled if price action triggers a reversal at or near to the bound range, by a stated offset. Typically the EA will be permitted to only take one trade per day. The EA is not to operate on Weekends. The EA will be left running on a MT5 platform on a server. Testing I will
Hello dear all developers, I am searching a programmer with experience with self-learning EA based on Ai. More details will be discussed with selected candidates. Source of code required, but it's obvious. Budget is negotiable
I am looking of an Expert Advisor (EA) that has undergone independent validation and demonstrates a capability to successfully navigate prop firm challenges, as well as efficiently manage funded accounts. It is imperative that you provide a comprehensive explanation of the strategy utilised by your EA, along with a demo version that has a 30-day expiration. This will facilitate extensive back testing and forward
EA WITH A DASHBOARD TO CHOSE THE TRADING MODE : AUTO (USING INDICATOR) OR MANUALLY I CAN CHOSE THE TRADING MODE : BUY OR SELL , OR NO TRADE . THERE WILL BE A MULTI TRADING TIME PERIODS AND EACH PERIOD HAS ITS WON TARGET THE EA WILL CLOSE ALL POSITIONS IF THE PERIOD TARGET HIT. TO OPEN BUY OR SELL THERE ARE TWO SENARIOS FOR EACH OF THEM MORE CHATRS AND DETAILS WILL PROVIDED TO THE CANDIDATES GOOD LUCK
On a new M15 candle, wait 4 minutes , then track the candle High and Low continuously . Important to begin all this process the 1st 4 min. the distance between the high and low not less than 8 USD$. Place Sell Stop at the candle High and Buy Stop at the candle Low . If a new High or new Low forms, cancel all pending orders , recalculate, and place new ones. One minute before candle close , delete all pending orders

Información sobre el proyecto

Presupuesto
50+ USD