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 an Expert Advisor for MetaTrader 5 based on SMT and CISD strategy using NASDAQ and S&P500. Strategy logic: - The bot compares NASDAQ and S&P500. - Timeframe: 3 minutes. - First condition: One of the pairs must take liquidity from a previous high or low while the other pair does NOT take that liquidity (SMT divergence). - Second condition: The pair that took liquidity must close back below the high (or above
A robot 80+ USD
De breedste selectie betaalde en gratis robots, die een breed scala aan handelsstrategieën implementeren — selecteer degene die het beste bij uw handelsstijl past. Gedetailleerde productbeschrijvingen met screenshots en video's, maar ook recensies van andere kopers helpen u bij het maken van de juiste keuze. Profiteer van gratis tests om de producteigenschappen te evalueren voordat u het aanschaft. Uitgebreid prijzen
Cash Flow EA 30+ USD
I want a trading robot with proper risk management and good trading strategies it must make money ,place stop loss below the entry and place a take profit no loss only wins mostly trade major
Busco un robot para trading de scalping en oro o forex, el robot debe ser rentable en esos mercados, podemos automatizar mi estrategia basada en medias móviles con estrategia de scalping o bien si él desarollador tiene uno que funcione así y sea rentable podemos ver la opción de un demo o cuenta de lectura para estar seguros de la rentabilidad en el robot
MT4 EA TO TAKE TRADES FROM (A) HYDRA TREND RIDER AND (B) IQ GOLD GANN LEVELS ON MQL5.COM The MT4 version of these two indicators can be found on the mql5.com website with the following links: Hydra Trend Rider: https://www.mql5.com/en/market/product/111010?source=Site +Profile+Seller IQ Gold Gann Levels: https://www.mql5.com/en/market/product/134335?source=Site +Profile+Seller (1) ENTRY (a) Hydra Trend Rider
I have a strategy for US100 where I want a bot to trade according to my strategy, contact me who have proven experience in making bots for MT4 or MT5
I want a person who can help me to create bot. Setup would be 25 ema 50 ema cross over, when 25 ema cross 50 ema we will buy on upside and when it cross down side we will sell, condition is ADX I want to add ema of adx which I can explain in trading view only but I want to use this one in as a bot so how can we do it ? Need to do it in mt5 platform
I am currently looking to purchase a ready-made MT5 Expert Advisor designed specifically for prop firm trading . Requirements: Strategy must be safe for prop firm rules Maximum daily drawdown: below 4% Maximum overall drawdown: below 8% Target performance: 10% monthly return No martingale or high-risk grid strategies Must be able to run consistently on MT5 Purchase Conditions: I will require full source code (.mq5)
أنا أبحث عن مبرمج محترف لإنشاء روبوت تداول (Expert Advisor) يعمل على منصة MetaTrader 4 أو MetaTrader 5. مواصفات الروبوت: يعمل على زوج XAUUSD (الذهب) يفتح صفقة شراء أو بيع حسب الإشارة يعتمد على مؤشرين: Moving Average RSI عندما يتقاطع الموفينغ أفريج مع الاتجاه ويؤكد مؤشر RSI يتم فتح الصفقة. إدارة المخاطر: تحديد Stop Loss تحديد Take Profit عدم فتح أكثر من صفقة في نفس الوقت إمكانية تغيير الإعدادات بسهولة. مطلوب: كود نظيف
Job Description We are looking for an experienced MQL5 developer to build a professional Expert Advisor (EA) for MetaTrader 5 based on a detailed quantitative trading model. The EA will trade XAUUSD (Gold) on the M5 timeframe using a Session Breakout + Fibonacci Retracement strategy with advanced institutional-level filters. The system includes volatility filters, liquidity sweep detection, London session

Informations sur le projet

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