Risk percentage lot size calculation

MQL5 Experts

Job finished

Execution time 1 day
Feedback from customer
Great Developer! Code works like a charm and was delivered very quickly with useful complementary information!
Feedback from employee
Excellent customer. Wishing you success in learning MQL.

Specification

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;
           }
        
     }

 

 

Responded

1
Developer 1
Rating
(182)
Projects
342
42%
Arbitration
118
12% / 73%
Overdue
104
30%
Free
Published: 4 codes
2
Developer 2
Rating
(564)
Projects
844
73%
Arbitration
15
53% / 13%
Overdue
193
23%
Free
Similar orders
Hi, I have a specific set of rules and a strategy to execute a trade. I'm looking for a developer to assist me in developing an MQL5 EA based on my strategies
Project Overview We are seeking an experienced MetaTrader 5 (MT5) / MQL5 developer to design and build a production-ready Expert Advisor intended for live trading with capital at risk . This is not a hobby, experimental, or retail-grade EA. We are only interested in developers with proven experience delivering robust, well-tested MT5 systems . Project Objective Design and implement a high-quality MT5 Expert Advisor
Updated Freelance Job Instruction (Copy-Paste Ready) Description: Hello, I need a simple, secure MT4 Expert Advisor (pure MQL4, NO DLLs ) that protects my XAUUSD trading by instantly closing any new position opened by another EA (identified by magic number) when price is inside user-defined "block zones", and then enforces a cooldown period before allowing the next position from that EA. This is for risk management
I need someone to build a Telegram bot signal provider for IQ Option that works like this: 🔔 NEW SIGNAL! 🎫 Trade: 🇬🇧 GBP/USD 🇺🇸 (OTC) ⏳ Timer: 2 minutes ➡️ Entry: 5:29 PM 📈 Direction: BUY 🟩 ↪️ Martingale Levels: Level 1 → 5:31 PM Level 2 → 5:33 PM Level 3 → 5:35 PM Requirements: The bot should send signals automatically to Telegram. Must support multiple trades and martingale levels. I will test it for 3 days
Hi guys, — I’m looking to purchase an existing Expert Advisor with source code . Serious enquiries only, please. Below are my requirements: Mandatory requirements Source code required (full .mq5 , readable & well-commented preferred) Backtest period: 4 years — Jan 1, 2022 → Dec 31, 2025 (tick/data quality must be stated) Demo test: 1 month on a live/demo broker after backtest passes Target performance: ~15%
As in tittle, I need opening range breakout profitable EA, you mabe have ready made? If not we can create such EA together. Rules are Simple, I have programmed this EA, my budget is 30 USD
EA Development Request: Multi-Zone AutoTrading Blocker for MT4 (XAUUSD Focused) Description: Hello Freelancers, I'm a disciplined gold trader based in Canada, focusing on XAUUSD with a strong emphasis on risk management. I need a simple, bulletproof MT4 EA that disables AutoTrading (turning the button red) when price is inside any of 10 user-defined "block zones" to prevent any new positions from opening (from other
I am hiring an experienced MT4/MT5 EA developer to build a prop firm and personal account Expert Advisor for US30 and XAUUSD . The EA must be non-martingale , low drawdown , and designed for consistent profitability with strict risk control. Markets & Platform • Instruments: US30 and XAUUSD • Platform: MT4 or MT5 • EA must support .set file configurations Trading & Risk Requirements • Non-martingale • No
Hello, I am looking to purchase an existing MT5 Expert Advisor, specifically designed for scalping XAUUSD (Gold), with the following clear requirements: Core Requirements Instrument: XAUUSD (Gold) Timeframe: M1 or M5 Style: Real scalping with controlled risk No martingale / no grid strategies Stop Loss mandatory, proper risk management included EA must be already functional and ready to attach to the chart (not
I am looking for a trading robot with a similar strategy. I will buy a script that works similarly. Please send a description of how the script works or a test version in the message

Project information

Budget
10 - 20 USD
Deadline
from 1 to 2 day(s)