Risk percentage lot size calculation

MQL5 Experts

Tâche terminée

Temps d'exécution 1 jour
Commentaires du client
Great Developer! Code works like a charm and was delivered very quickly with useful complementary information!
Commentaires de l'employé
Excellent customer. Wishing you success in learning MQL.

Spécifications

Hi All,

I would like to add to an existing and working MQL5 EA the ability to calculate the lot size based on a risk percentage. Or in other words how many percent of the account I'm willing to lose for each deal.

Here are some key elements of my EA setup:

The base currency is EUR

Trading pair is EURJPY

Leverage is 1/100

SL is fixed at 50 pips

Target risk percentage per deal should be a variable set by default on 5%  

 

The below formula seem to be the one needed to achieve my lot size calculation but I'm not sure. 

Lot Size = Amount Risked / Number of Pips x Pip Value 

 

I tried the created the code myself and here is where I stopped: 

Basically I need help to compete the "//Calculating Lot Size based on SL and Risk Percentage" part of the code. 

 

Let me know if you have any questions.  

 

Different Variables for the lot size calculation: 

input int      StopLoss=50;               // Stop Loss
input double   RiskPercentage=5;          // Lots to Trade

int STP, TKP; 
double LotSize;
double Pips;



//--- Let us handle currency pairs with 5 or 3 digit prices instead of 4
   STP = StopLoss;
   TKP = TakeProfit;
   if(_Digits==5 || _Digits==3)
     {
      STP = STP*10;
      TKP = TKP*10;
     }
   return(0);
  }

 My Buying Script

if(Buy_Condition_1 && Buy_Condition_2)
     {
         // any opened position?
         if((Buy_opened)||(Sell_opened))
           {
            //Alert("We already have an open Position. Oportuinity passed.");
            return;    // Don't open a new Buy Position
           }
           
         // Calculating Lot size based on SL and Risk Percentage
         
         MqlTick latest_price;
         SymbolInfoTick(_Symbol,latest_price);
         
         Pips = (latest_price.bid - STP)/_Point;          
         
         double AccountBalance = AccountInfoDouble(ACCOUNT_BALANCE);
         double TickValue = SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE);
         LotSize = (AccountBalance * (RiskPercentage/100))/(Pips * TickValue);  
         
         Print("Pips ", Pips, " Acc Bal: ", AccountBalance," Tick Val ", TickValue," Lot Size ", LotSize);      
         
         //Executing the Trade 
         ZeroMemory(mrequest);
         mrequest.action = TRADE_ACTION_DEAL;                                    // immediate order execution
         mrequest.price = NormalizeDouble(latest_price.ask,_Digits);             // latest ask price
         mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits);   // Stop Loss
         mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits);   // Take Profit
         mrequest.symbol = _Symbol;                                              // currency pair
         mrequest.volume = LotSize;                                                  // number of lots to trade
         mrequest.magic = EA_Magic;                                              // Order Magic Number
         mrequest.type = ORDER_TYPE_BUY;                                         // Buy Order
         mrequest.type_filling = ORDER_FILLING_FOK;                              // Order execution type
         mrequest.deviation=100;                                                 // Deviation from current price
         //--- send order
         OrderSend(mrequest,mresult);
         // get the result code
         if(mresult.retcode==10009 || mresult.retcode==10008) //Request is completed or order placed
           {
            Alert("A Buy order has been successfully placed with Ticket#:",mresult.order,"!!");
            SendNotification("BBWP added a new Buy order!");
           }
         else
           {
            Alert("The Buy order request could not be completed -error:",GetLastError());
            ResetLastError();           
            return;
           }
        
     }

 

 

Répondu

1
Développeur 1
Évaluation
(182)
Projets
342
42%
Arbitrage
118
12% / 73%
En retard
104
30%
Gratuit
Publié : 4 codes
2
Développeur 2
Évaluation
(564)
Projets
844
73%
Arbitrage
15
53% / 13%
En retard
193
23%
Gratuit
Commandes similaires
Product Requirements Document (PRD) Project Title: Liquidity Sniper Semi-EA (Fibonacci & SMC Based) Platform: MetaTrader 5 (MQL5) Target Asset: XAUUSD (High Volatility) / M5 Timeframe 1. EA Operating Concept (Semi-Automated) Human-Machine Collaboration: The trader manually draws a standard Fibonacci Retracement object on the M15 chart to define the market structure (setting the 1.0 and 0.0 anchor points). EA's Role
Looking for a good EA 30 - 100 USD
Hello guys,i am looking for a good already established ea,that doesnt blow account,only give 5 percent per month with maximum 10 percent drowdown,I need prove,i need to backtest by myself,after that i select the developer
Short Description: I am seeking an experienced MQL4 developer to build a high-frequency Asymmetric Salami Grid EA . This is a sophisticated volatility harvester, not a basic martingale. Key Features to Implement: Virtual Grid Execution: No pending orders; all logic handled in-memory via OnTick . Asymmetric Lot Sizing: Trend-side degression vs. Counter-trend progression . Salami Partial Liquidation: XX% of profits
I would like to convert my MT4 EA to MT5 EA, it should have all the default indicators in it but can remove the custom indicators, it should have the same logic as MT4 EA no chnages at all in the logic
Description: I am looking for an experienced MQL4 developer to create an Expert Advisor (EA) for trading DAX (GER40) based on the confluence of two indicators. I already have both indicators in .ex4/.mq4 format. Key Requirements: Indicators: Use "PivotPoints-All-In-One" and "shved_supply_and_demand" (via iCustom). Entry Logic: Open BUY/SELL only when a Pivot level (PP, S1, R1 etc.) is located inside a "Verified" or
Hello i need an expert advisor for meta trader 5 .Strategy: Trend on H1 using EMA 50. ENTRY on M5 when the price pulls back to EMA 21 or VWAP. BUY after bullish candle confirmation , SELL after bearish candle conformation.STOP LOSS 5- 8 pips ,TAKE PROFIT 10 - 15 pips.include spread filter , no trade on major news and a maximum of 3 trades per day
I am seeking an experienced MQL5 developer to build a high-precision Gold (XAUUSD) scalping Expert Advisor. The objective is to achieve a Profit Factor (PF) of 2.0 or higher with a focus on institutional logic rather than retail lagging indicators.The EA must be designed to pass a "100% Real Ticks" backtest (Exness/Dukascopy data) over a 30-day period with a $500 initial deposit.Core Requirements & Strategy
Title: Design and Development of an Automated Forex Trading Robot Using MQL5 and Machine Learning Techniques Abstract: This project focuses on the design and development of an automated Forex trading robot that integrates MQL5 programming and machine learning techniques. The system aims to predict market movements and execute trades automatically, minimizing human error and emotional trading. By leveraging historical
I am looking to purchase an existing multi-currency MT5 Expert Advisor that is capable of trading multiple currency pairs simultaneously . Please only contact me if you already have a ready-made EA and are willing to sell the full system including the complete source code . ⚠️ Important: If you do not own the EA, do not have the source code, or are planning to build something from scratch, please do not apply
Chin 30 - 300 USD
i want to add the 30m time frame in the ema section high ema is 1h low ema is 5m i want u to add a mid ema so i can use 3 time frames

Informations sur le projet

Budget
10 - 20 USD
Délais
de 1 à 2 jour(s)