Особенности языка mql5, тонкости и приёмы работы - страница 223
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Для частного случая, когда для сортировки берется числовое поле (самая частая ситуация), написал вариант, который быстрее предыдущего на несколько порядков. Но при этом потребляет памяти в два раза больше. Актуально для больших массивов.
Применение (с замером времени выполнения).
Результат.
А как Вам такой вариант?
А как Вам такой вариант?
Не проверить.
Не проверить.
Библиотека QuickSort здесь
Библиотека QuickSort здесь
Спасибо, очень хороший вариант! Вроде, у меня тоже QuickSort, но по какой-то причине дикие тормоза.
Ваш бы вариант как-нибудь в макросы обернуть дополнительно, чтобы быстрее пользоваться...
Спасибо, очень хороший вариант! Вроде, у меня тоже QuickSort, но по какой-то причине дикие тормоза.
Ваш бы вариант как-нибудь в макросы обернуть дополнительно, чтобы быстрее пользоваться...
Не представляю, зачем тут макросы. И так всё очень просто.
как правильно оформить то что на C выглядит так:
int sort(void *arr,size_t isize,size_t size, int (*cmp)(void *item1,void *item2)); /// типовой прототип sort с функцией сравнения
???
пытаемся через шаблоны:
template <typename T>
int sort(T &arr[],int (*cmp)(const T &,const T&))
{
}
не выходит - в аргумент нельзя вписать указатель на функцию. Должен быть отдельно typedef
но typedef не может (или может??) быть шаблонным..
из этих проблем на ровном месте и произрастают макромсы :-)
как правильно оформить то что на C выглядит так:
int sort(void *arr,size_t isize,size_t size, int (*cmp)(void *item1,void *item2)); /// типовой прототип sort с функцией сравнения
???
пытаемся через шаблоны:
не выходит - в аргумент нельзя вписать указатель на функцию. Должен быть отдельно typedef
но typedef не может (или может??) быть шаблонным..
из этих проблем на ровном месте и произрастают макромсы :-)
Открыл для себя неочевидную особенность MQL (и C++)
То есть подстановка в параметр (p) значения по умолчанию производится в точке вызова метода (p.f1()) и это значение берется из описания метода в классе C1 - объявленном типе переменной ptr, а не реальном типе объекта obj.
(Что, в общем-то, логично).
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
Andrey Dik, 2022.06.24 08:38
MQL_VISUAL_MODE частный случай MQL_TESTER?
MQL_OPTIMIZATION частный случай MQL_TESTER?
то есть, MQL_TESTER включает в себя и MQL_VISUAL_MODE и MQL_OPTIMIZATION?
мне нужно, что бы советник выполнял некоторые действия при работе на чарте и в визуальном режиме, но не делал этого во всех остальных случаях. не соображу, как подобрать правильно для такого случая флаги при проверке MQLInfoInteger()?
я бы мог сделать очень просто, например так:
if (MQLInfoInteger(MQL_VISUAL_MODE) || MQLInfoInteger(MQL_CHART_MODE))
{
//выполняем некоторые действия
}
но флага MQL_CHART_MODE в mql5 не предусмотрено.
есть у кого какие мысли?
есть у кого какие мысли?
if (ChartID()!=0) {
// Graphical chart presents
// draws on it
}