![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте,
Вопрос с 'Zero divide' решается с жюри.
Скорее всего в течении часа эксперты получившие данную ошибку будут перезапущены.
Здравствуйте,
Вопрос с 'Zero divide' решается. Скорее всего в течении часа эксперты получившие данную ошибку будут перезапущены.
Вот это уже дело. Теперь осталось понять почему проскакивает 315 участник (6 раз появлялся и исчезал).
Я уж подумал не начать ли мне креститься... :)
Возможно и другие режимы функции тоже возвращают ноль. Не может же баланс быть равен нулю на старте.
Просьба к организаторам проверить все режимы связанные с обслуживанием счета.
Здравствуйте,
Вопрос с 'Zero divide' решается с жюри.
Скорее всего в течении часа эксперты получившие данную ошибку будут перезапущены.
У меня нет 'Zero divide' , но при расчёте объёма отложенного ордера используется умножение на размер плеча. Если действительно leverage возвращает 0, то рассчитываемые объёмы отложенных ордеров окажутся равными 0, и ордера не будут сформированы-отправлены на сервер.
У меня, возможно, тоже не сформировался потенциально прибыльный ордер ('Zero divide' нет, но объем ордера возможно рассчитался равным 0).
Если организаторы примут решение о перезапуске экспертов с делением на ноль - это будет несправедливым решением!
Что делают в случае неправильного старта в спортивных соревнованиях, например, неправильная работа стартового светофора и т.п.? Правильно, рестарт!
Конечно, успешно стартовавшим участникам будет обидно, но так будет справедливо для всех!
Это только у меня двоится текущий лидер ShurikAn? Или что-то а-а-пще пошло не в ту степь?
Всем доброго!
Хотел бы наконец получить ответ разработчиков, на один из много численных вопросов....
Я уже писал что обнаружил странную аномалию при заполнении массива, ответа так и не было на мой вопрос, соответственно начал искать ошибки у себя, так вот нашел, но ошибку ли?????
в классе объявляю массив:
В такой ситуации копирование в массив m_buff_ функцией CopyBuffer выполняется в обратном порядке, т.е. первый элемент индикатора копируется в массив последним.
Самое смешное, что ранее массив мной объявлялся в классе без размерным (double m_buff_[]) и в такой ситуации функция CopyBuffer отрабатывала правильно(я так думаю).
В чем разница и где в хэлпе эта ситуация описана?
https://www.mql5.com/ru/docs/array/arraysetasseries
Примечание
Флаг AS_SERIES не может быть установлен у многомерных массивов и у статических массивов (то есть массивов, чей размер в квадратных скобках указан еще на этапе компиляции). Индексация в таймсерии отличается от обычного массива тем, что индексация элементов таймсерии производится от конца массива к началу (от самых свежих данных к самым старым).
Всем доброго!
Хотел бы наконец получить ответ разработчиков, на один из много численных вопросов....
Я уже писал что обнаружил странную аномалию при заполнении массива, ответа так и не было на мой вопрос, соответственно начал искать ошибки у себя, так вот нашел, но ошибку ли?????
в классе объявляю массив:
В такой ситуации копирование в массив m_buff_ функцией CopyBuffer выполняется в обратном порядке, т.е. первый элемент индикатора копируется в массив последним.
Самое смешное, что ранее массив мной объявлялся в классе без размерным (double m_buff_[]) и в такой ситуации функция CopyBuffer отрабатывала правильно(я так думаю).
В чем разница и где в хэлпе эта ситуация описана?
CopyBuffer
Получает в массив buffer данные указанного буфера указанного индикатора в указанном количестве.
Отсчет элементов копируемых данных (индикаторный буфер с индексом buffer_num) от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар (значение индикатора для текущего бара).
При копировании заранее неизвестного количества данных в качестве массива-приемника buffer[] желательно использовать динамический массив, так как функция CopyBuffer() старается распределить размер принимающего массива под размер копируемых данных. Если в качестве принимающего массива buffer[] выступает индикаторный буфер (массив, предварительно назначенный под хранение значений индикатора функцией SetIndexBufer()), то допускается частичное копирование. Пример можно посмотреть в пользовательском индикаторе Awesome_Oscillator.mq5 из стандартной поставки терминала.
Если необходимо произвести частичное копирование значений индикатора в другой массив(не индикаторный буфер), то для этих целей необходимо использовать промежуточный массив, в который копируется требуемое количество. И уже из этого массива-посредника произвести поэлементное копирование нужного количества значений в нужные места принимающего массива.
Если необходимо копировать заранее известное количество данных, то лучше это делать в статически выделенный буфер, чтобы избежать излишнего перевыделения памяти.
Неважно, какое свойство имеет приемный массив - as_series=true или as_series=false, данные будут скопированы таким образом, что самый старый по времени элемент будет в начале физической памяти, отведенной под массив.
https://www.mql5.com/ru/docs/array/arraysetasseries