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
I want to modify my NT8 indicator to change its arrow printing logic so that arrows appear on the first candled dot, not after the series. no repaint and no back painting. all in real time. This will help me get timely signals. Scope of work - Modify NT8 indicator logic to print arrows on the first candled dot. - Ensure arrow print matches 90%+ accuracy compared to the current functionality. - Adjust the indicator to
What informtion would you need for Ninjatrader futures automated trading and how long would it take ? if anyone can give me answer i will be happy to discuss more about the project thanks fill free to bid to the project thanks
Hello, I need a MetaTrader 5 manual trading assistant panel (NOT an auto trading EA). MAIN IDEA This tool should work like the TradingView long/short position tool inside MT5. Trader workflow: 1) Enter Risk % 2) Enter RR ratio 3) Click SET ENTRY 4) Drag Stop Loss line on chart 5) Lot size and Take Profit calculate automatically 6) Press BUY or SELL to execute trade No trailing stop, no breakeven, no automatic trade
MT5 DEV NEEDED 60+ USD
Hello I'm looking to develop an Expert Advisor (EA) based on my existing indicator EA that uses TrendX600 on the 1-minute timeframe. My objective is to create a scalping bot that can successfully capture one box (60-second candle movement) at a time. If the EA can consistently capture one clean 60-second box without spikes, and repeat this process 4 to 5 times within 24 hours, that would meet my trading goal. To work
I have an existing MT4 MACD Convergence\Divergence indicator that I would like converted to a MT5 expert that will execute orders once a trigger is met. The existing indicator draws lines on the chart and provides a MACD indicator window. At a minimum I would like the existing MT4 indicator convert to a MT5 indicator
I’m seeking an experienced developer to create an AI-powered trading system integrated with MetaTrader 5. The scope includes delivering a fully functional MT5 module, an AI component a compatible language, and complete source code for both. This will focus exclusively on the core trading logic and AI integration UI elements or dashboards are not required. Apply only if you have proven experience with AI integrations
I’m seeking an experienced developer to create an AI-powered trading system integrated with MetaTrader 5. The scope includes delivering a fully functional MT5 module, an AI component a compatible language, and complete source code for both. This will focus exclusively on the core trading logic and AI integration UI elements or dashboards are not required. Apply only if you have proven experience with AI integrations
Dark venus mt5 30+ USD
Dark venus mt5 robot free download is opetion is not available plz am trying this plz help me download opetion of dark venus mt5 robot thank am waiting for your reply help me and opetion of download for robot
I want a prop-firm–compliant trading robot, not a fast or aggressive one. Objectives: – Pass a prop firm challenge safely within 2–4 weeks, not 1 week. – Focus on capital protection first, profit second. Risk & Money Management: – Risk per trade: 0.25%–0.5% max – No martingale, no grid, no recovery trading – One position per signal (optional scaling only after BE) – Global daily risk cap: 1%–1.5% – Respect both daily
Requirements: - Convert my written trading rules into TradingView Pine strategy - Then convert into MT5 EA - Entry must be next candle open after signal candle close - Stop loss on signal candle high/low - Position sizing: fixed % risk per trade - Portfolio risk cap across symbols - One trade per symbol at a time - Must understand backtesting differences (spread, slippage, fill logic) Important: I want to be able to

Informations sur le projet

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