Новая версия платформы MetaTrader 5 build 3550: улучшения и исправления - страница 8
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Буквально вчера хотел использовать функцию ArrayBsearch
но к сожалению, можно считать что её нет - от слова "совсем"
Что возвращает:
А где возврат -1, как узнать что элемент есть? Зачем нужен соседний, если мы ищем конкретный
Как вариант, добавить проверку после нахождения.
Если найденый элемент не равен искомому, значит -1 :))
Как вариант, добавить проверку после нахождения.
Если найденый элемент не равен искомому, значит -1 :))
Такой вариант не имеет ни малейшего смысла в использовании ArrayBsearch
Сделал так
P.S. ArrayBsearch в таком виде можно смело убрать с языка, чтобы не занимала местоТакой вариант не имеет ни малейшего смысла в использовании ArrayBsearch
Сделал так
P.S. ArrayBsearch в таком виде можно смело убрать с языка, чтобы не занимала местоФункция предназначена не только для быстрого поиска, но и для быстрой вставки нового значения в отсортированный массив.
Делая свою обертку (под ваши представления) гораздо лучше просто добавить проверку на равенство элемента по возвращенному индексу с запрошенным значением, а приведенный полный линейный цикл будет неэффективен.
Функция предназначена не только для быстрого поиска, но и для быстрой вставки нового значения в отсортированный массив.
Делая свою обертку (под ваши представления) гораздо лучше просто добавить проверку на равенство элемента по возвращенному индексу с запрошенным значением, а приведенный полный линейный цикл будет неэффективен.
Считаете, что функция ArrayBsearch работает без цикла? Логично, мы же его не видим - он вшит :)
О вставке вообще ничего не написано, приведите пример, как это в ней использоватьСчитаете, что функция ArrayBsearch работает без цикла? Логично, мы же его не видим - он вшит :)
О вставке вообще ничего не написано, приведите пример, как это в ней использоватьБинарный поиск без цикла работает.
Бинарный поиск без цикла работает.
Проверять скорость работы нет времени, но оставлю код "как есть"
P.S. При этом, для использования ArrayBsearch нужно сначала отсортировать массив, потом сделать сравнение с возвращаемым значение. Столько телодвижений ...Проверять скорость работы нет времени, но оставлю код "как есть"
если массив отсортирован, то напрасно. Выигрыш в сотни раз по скорости (в зависимости от размера массива конечно).
Если нет, тогда и не было смысла использовать ArrayBsearch.
Не могу понять баг это или фича:
Результат работы на реальных данных:
Результат работы в тестере стратегий:
То есть в тестере стратегий входная строка обрезается по подстроке "||".
Предложение для улучшения тестера.
А нет ли способа сделать так, чтобы тестер по окончании прохода начал расчеты с начала? Т.е. снаова установил начальную дату, сбросил все результаты и повторил проход.
Это нужно для МО - при первом проходе сделать разметку обучения - совершить сделку и сохранить ее результат, а при втором проходе уже обучать МО результатам сделок и совершать только те сделки, которые выдаст МО.
Если нет такой опции, то хорошо бы ее добавить. Например командой из кода. Полагаю, что сделать это несложно.
А нет ли способа сделать так, чтобы тестер по окончании прохода начал расчеты с начала? Т.е. снаова установил начальную дату, сбросил все результаты и повторил проход.