
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В одном месте тип переменной изменить, а три остальных компилятор ошибками покажет - изменить имя поля. Можно подумать где-то десятки структур требуют сортировки. Да скорее всего одна структура требует сортировки.
нет не так задачу ставьте
а поставьте такую задачу: с помощью Вашего примера отсортировать структуру у которой десятки полей по каждому полю
ну и конкретный пример - пусть будет структура содержащая все свойства ордера "четверки" (OrderStoploss(), OrderTakeProfit(), OrderOpenTime()....) - их там с десяток то и наберется
и воспроизведите своим примеров сортировку массива таких структур по каждому полю ? - имхо, код Ваш довольно прилично будет весить, про то, что повторно такой код не возможно будет использовать выше писал
нет не так задачу ставьте
а поставьте такую задачу: с помощью Вашего примера отсортировать структуру у которой десятки полей по каждому полю
ну и конкретный пример - пусть будет структура содержащая все свойства ордера "четверки" (OrderStoploss(), OrderTakeProfit(), OrderOpenTime()....) - их там с десяток то и наберется
и воспроизведите своим примеров сортировку массива таких структур по каждому полю ? - имхо, код Ваш довольно прилично будет весить, про то, что повторно такой код не возможно будет использовать выше писал
Задача из области фантастики, ни разу не встречавшаяся практически.
Можно сделать отдельное поле по которому сортировать и перед сортировкой в него копировать с того поля, по которому надо сделать сортировку.
В MT 5 работает без проблем в МТ 4 ругается на ArraySwap так как Mql 4 ее не поддерживает...
Задача из области фантастики.
да нет, возможно средствами MQL, как раз, как Вы и предлагали использую СБ
но проблема будет, что этот код будет написан под конкретную задачу
ну если в примерах - воспроизвели панель терминала с ордерами в виде окошка MQL, сделали сортировки, все крутится, все работает
а захотели использовать часть кода для воспроизведения панели тестера "оптимизация", и получите, что правки вагон с тележкой, проще опять, по сути с нуля писать код, включая сортировки, имена полей же структур захочется иметь в удобочитаемом виде? - иначе нужно быть автором известного "ядра", чтобы держать в голове все имена идентификаторов в виде Абырвалг (Собачье сердце)
)))
да нет, возможно средствами MQL, как раз, как Вы и предлагали использую СБ
но проблема будет, что этот код будет написан под конкретную задачу
ну если в примерах - воспроизвели панель терминала с ордерами в виде окошка MQL, сделали сортировки, все крутится, все работает
а захотели использовать часть кода для воспроизведения панели тестера "оптимизация", и получите, что правки вагон с тележкой, проще опять, по сути с нуля писать код, включая сортировки, имена полей же структур захочется иметь в удобочитаемом виде? - иначе нужно быть автором известного "ядра", чтобы держать в голове все имена идентификаторов в виде Абырвалг (Собачье сердце)
)))
Все, что может быть понято не так, будет понято не так. Имел виду не возможность/невозможность, а практическую потребность в этом, то есть встречаемость этой задачи.
Не я придумал, что для каждой структуры надо писать свою Compare().
а зачем сортировать массив/вектор толстых структур по разным полям ?
пусть он лежит как есть, он имеет право быть даже const :-) а для разных целей можно строить индексы
Не я придумал, что для каждой структуры надо писать свою Compare().
именно так и есть, вернее я не знаю другого способа, а этот способ будет привязан к конкретной задаче
а топикстартер хочет за 10 баксов универсальное решение, ну как бы подождем, а вдруг что то и прояснится
а зачем сортировать массив/вектор толстых структур по разным полям ?
пусть он лежит как есть, он имеет право быть даже const :-) а для разных целей можно строить индексы
Сейчас кто-нибудь напишет... что мне так неудобно... что мы не домохозяйки, а супердевёлоперы и должны пользоваться всеми возможностями современных программистских технолгий, а дополнительный массив, это какое-то средневековье...
Хотя лично мне как раз такой вариант больше нравится.
Не прокатит:
1) Достаточно ArrayCopy в условную компиляцию вставить а не ArraySwap.
2) ArrayCopy необходимо прописывать кастомную, так как стандартная не поддерживает NonPod структуры.
3) Нужно еще одну условную компиляцию для ArrayResize многодоменного массива (функция дает разные результаты для разных версий МТ)
Не прокатит:
Ответ был не на все случаи жизни. Большинство закрывает.