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
SMC Trading Bot 30 - 60 USD
1. The Core Idea: The "Liquidity-to-Liquidity" Engine Instead of just looking for a "Supply Zone," the bot must ask: "Whose money was just taken, and whose money are we targeting next?" The "Valid Move" Checklist A structure break or a zone is only "Real" if it meets the SMC Trinity: Inducement/Sweep: Price must take out a previous minor high/low (Retail Stop Loss) before the move. Displacement: The move must be
Multi-Slave Inverse Hedging EA with Martingale Grid — MT5 Category: Experts Description: I am looking for an experienced MQL5 developer to build a professional-grade Expert Advisor system called Hedging EA Trader . This is a well-documented project — I have a full 30+ page Software Requirements Specification (SRS) ready to share with the selected developer. System Overview: The EA uses a Master/Slave architecture: 1
I'm looking for an experienced programmer that can build a good EA/Robot for Price Action and Ichimoku strategy.The strategy Involved only two indicators; Ichimoku Kinko Hyo and Price Action. Buy when Price Action crossess above Kumo Cloud (either Up or Down Kumo Cloud)with 1Pips and Sell when Price Action crosses below Kumo cloud (either Up or Down Kumo Cloud) with 1Pips and exit Buy and Sell Order when its crossed
my tick based EA works on demo account but it fails on real account, issues i can see / guess is order execution in demo account is less choppy and relaxed. is there anyone who can help me to fix it
Hello, I need some expert who can hlep me fix the errors of this bot that will work normally ba check the bot file, error messages, and any specific issues you are currently facing so you can get started
1. Project Overview I am looking for an experienced MQL5 developer to design a robust, clean, and well-structured Expert Advisor (EA) for MetaTrader 5. The goal is to transform a clearly defined trading logic into a stable, efficient, and fully configurable EA , suitable for backtesting and optimization. 2. Platform & Language Platform: MetaTrader 5 Programming language: MQL5 Code must follow best practices (modular
Please, I need an expert and professional to watch the uploaded video and tell me the name of the strategy. Thank you very much.Please name the strategy accurately, professionally, and clearly
I want a modification on my ea . A spread filter or slipage filter such that when the market price is less than 50 point away from the pend order , then ea check the spread if less than the set filter spread. If spread is more than the set spread, the ea will delete the pend order . Secondly , if the broker price is moved or sliped the pending order from the original price it was set by the tolerable slipage distance
Hi, I’m currently looking to purchase a profitable Expert Advisor (EA) for XAUUSD on MT4 and different Symbols . If you have an EA that has consistently been profitable, I’d be interested in purchasing the source code. I would like to backtest the strategy and evaluate it before making any purchases. What I’m ideally looking for: Designed specifically for XAUUSD (MT4) Consistent profitability with solid risk
Hello, good day to you Developers, I am looking for someone that can deliver on a project with the following requirements: The job I am about to give out will involve "Tradingview" and "Metatrader 5" Tradingview: for analysis, as the Strategy uses one second charts/candles, Metatrader 5: for executing and managing the trades. For this EA to work well for the project's aims, SPEED of execution is of upmost

Informations sur le projet

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