Need help multiplying integer by SYMBOL_POINT to create a hard stop

 
int StopLoss = 10;
double openPrice = PositionOpenPrice(glSellTicket);
double point = SymbolInfoDouble(_Symbol,SYMBOL_POINT);
double stopLoss = openPrice + point*StopLoss;                     
stopLoss = NormalizeDouble(stopLoss,int(digits));
Print(__FUNCTION__," Sell Stop Loss Normalized "+ _Symbol +" "+DoubleToString(stopLoss));

I recently purchased the Expert Advisor for MetaTrader 5 *** and I seem to be having a problem with the highlighted code.

It returns a value of 0 when I really want to return a value that has a decimal that I can add. 

Please help. Beginner here. Thank you

MQL5.community - User Memo
MQL5.community - User Memo
  • www.mql5.com
You have just registered and most likely you have questions such as, "How do I insert a picture to my a message?" "How do I format my MQL5 source code?" "Where are my personal messages kept?" You may have many other questions. In this article, we have prepared some hands-on tips that will help you get accustomed in MQL5.community and take full advantage of its available features.
 
Is it maybe the value of digits you input to NormalizeDouble is zero?

That would truncate your double to be a natural number.

Therefore, most probably giving you zero, since your SL value is below 1.
 

Thank you for responding


double stopLoss = openPrice + point*StopLoss;    did not work with a variable
double stopLoss = openPrice + point*10;    it did work when I hardcoded the actual number


Why would it work this way? 

Please help to provided information as to how I can fix this to include a variable instead of hardcoding

 
double stopLoss = openPrice + point*StopLoss;        

You buy at the Ask and sell at the Bid. Pending Buy Stop orders become market orders when hit and open at the Ask.

  1. Your buy order's TP/SL (or Sell Stop's/Sell Limit's entry) are triggered when the Bid / OrderClosePrice reaches it. Using Ask±n, makes your SL shorter and your TP longer, by the spread. Don't you want the specified amount used in either direction?

  2. Your sell order's TP/SL (or Buy Stop's/Buy Limit's entry) will be triggered when the Ask / OrderClosePrice reaches it. To trigger close to a specific Bid price, add the average spread.
              MODE_SPREAD (Paul) - MQL4 programming forum - Page 3 #25

  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.)
    Most brokers with variable spreads widen considerably at end of day (5 PM ET) ± 30 minutes. My GBPJPY shows average spread = 26 points, but average maximum spread = 134 (your broker will be similar).

 
I am not sure. But I would suggest using brackets for your formula.

double stopLoss = openPrice + (point * StopLoss);
 
Dominik Egert #: I am not sure.

Perhaps you should read the manual. If you had read the Precedence Rules you would know that makes no difference.
   How To Ask Questions The Smart Way. (2004)
      How To Interpret Answers.
         RTFM and STFW: How To Tell You've Seriously Screwed Up.

 
Yes. Maybe.
A few days ago I had a mistake concerning brackets and I read up. Still, it's better to 4ead with brackets.
BUT, yes, of course you are right on that.





Reason: