Оптимизация быстродеятельности эксперта. Подскажите, что можно усовершенствовать на рабочем примере. - страница 2
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Думаю, идея понятна.
Проблемы с использованием этого эксперта начнутся как только Вы его повесите, хотя бы на демку - совершенно не слушает, что говорит сервер и не оценивает можно ли выставлять ордера - возможно просто зацикливание, а если повесите еще пару экспертов на разные пары - узнаете много нового. Лучше сразу сходите на форум мкл4 и почитайте уроки программирования - будет полезно.
Удачи и попутных трендов.
PS А если еще слегка подумать, то можно понять, что если пересечения мувингов не произошло на момент открытия бара, то соотвественно не произойдет вплоть до открытия следующего и соотвественно проверять пересечение запросто можно один раз на бар, но это уже самостоятельно.
Уважаемый. Вашу последнюю идею можно фактически воплотить вот так (за исключением кеширования данн индикатора):
Таким образом эксперт будет работать быстрей за счет того что только на новооткрывшемся баре будет делать попытку стать в позицию (а больше собственно и не требуется). Но. Самое парадаксальное. С этим изменением он работает МЕДЛЕННЕЙ на длинной истории (в 3 года). Сначала он бежит вроде как немного быстрей, а вот под конец явно начинает захлебыватся. Причем так. Первые полтора года, он пролетает буквально за 13 секунд. А с оставшимся периодом возится 38 секунд (сумарно выодит 51 секунда). При использовании того же кода только без nT, мы проходим по истории за 40 секунд. Медленее в начале, зато быстрее в конце. Обьясните пожалуйста.
Для того чтобы посмотреть на реальную экономию: дописываем хронометраж в каждом вариатне экперта, вешаем на демку - и смотрим.
Думаю, что сказывается разница в качестве моделирования баров в начале и конце периода. В какой-то из веток обсуждали, что в отличие от стандарта под оператором if(....) проверяются все условия, а не до первого сработавшего или не сработавшего в зависимости от условий. Так ли это не проверял - попробуте самостоятельно. Я лично паредпочитаю писать такие коды, в которых это значения не имеет.
И еще - нумерация массивов начинается от 0, а не от 1. То есть, Вам нужен бар со временем Time[0], а не Time[1].
Удачи и попутных трендов.
Для того чтобы посмотреть на реальную экономию: дописываем хронометраж в каждом вариатне экперта, вешаем на демку - и смотрим.
А ради чего тогда вы писали столько про мое "тормозное искуство"? Или вы разделяете теоретичесуцю и практическую часть, причем первая для вас важне?.. да действительно: если на каждом баре не пытатся влезть в позицию то так ТЕОРЕТИЧЕКИ быстрей. Но как оказалось эта проверка а не поменялся ли бар на ПРАКТИКЕ оказалась сложней, и результат во времени паршивит заметно. И я вас умоляю, не нужно мне расказывать с какого значения начинается нумерация масива... Особенно если это ВООБЩЕ не будет иметь значения 1 там будет или 0. Вобщем ладно. Проехали.
Проехали, так проехали.
Удачи и попутных трендов.