The issue might be due to the NormalizeDouble() function.
OPTION-1:
Ensure that the Digits variable is correctly defined, as it's required by the NormalizeDouble() function. Make sure you have int Digits = SymbolInfoInteger(Symbol(), SYMBOL_DIGITS); declared somewhere in your code before you use it in NormalizeDouble() .
int Digits; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { // Calculate position size based on risk percentage and stop loss LotSize = AccountInfoDouble(ACCOUNT_FREEMARGIN) * Risk_Percentage / Stop_Loss; // Get number of decimal places for the symbol Digits = SymbolInfoInteger(Symbol(), SYMBOL_DIGITS); Print("Expert Advisor initialized successfully."); return(INIT_SUCCEEDED); }
This will ensure that the Digits variable is properly defined before being used in the NormalizeDouble() function.
OPTION-2:
Make this change to declare Digits
int Digits = (int)SymbolInfoInteger(Symbol(), SYMBOL_DIGITS); // ... request.tp = NormalizeDouble(closePrice[0] + Take_Profit * Point, Digits); request.tp = NormalizeDouble(closePrice[0] - Take_Profit * Point, Digits);
or this
request.tp = NormalizeDouble(closePrice[0] + Take_Profit * Point, 4); request.tp = NormalizeDouble(closePrice[0] - Take_Profit * Point, 4);
Should be fine!
-
Please edit your (original) post and use the CODE button (or Alt+S)! (For large amounts of code, attach it.)
General rules and best pratices of the Forum. - General - MQL5 programming forum #25 (2019)
Messages Editor
Forum rules and recommendations - General - MQL5 programming forum (2023) -
double ma = iMA(Symbol(), 0, MA_Period, 0, MODE_SMA, PRICE_CLOSE);
Perhaps you should read the manual, especially the examples.
How To Ask Questions The Smart Way. (2004)
How To Interpret Answers.
RTFM and STFW: How To Tell You've Seriously Screwed Up.They all (including iCustom) return a handle (an int). You get that in OnInit. In OnTick/OnCalculate (after the indicator has updated its buffers), you use the handle, shift and count to get the data.
Technical Indicators - Reference on algorithmic/automated trading language for MetaTrader 5
Timeseries and Indicators Access / CopyBuffer - Reference on algorithmic/automated trading language for MetaTrader 5
How to start with MQL5 - General - MQL5 programming forum - Page 3 #22 (2020)
How to start with MQL5 - MetaTrader 5 - General - MQL5 programming forum - Page 7 #61 (2020)
MQL5 for Newbies: Guide to Using Technical Indicators in Expert Advisors - MQL5 Articles (2010)
How to call indicators in MQL5 - MQL5 Articles (2010) -
request.tp = NormalizeDouble(closePrice[0] + Take_Profit * Point, Digits); // Set take profit level request.tp = NormalizeDouble(closePrice[0] - Take_Profit * Point, Digits); // Set take profit level
Perhaps you should read the manual. MT5 does not have a Predefined Variable Point. Use the actual variable or the function Point.
How To Ask Questions The Smart Way. (2004)
How To Interpret Answers.
RTFM and STFW: How To Tell You've Seriously Screwed Up.
request.tp = request.price - (TAKE_PROFIT * Point);
')' - open parenthesis expected
whats the problem

- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Hi, I encounter this error when I execute my code: ')' - open parenthesis expected , I am unable to solve this error, I don't know what the problem is, would please help me to solve this error if possible? Here is my code:
I get this error in these two lines:
request.tp = NormalizeDouble(closePrice[0] + Take_Profit * Point, Digits); // Set take profit level
request.tp = NormalizeDouble(closePrice[0] - Take_Profit * Point, Digits); // Set take profit level