Иногда выдает отрицательный результат. Согласно документации такого быть не должно!
Пришлось дополнять код функцией
Имейте в виду!
Предоставте пожалуйста для изучения код, в котором результат MathRand оказался отрицательным.
При вычислении MathRand, последней операцией является return(res & 0x7FFF) - результат MathRand не может получится отрицательным Ошибка воможна из-за оптимизаций, но для проверки оптимизатора нужен код, на котором возникло отрицательное значение.
Какая разница, на каком уровне будет реализован этот цикл с проверкой?
Лет 8 назад я бы тоже ждал доработки МТ5, а сейчас осознаю, что, если что-то нужно, то быстрее сделать самому.
Андрей, я именно так и говорю всем. В частности о сообщением раньше чем то, с которого вы начали мне отвечать. Но, к сожалению, вы прочли только то, что хотели прочесть. А в начале сообщения я написал «Думаю не помешало-бы» значит мне это не очень надо и если будет необходимость я напишу для себя любимого.
Предоставте пожалуйста для изучения код, в котором результат MathRand оказался отрицательным.
При вычислении MathRand, последней операцией является return(res & 0x7FFF) - результат MathRand не может получится отрицательным Ошибка воможна из-за оптимизаций, но для проверки оптимизатора нужен код, на котором возникло отрицательное значение.
int GetRandomLine(int _min, int _max)
{
int num=(int)(_min + (_max-_min)*MathRand()/32767.);
return(num);
}
_min - всегда =0,
_max - всегда >0.
тем не менее иногда функция возвращает число <0
исправление кода на :
int GetRandomLine(int _min, int _max)
{
int num=(int)(_min + MathAbs((_max-_min)*MathRand()/32767.));
return(num);
}
Продолжение я решил выделить в отдельное сообщение.
Думаю не помешало-бы в сервисы добавить событийную модель. То-есть добавить такие события как:
В общем подобие OnChartEvent
Может кто ещё чего-то предложит.
Мне кажется, с большинством поставленных задач справится сервис.
А если нужно, чтобы событие получали все советники/индикаторы, сервис может слать всем чартам кастомное событие.
Мне кажется, с большинством поставленных задач справится сервис.
А если нужно, чтобы событие получали все советники/индикаторы, сервис может слать всем чартам кастомное событие.
Я и говорил о сервисе. Вы же понимаете разницу между постоянной проверкой в замкнутом цикле и реагированием на событие.
Ведь и от OnChartEvent можно отказаться, и от других событийных функций. Но они облегчают написание кода.
Правда я не знаю пока как-бы это можно было использовать, но ведь и OnTester, и OnTrade используют далеко не все даже при наличии таких функций.
Так-что я думаю лучше иметь и не пользоваться, чем не иметь и сетовать на недостаток…
Коллеги, добрый день.
Функция
Иногда выдает отрицательный результат. Согласно документации такого быть не должно!
Пришлось дополнять код функцией
MathAbs()Имейте в виду!
Коллеги, добрый день.
Функция
Иногда выдает отрицательный результат. Согласно документации такого быть не должно!
Пришлось дополнять код функцией
Имейте в виду!
Предоставте пожалуйста для изучения код, в котором результат MathRand оказался отрицательным.
При вычислении MathRand, последней операцией является return(res & 0x7FFF) - результат MathRand не может получится отрицательным
Ошибка воможна из-за оптимизаций, но для проверки оптимизатора нужен код, на котором возникло отрицательное значение.
Странно, что есть непрочитанные сообщения (выделены жирным) и в то же время красный счетчик непрочитанных сообщений равен нулю (отсутствует)
Возможно они были прочитаны ранее на другом устройстве, но почему тогда здесь выделены!?Я и говорил о сервисе. Вы же понимаете разницу между постоянной проверкой в замкнутом цикле и реагированием на событие.
Ведь и от OnChartEvent можно отказаться, и от других событийных функций. Но они облегчают написание кода.
Правда я не знаю пока как-бы это можно было использовать, но ведь и OnTester, и OnTrade используют далеко не все даже при наличии таких функций.
Так-что я думаю лучше иметь и не пользоваться, чем не иметь и сетовать на недостаток…
Какая разница, на каком уровне будет реализован этот цикл с проверкой?
Лет 8 назад я бы тоже ждал доработки МТ5, а сейчас осознаю, что, если что-то нужно, то быстрее сделать самому.
Какая разница, на каком уровне будет реализован этот цикл с проверкой?
Лет 8 назад я бы тоже ждал доработки МТ5, а сейчас осознаю, что, если что-то нужно, то быстрее сделать самому.
Андрей, я именно так и говорю всем. В частности о сообщением раньше чем то, с которого вы начали мне отвечать. Но, к сожалению, вы прочли только то, что хотели прочесть. А в начале сообщения я написал «Думаю не помешало-бы» значит мне это не очень надо и если будет необходимость я напишу для себя любимого.
Продолжать диалог бессмысленно.
Предоставте пожалуйста для изучения код, в котором результат MathRand оказался отрицательным.
При вычислении MathRand, последней операцией является return(res & 0x7FFF) - результат MathRand не может получится отрицательным
Ошибка воможна из-за оптимизаций, но для проверки оптимизатора нужен код, на котором возникло отрицательное значение.
_min - всегда =0,
_max - всегда >0.
тем не менее иногда функция возвращает число <0
исправление кода на :
решило проблему.
_min - всегда =0,
_max - всегда >0.
тем не менее иногда функция возвращает число <0
Тут дело в машинной арифметике - результатом произведения двух положительных чисел - может вполне стать отрицательное:
Результат: -2143382908
Уважаемые разработчики!
Просьба исправить Документацию.
Там есть пример скрипта, где, в частности, объявлено:
Так не работает. Нужно: