How do I calculate lot size? - page 4

 
Duplicate post deleted.
 
William Roeder:
The calculation of lot size is the calculation of maximum loss allowable. Risk is the open price - the initial stop loss (Buy: Ask-SL, Sell: SL-Bid) Maximum loss is risk times the loss per pip. That is what you want to be 2% of account balance. Nothing to do with margin. Figure where your open and stops will be, then lot size follows from that.
I know this is an old, but i am new to MQL, i am converting code to MQL5, is this still the most efficient way of calculating a lot size given a Stop Loss risk amount in MQL5 or are there easier ways of doing this now?
 
  1. Risk depends on your initial stop loss, lot size, and the value of the symbol. It does not depend on margin and leverage. No SL means you have infinite risk. Never risk more than a small percentage of your trading funds, certainly less than 2% per trade, 6% total.

    1. You place the stop where it needs to be — where the reason for the trade is no longer valid. E.g. trading a support bounce the stop goes below the support.

    2. AccountBalance * percent/100 = RISK = OrderLots * (|OrderOpenPrice - OrderStopLoss| * DeltaPerLot + CommissionPerLot) (Note OOP-OSL includes the spread, and DeltaPerLot is usually around $10/pip but it takes account of the exchange rates of the pair vs. your account currency.)

    3. Do NOT use TickValue by itself - DeltaPerLot and verify that MODE_TICKVALUE is returning a value in your deposit currency, as promised by the documentation, or whether it is returning a value in the instrument's base currency.
                MODE_TICKVALUE is not reliable on non-fx instruments with many brokers - MQL4 programming forum 2017.10.10
                Is there an universal solution for Tick value? - Currency Pairs - General - MQL5 programming forum 2018.02.11
                Lot value calculation off by a factor of 100 - MQL5 programming forum 2019.07.19

    4. You must normalize lots properly and check against min and max.

    5. You must also check FreeMargin to avoid stop out

    Most pairs are worth about $10 per PIP. A $5 risk with a (very small) 5 PIP SL is $5/$10/5 or 0.1 Lots maximum.

  2. Search for a GUI/Trade Assistant EA like mine (for MT4): 'Money Manager Graphic Tool' indicator by 'takycard' - Risk Management - Articles, Library comments - MQL5 programming forum - Page 6 #55 2018.01.14 and modified for screen resolution #75 2020.02.17

 
hrhsii #:
I know this is an old, but i am new to MQL, i am converting code to MQL5, is this still the most efficient way of calculating a lot size given a Stop Loss risk amount in MQL5 or are there easier ways of doing this now?

Hello! I'm using the following  code I think it might help you, it works fine for me. This returns the exact amount you need in the account currency for opening one Lot in a given Security.

double Actual_Acc_Curr_LotSize(double Price = 0.0)
{  
   double ret;
   if(Price == 0 || AccountCurrency() == SymbolInfoString(Symbol(),SYMBOL_CURRENCY_BASE))
      {
         ret = MarketInfo(Symbol(), MODE_TICKVALUE)/MarketInfo(Symbol(), MODE_TICKSIZE) * MarketInfo(Symbol(),MODE_BID); 
      }
   else ret = MarketInfo(Symbol(), MODE_TICKVALUE)/MarketInfo(Symbol(), MODE_TICKSIZE) * Price; 
   return ret;
}
 
Peter Mueller #: Hello! I'm using the following  code

What you wrote is non-sense. Risk does not depend on the current market price. Re-read #33.1.2

Reason: