Новая версия платформы MetaTrader 5 build 2980: Push-уведомления о торговых операциях - страница 47
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
b3036, думал, починят. Останется?
А обойти это как-то можно ?
там внутри MT4Orders - может какое "заклинание" сказать надо ?
А обойти это как-то можно ?
там внутри MT4Orders - может какое "заклинание" сказать надо ?
Не думаю, что MT4Orders к этому имеет отношение. Компилируйте в b3007-.
Не думаю, что MT4Orders к этому имеет отношение. Компилируйте в b3007-.
видимо действительно не имеет...
перекомпилил в том-же самом 3036 - тестирование прошло успешно.
единственное что поправил, добавил принудительную конвертацию (IntegerToString) в строке типа такой: Alert("тра-ля "+IntegerToString(lastError));
чудеса :-)
TesterStatistics(STAT_LOSS_TRADES) выскакивает предупреждение на int ставишь double не ругается.
Цитата из справки по ENUM_STATISTICS и функции TesterStatistics() :
"Хотя при вычислении статистики используются показатели двух типов - int и double - функция возвращает все значения в виде double."
TesterStatistics() всегда возвращает значения в double поэтому и ругается на integer.
А вот такие ошибки невероятно трудно обнаружить. Никак не мог понять, почему один и тот же код на MQL4 и MQL5 работает по-разному. А все оказалось из-за разных сигнатур у одноименной функции.
В MQL4:
int ArrayMinimum(
const void& array[], // массив для поиска
int count=WHOLE_ARRAY, // количество проверяемых
int start=0 // с какого индекса начинаем поиск
);
В MQL5:
int ArrayMinimum(
const void& array[], // массив для поиска
int start=0, // с какого индекса начинаем поиск
int count=WHOLE_ARRAY // количество проверяемых
);
То же самое с ArrayMaximum.
Это специально сделано или банальная невнимательность?
А вот такие ошибки невероятно трудно обнаружить. Никак не мог понять, почему один и тот же код на MQL4 и MQL5 работает по-разному. А все оказалось из-за разных сигнатур у одноименной функции.
Это специально сделано или банальная невнимательность?
Почитайте
А вот такие ошибки невероятно трудно обнаружить. Никак не мог понять, почему один и тот же код на MQL4 и MQL5 работает по-разному. А все оказалось из-за разных сигнатур у одноименной функции.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Может стоит причесать?
fxsaber, 2017.02.06 20:13
Можно делать и тогда не тратить время на объяснения#ifdef __MQL5__
template <typename T>
int MT4ArrayMaximum(
const T& array[], // массив для поиска
int count=WHOLE_ARRAY, // количество проверяемых
int start=0 // с какого индекса начинаем поиск
)
{
return(ArrayMaximum(array, start, count));
}
#define ArrayMaximum MT4ArrayMaximum
#endif
void OnStart()
{
int Array[] = {5, 4, 3, 2, 7};
Print(ArrayMaximum(Array, 3));
return;
}
Обновился на 3037, в журнале постоянно вот такое: