- Risk depends on your initial stop loss, lot size, and the value of the pair.
- In code (MT4):
- 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.
- Account Balance * 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.)
- 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. - You must normalize lots properly and check against min and max.
- You must also check FreeMargin to avoid stop out
- Use a GUI EA like mine (for MT4): Indicators: 'Money Manager Graphic Tool' indicator by 'takycard' Forum - Page 6
- In code (MT4):
if(result[1] == "openLong"){ takeProfitPrice = NormalizeDouble(Ask + takeProfitPoints, Digits); stopLossPrice = NormalizeDouble(Ask - stopLossPoints, Digits); : } else if (result[1] == "openShort"){ takeProfitPrice = NormalizeDouble(Bid - takeProfitPoints, Digits); stopLossPrice = NormalizeDouble(Ask + stopLossPoints, Digits);
You buy at the Ask and sell at the Bid.- Your buy order's TP/SL are triggered when the Bid reaches it. Not the Ask.
- Your sell order's TP/SL will be triggered when the Ask reaches it. To trigger at a specific Bid price, add the average spread.
MODE_SPREAD (Paul) - MQL4 and MetaTrader 4 - MQL4 programming forum - Page 3 - The charts show Bid prices only. Turn on the Ask line to see how big the spread is (Tools -> Options {control-O} -> charts -> Show ask line.)

You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Hi
I tried many ways to calculate the stopLoss and takeProfit but could not get it write.
say I want the stop loss to be 40 pips away and the take profit to be 20 pips away.
the below code failed and many variation could not fix it either, I need to consider the forex pairs when jpy is present as well. Not sure how to do it. Please help, Thanks.