Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1409
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вопрос по mql4 , а конкретнее по функции ArraySort()
Вот мой код
После того как LoY[0][0] после открытия ордера получила значение Bid( то есть 1.6134) функция ArraySort(LoY,WHOLE_ARRAY,0,MODE_ASCEND) отсортировала массив по возрастанию по первому измерению и поместила элемент массива с самым большим значением в самый верх массива. То есть LoY[0][0] вместе со своим значением стала LoY[30][0] в отсортированном по возрастанию массиве. Это логично и поэтому я с этим согласен.
Что на мой взгляд не логично и не приемлемо для меня? Почему ArraySort() LoY[15][0] поместила под индексом 0 не смотря на то что ее значение (1.61040) равно значениям всех остальных элементов массива кроме тридцатого. Так же не понятно почему ArraySort() LoY[30][0] поместила под индексом 15 не смотря на то что ее значение (1.61040) равно значениям всех остальных элементов массива кроме тридцатого.
ВОПРОС. Как сделать так что бы на данном тике элементом с индексом 0 был LoY[1][0] , а элементом с индексом 15 был LoY[15][0], а элементом с индексом 29 был LoY[30][0]
То есть как сделать так что функция и в дальнейшем не сортировала элементы с одинаковыми значениями. Ведь это не логично и бессмысленно.
Спасибо за помощь.
Вероятно такой алгоритм сортировки. Происходят некоторые перестановки элементов массива.
Попробуйте другие варианты сортировки.
Вероятно такой алгоритм сортировки. Происходят некоторые перестановки элементов массива.
Попробуйте другие варианты сортировки.
Спасибо большое за совет. Подскажите пожалуйста в mql4 другие варианты сортировки есть? Если есть где они находятся в Справочнике?
попробуйте:
правда функция для одномерного массива, но можно переделать
попробуйте:
правда функция для одномерного массива, но можно переделать
Спасибо большое.
Подскажите, пожалуйста,
код ищет открытые графики и создает метку с названием символа, но если два графика с одинаковым символом,
то создает метку только на одном графике.Что я делаю не так?
Подскажите, пожалуйста,
код ищет открытые графики и создает метку с названием символа, но если два графика с одинаковым символом,
то создает метку только на одном графике.Что я делаю не так?
Идентификаторы графиков (ChartID()) одного и того же символа отличаются. Их используйте.
Идентификаторы графиков (ChartID()) одного и того же символа отличаются. Их используйте.
ChartFirst()+i
т.е. перебираю все открытые графики
или я не правильно тебя понял? Можно как-то наглядно, в виде кода?
Очень странно, на всех новых открытых графиках ставит метку, только один график игнорирует (
Внимательно почитайте документацию и пример кода. У вас неправильно организован цикл.
Только не говорите, что цикл for и while одинаково работают. Проблема не в этом, а в выделенных строках.