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 need a fully functional Expert Advisor (EA) for MetaTrader 5 focused on trading XAUUSD (Gold). The strategy should be based on fast scalping entries using indicators such as RSI, Moving Averages, or similar confirmation tools. The EA must include fixed risk management (1%–2% per trade), automatic lot calculation, and stop loss/take profit settings. It should be optimized for low spread conditions and quick market
Sabaaif 255 - 366 USD
#include <iostream> using namespace std; int main() { double rsiValue; cout << "Gatii RSI galchi (0-100): "; cin >> rsiValue; if (rsiValue < 30) { cout << "MALLATTOO: Gabaan baay'ee gadi bu'eera. BITI (BUY)!" << endl; } else if (rsiValue > 70) { cout << "MALLATTOO: Gabaan baay'ee ol ka'eera. GURGURI (SELL)!" << endl; } else { cout << "MALLATTOO: Gabaan gidduu jira. EEGGADHU." << endl;
Mt5 EA 50 - 69 USD
I am a private trader looking for a reliable EA that can generate steady daily profits of around $35 to $40 with proper risk management. My goal is to find or improve an EA strategy that can deliver consistent results, especially on Gold (XAUUSD). If you believe you can review the current EA or develop a better solution, I would be interested in working with you. However, I would need to verify the EA on a demo
Subject:currently have a working EA installed with 3 indicators, but it’s not profitable.What I need: A trader/developer with a proven indicator that can be converted/integrated into my existing EA. The indicator must show a pass rate of 80% or higher on backtest/forward test.Scope of work: Your indicator will be added to my existing EA and must work with the current strategy logic. I will first test the indicator’s
I would like to program a ninja trader strategy that involves a Cycle ID indicator. Can you take a look to see if you can program the indicator in a strategy? Let me know if you can do this
I’m looking for an experienced developer to build a MT5 EA that combines the following three strategies into a single system: Strategy 1 – H1 Zone Rejection (Pullback Entry) Identify the high and low of the H1 timeframe Enter trades when price reaches the H1 high/low zones Confirm entry using a bullish/bearish candle on the M15 timeframe Target a 1:2 risk-reward ratio Strategy 2 – Breakout & Retest Identify the H1
Hello, I have a Ctrader indicator with the source code, I was wondering if this possible to convert it to Quantower. Hello, I have a Ctrader indicator with the source code, I was wondering if tis possible to convert it to Quantower., i need an expert who can convert it perfectly
AI Trading MQL5: Maximizing Profit from a $10 Investment Achieving significant profits from a small initial capital like $10 in AI trading with MQL5 requires a highly strategic and disciplined approach. While the potential for exponential growth exists, it's crucial to manage expectations and understand the inherent risks. **Key Strategies for Small Capital AI Trading:** 1. **Low-Risk, High-Probability
Manage my money and make strategy add money in my bank account analys account trade for me convert money in to my accountNext, you need to describe all terms and concepts contained in the idea description. If trend is important for your strategy, clearly define what indicator should be used to determine the trend direction and strength. The numerical characteristics of these definitions form the basis of Expert
I need a professional developer to help me create an EA using RSI and Moving averages.The strategies are well organised and everything is in order. I will send all the details in the inbox

Informations sur le projet

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