Risk percentage lot size calculation

MQL5 Uzman Danışmanlar

İş tamamlandı

Tamamlanma süresi: 1 gün
Müşteri tarafından geri bildirim
Great Developer! Code works like a charm and was delivered very quickly with useful complementary information!
Geliştirici tarafından geri bildirim
Excellent customer. Wishing you success in learning MQL.

İş Gereklilikleri

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

 

 

Yanıtlandı

1
Geliştirici 1
Derecelendirme
(182)
Projeler
342
42%
Arabuluculuk
118
12% / 73%
Süresi dolmuş
104
30%
Serbest
Yayınlandı: 4 kod
2
Geliştirici 2
Derecelendirme
(564)
Projeler
844
73%
Arabuluculuk
15
53% / 13%
Süresi dolmuş
193
23%
Serbest
Benzer siparişler
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
Expert Advisor 35+ USD
Hello, I have an MT5 Expert Advisor that compiles successfully with no errors, but it does not open any trades in live market or Strategy Tester. The EA logic is already implemented and quite detailed. I need an experienced MQL5 developer to debug, validate conditions, and fix execution issues, not to redesign the strategy. 🔹 Strategy Summary Timeframe: M30 Instruments: NAS100 / XAUUSD Core Logic: Market structure

Proje bilgisi

Bütçe
10 - 20 USD
Son teslim tarihi
from 1 to 2 gün