После последнего обновления MQL5 до версии 1978 ОТ 23 января 2019 года перестали работать вызываемые булевы функции.
Valeriy Medvedev:
Здравствуйте.
Непонятно почему, но вызываемые булевы функции при компиляции файла выдают ошибку: syntax error: type expected
Кто подскажет причину проблемы?
Как это устранить?
Коды в студию!
Код:
//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool OpenPos(const string v_sym, const int v_tip, const double v_lot, const double v_pr=NULL, const int v_stop=NULL, const int v_take=NULL, const int v_ind=WRONG_VALUE, const string v_comm=NULL, ) { //m_trade.SetExpertMagicNumber(Magic*1000+((v_ind!=WRONG_VALUE) ?v_ind :0)); m_trade.SetExpertMagicNumber(Magic); double op=NULL,sl=NULL,tp=NULL; switch(v_tip) { case 0: for(int i=0; i<NamTry; i++) { op=NormD(v_sym,SymbolInfoDouble(v_sym,SYMBOL_ASK)); if(!FreeMoney(v_sym,ORDER_TYPE_BUY,op,v_lot)) return(false); sl=(v_stop>NULL) ? (op-NormE(v_sym,v_stop)*SymbolInfoDouble(v_sym,SYMBOL_POINT)) : NULL; tp=(v_take>NULL) ? (op+NormE(v_sym,v_take)*SymbolInfoDouble(v_sym,SYMBOL_POINT)) : NULL; if(m_trade.Buy(NormL(v_sym,v_lot),v_sym,op,sl,tp,(v_comm==NULL) ?compos :v_comm)) return(true); Sleep(100); } break; case 1: for(int i=0; i<NamTry; i++) { op=NormD(v_sym,SymbolInfoDouble(v_sym,SYMBOL_BID)); if(!FreeMoney(v_sym,ORDER_TYPE_SELL,op,v_lot)) return(false); sl=(v_stop>NULL) ? (op+NormE(v_sym,v_stop)*SymbolInfoDouble(v_sym,SYMBOL_POINT)) : NULL; tp=(v_take>NULL) ? (op-NormE(v_sym,v_take)*SymbolInfoDouble(v_sym,SYMBOL_POINT)) : NULL; if(m_trade.Sell(NormL(v_sym,v_lot),v_sym,op,sl,tp,(v_comm==NULL) ?compos :v_comm)) return(true); Sleep(100); } break; } return(false); }
А это вызов этой функции:
RefreshRates(); if(!OpenPos(sy[i].Name(),trend.At(i),lot.At(i),NULL,NULL,TakeProfit,index+1,"(Histo(1) = "+DoubleToString(my_ind.Histo(1),0)+")")) { //FileWrite(h,"Недостаточно средств для открытия позиции..."+open_order); fl_money=false; continue; }
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Valeriy Medvedev, 2019.01.31 11:08
Код:
//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool OpenPos(const string v_sym, const int v_tip, const double v_lot, const double v_pr=NULL, const int v_stop=NULL, const int v_take=NULL, const int v_ind=WRONG_VALUE, const string v_comm=NULL, )
Запятая.
fxsaber:
Спасибо. А до этого работал...
Запятая.
Valeriy Medvedev:
Спасибо. А до этого работал...
Спасибо. А до этого работал...
Компилятор изменился, стал более строго проверять синтаксис.
khorosh:
Это хорошо.
Компилятор изменился, стал более строго проверять синтаксис.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте.
Непонятно почему, но вызываемые булевы функции при компиляции файла выдают ошибку: syntax error: type expected
Кто подскажет причину проблемы?
Как это устранить?