Выпущена бета-версия MetaTrader 4 Build 529 с новым компилятором - страница 105
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Коллеги! При компиляции выдается предупреждение:
possible use of uninitialized variable 'PipStep'
для такого куска:
Все переменные инициализированы как double, что ему не нравится?
вы объявили переменные типа double, инициализация - это присвоение значений объявленным переменным
double PipStep=0; сделайте
Я не пойму, демо-версии индикаторов в 555 билде только у меня не тестируются, или это совсем неважная проблема для дебюта Маркета?
а в 5-ке они тестяться?
ArrayCopyRates() также изменила свое поведение, раньше она производила виртуальное копирование в массив double[][6], теперь же производится виртуальное копирование в массив MqlRates[]. Для совместимости осталось копирование в массив double[][6], но это копирование не виртуальное, а реальное.
https://www.mql5.com/ru/forum/148325
Структура для хранения информации о ценах, объемах и спреде.
https://www.mql5.com/ru/docs/constants/structures/mqlrates
Так MqlRates в MetaTrader 4 build 555 это массив или структура?
Этот пример из справки (MetaTrader 4 build 555) не работает т.к. нет функции CopyRates
а в 5-ке они тестяться?
У кого-то и в 5-ке не тестятся?
вы объявили переменные типа double, инициализация - это присвоение значений объявленным переменным
double PipStep=0; сделайте
Сработало!!
Век живи, век учись!
Спасибо большое!
Так MqlRates в MetaTrader 4 build 555 это массив или структура?
Этот пример из справки (MetaTrader 4 build 555) не работает т.к. нет функции CopyRates
Так тоже не работает, можно увидеть рабочий пример в MetaTrader 4 build 555 с MqlRates ?MqlRates - структура
MqlRates[] - массив структур
В качестве примера работы со структурой MqlRates посмотрите скрипт period_converter_new
Пример работы ArrayCopyRates (документацию дополним)
Изменения в языке MQL4
У меня есть значительное количество советников, использующих DLL, которые уже давно переданы заказчикам. При этом для передачи параметров в DLL использовались массивы double[][6], в которые при инициализации функцией ArrayCopyRates() производилось виртуальное копирование таймсерий. А затем при вызове функций из DLL в качестве их параметров по ссылке передавались эти массивы и их текущий размер.
Получается, что когда заказчики обновят терминал до новой версии, все эти советники перестанут работать. Это прискорбно.
Правильно ли я понимаю, что для сохранения их работоспособности без изменения кода DLL теперь нужно вызывать ArrayCopyRates() перед каждым вызовом функции из DLL?
У меня есть значительное количество советников, использующих DLL, которые уже давно переданы заказчикам. При этом для передачи параметров в DLL использовались массивы double[][6], в которые при инициализации функцией ArrayCopyRates() производилось виртуальное копирование таймсерий. А затем при вызове функций из DLL в качестве их параметров по ссылке передавались эти массивы и их текущий размер.
Получается, что когда заказчики обновят терминал до новой версии, все эти советники перестанут работать. Это прискорбно.
Правильно ли я понимаю, что для сохранения их работоспособности без изменения кода DLL теперь нужно вызывать ArrayCopyRates() перед каждым вызовом функции из DLL?
Тут несколько сложнее. Структура, которую принимают dll тоже поменялась.
То есть, Вам необходимо переписать ArrayCopyRates в массив структур MqlRates. Также в Ваших dll нужно заменить описание соответствующей структуры