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
Pro bot 35 - 200 USD
Should be able to trade for me when I need to trade and make few or no loses.should help me trade profitably while on the chart.Tge more profits,the more we play
The bot must be able to identify market structure ( trending , ranging and REVERSAL). Support and resistance breakout with a lot of volume and pullback to the key level and wait for confirmation to enter the trade. Only trades NY session. Uses proper risk management with SL (10 pips) and TP( 30 pips). The bot will only use the 5min timeframe for market structure and executing trades, incase of ranging it enters buys
Hello team..... It is my first time to be here and to order, so if I am not doing right please advise me, I am very teachable and good listener. I am here to order EA with a name given HouseXplore FxPro EA 4.0v. The EA can use the attached indicators to work but I will explain how. I attached 1. Bykov Trend Signal Arrows and the EA should use this indicator to open trades but Imputs on the TrendAlert indicator should
Looking for an MQL5 developer for ongoing work EAs + TradingView indicators (Gold, Silver, BTCUSD) Hey, I'm a trading content creator/influencer with an active community, and I need EAs I can offer to my audience. Not a one off gig looking to build a long-term working relationship with someone who's actually solid at this. What I need: Automated trading EAs (scalp or intraday style) for Gold, Silver, and BTCUSD
Greetings, I need a Telegram copier bot that reads Telegram signal messages i share in my channel and executes the corresponding trades. If you already have an existing, operational tool of this nature, please share the relevant particulars (supported signal formats, execution/confirmation logic, risk controls, and error/failure handling), together with any verifiable performance evidence. If not i can share the
Swing Breaks & AMD Expert Advisor The Swing Breaks & AMD Expert Advisor is an automated trading system designed around two core market-structure concepts: Swing Breaks and the AMD (Accumulation, Manipulation, Distribution) model . The EA is designed to analyze price action, identify meaningful swing structures, detect potential breaks of those structures, and evaluate the surrounding market behavior for possible AMD
Hi, I am looking for a profitable bot based on grid and recovery strategy for stable currency pairs like eurusd, gbpusd, audusd etc not for volatile pairs like gold (xauusd). My reuirements:- 1) make atleast 20 to 30 dollars of profit 2) life time license 3) adjustable lot size, adjustable spread, adjustable dollar stop loss 4) run on any number of account 5) bug support if not works well in future. 6) source code
I want to build a diversified portfolio of algorithmic trading EAs for MT5 , designed specifically for long-term use with prop firms. The objective is not to find one extremely profitable EA . The objective is to build multiple independent strategies that produce a smoother combined equity curve, low portfolio drawdown, and consistent returns across different market conditions. Primary Portfolio Objectives Design
I'm looking for a swing trading EA that takes 1-3 trades / week, holds these positions from a few days up to about 1.5 weeks. Symbol : any Strategy : any Timeframe : any Platform : MT4 only The catch : you would need to come up with the STRATEGY AND do the CODING The must have's : c onstant monthly returns, low drawdown I will backtest the trial version of your .ex4 file for 20+ years with 99.9% tick data accuracy
Hi, I am looking for a trainer/developer who can teach me MQL5 and python scripting to develop my own profitable EA. If any one interested please let me know and share the course details along with the fees

Informations sur le projet

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