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
845
73%
Arbitrage
15
53% / 13%
En retard
193
23%
Gratuit
Commandes similaires
I need an Expert Advisor based on Vantage signals.It must have check and handling of trade operation errors. The main criteria for opening and closing a position: moving average direction the price is higher the previous bar Trade lots is an input parameter
I need you to develop an MT5 Expert Advisor (EA) in MQL5 specifically for BTCUSD , primarily trading on the 1-minute timeframe (M1) . The goal is to build a professional, rule-based automated trading system that trades strong impulsive BTCUSD moves in the direction of the trend , while using strict risk and money management. 1. CORE STRATEGY The EA should NOT randomly buy or sell. The basic sequence should be: Trend
seller must provide the following to be considered... i will answer to all who fit this description, and can purchase more than 1 EA... - brief strategy description - overall EA expectancy - 1 week limited trial version, with whatever settings you consider best (can be blocked on demo, i don't really care) - investor password from a reputable broker (if history is available... live / demo, same thing, doesn't really
I am looking for an experienced MQL5 developer to develop a fully automated XAUUSD (Gold) trading bot for MetaTrader 5. Requirements: Automated Gold trading with a reliable strategy. Stop loss, take profit, trailing stop, and drawdown protection. Adjustable lot size and risk settings. Backtesting and demo forward-testing results. Verified trade history or performance reports, if available. Complete MT5 source code
Expert Needs to integrate Volume Density ( Ticks Per Point ) Adaptive Volume Baseline ( Apply with experience ) , Order Flow Tick Volume Based ( required integration is for smooth execution ) , Every other requirement already exists by the expert , True Objective : To identify the true transition from Accumulation to Expansion/Distribution leading to Breakout capturing participation while eliminating false breakouts
I need a professional XAUUSD signal indicator for MetaTrader 5, written entirely in MQL5 (.mq5). IMPORTANT: This is NOT an auto-trading EA. It must never open, close or modify trades. It only analyzes XAUUSD and generates signals + MT5 push notifications. 1. Multi-timeframe analysis: H4 → H1 → M30 → M15 → M10 → M5 → M1. 2. Detect market structure: - Swing High / Swing Low - BOS - MSS - CHOCH - Bullish/Bearish HTF
Yes. The final “world-class” RegimeShift concept we converged on is an adaptive hybrid EA , not a single trend EA and not a pure recovery EA. The key idea is: Classify the market first → select the correct engine → size dynamically → stop using that engine when its market thesis is invalid. That is the part I would preserve as the final architecture. RegimeShift — Final Strategy Architecture Layer Final role H1 Macro
NextGen 30 - 50 USD
Hello, Before I select a developer, please confirm that you can implement the complete MT5 EA exactly according to my specification. The most important requirements are: 1. Strict NO-REPAINT / NO-HINDSIGHT logic. 2. Sweep, MSS/BOS, Displacement, FVG, Order Block and POI must be defined algorithmically before coding. 3. M1 and M5 confirmation logic. 4. Zero-Float Entry logic. 5. MT5 terminal alerts and immediate MT5
I need a professional XAUUSD signal indicator for MetaTrader 5, written entirely in MQL5 (.mq5). IMPORTANT: This is NOT an auto-trading EA. It must never open, close or modify trades. It only analyzes XAUUSD and generates signals + MT5 push notifications. 1. Multi-timeframe analysis: H4 → H1 → M30 → M15 → M10 → M5 → M1. 2. Detect market structure: - Swing High / Swing Low - BOS - MSS - CHOCH - Bullish/Bearish HTF
I would like to create a tradingview robot that will sync with tradovate. My strategy is as follows: Chart Setup - MES on left and MNQ on right. The MES chart has quarter levels on it. The MNQ has the volume indicator. Trading Session is from 9:30AM EST - 11:00AM EST If most recent price action has crossed *up* a quarter level on MES, I look for *sells* on MNQ. My trigger for a sell is a bearish engulfing candlestick

Informations sur le projet

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