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%
Travail
Commandes similaires
I need a simple bot for opening range. Simple Entry / Exit rules, to be able to customize the timeframe, time zone (entry candle) and other normal settings like size, etc
Hello, I am searching profitable, 0/1 rules strategy. Only serious offers please, I am expecting longer co-operation, I am open for your propositions, ideas. Have a nice day! I hope I will find here honest person
Need an Expert Advisor designed specifically for XAUUSD (Gold) , based on liquidity sweep + breakout confirmation logic. Market Focus Instrument: XAUUSD only Optimized for high volatility and intraday expansion behavior typical for Gold. Strategy Concept The EA is based on liquidity sweep of previous day levels followed by market structure shift and continuation in the confirmed direction. Daily Levels Previous Day
Can we do this 2 Indicatos at once NOTES 1. Step MA are on HTF, So values to be used are for Time frame that have closed 2. Pairs that are to be displayed for 2 STEP MA TREND DISPLAY are to be arranged in alphabetical order 3. Pairs in Bullish Weak trend are to be displayed in Green 4. Pairs in Bearish Weak Trend are to be displayed in Red 5. Position for displayed to be adjustable
GoldTrade EA 50 - 100 USD
Evening. I need a programme who will be patient with my EA specifications as it consists of +/- 30 sections ..but before we can start I want us to agree on these terms ...are as follows...the programmer should follow these order .[.Market regiom > trend bias > Lequidity > Smc > Momentum > Session > Risk > Entry > Exit ] and also should help me with these prototype request phase 1=Logicframework . phase 2=Entry engine
Hello everyone, I am looking for a profitable Expert Advisor (EA) that has already been developed and tested for use on the Deriv platform, particularly for Boom, Crash, Volatility Indices, Step Indices, and other synthetic indices offered by Deriv. I am interested in EAs with proven performance and verifiable results. If you have an EA that is already built and operational, I would be happy to discuss its strategy
Title Professional AI Automation Trading Bot for Forex & Crypto Solution Language Python (preferred) or MQL5 depending on integration requirements. Categories Expert Advisor (EA) for MetaTrader 5 Automated trading strategies AI/ML-based signal generation Risk management automation Required Skills Strong knowledge of MQL5/Python Experience with MetaTrader API integration Machine learning model deployment
Hello, I am looking for an experienced developer to build a fully automated Python-based MT5 trading bot. The strategy is based on Smart Money Concepts (SMC) and includes multi-timeframe analysis, automated trade execution, risk management, and backtesting. Requirements: Python and MetaTrader 5 integration SMC strategy implementation Automated trade execution Risk management (SL, TP, position sizing) Backtesting and
O EA deve operar - na corretora BINANCE - com duas médias móveis que podem ser aritmética, exponencial, ponderada, alma( Alnaud Legoux ), Jurik. O EA fica comprado quando a primeira média (rápida) cruzar a segunda média ( lenta ) para cima e vendido quando a primeira média cruzar a segunda média para baixo. Cada entrada deve ser zerada por stop loss, stop gain ou na virada de mão
BullyMax Pro 30+ USD
"Act as an expert MQL5 algorithmic trading developer. I want you to create a profitable and efficient Expert Advisor for MetaTrader 5. Do not write the code yet; read the following trading rules, analyze them, and ask me any clarifying questions if needed. Timeframe: [e.g.15 minutes Chart] Entry Logic: [e.g.MACD + RSI + REVERSAL PRICE ACTION. Enter buy when Macd line crosses above the signal line ,RSI above 30 and

Informations sur le projet

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