Новая версия MetaTrader 4 Client Terminal 387 и MetaTrader 4 Data Center build 387 - страница 4
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Переписку удалил, но я и без неё прекрасно понимаю, что такое оптимизация...
Чётко с помощью минимального кода сформулируйте то, чего Вы боитесь, но что не воспроизвели в реалии...
Разговор получается совершенно бестолковый... У меня ни один из индикаторов не требует переинициализировать буферы на каждом тике...
Вот я и пытаюсь понять о чём речь идёт....
to Zhunko: позже попытаюсь вкурить написанное
Куда же четче, я писал, что у меня идет расчет только:
1) когда появляется новый бар
2) когда цена выходит за пределы уже посчитанной части бара (за хай или лоу)
3) рассчитывается три-четыре последних луча.
Об этом было в нашей переписке. Ты сказал, что это понятно.... или я зря писал?
Если будет переинициализация на каждом тике, то есть заполнение буфера нулями, то придется пересчитывать на каждом тике. Это повлечет следующее. Сейчас в одном терминале на нескольких графиках у Putnika стоит до 100 экземпляров ZUP. При этом даже на быстром рынке терминал тормозит не сильно. А если придется на каждом тике делать пересчет, то количество одновременно включенных индикаторов уменьшится раз в десять. А если еще и на всей доступной истории идет расчет, то компьютер выдержит вообще только один экземпляр индикатора.
Этого мало?
Если будет переинициализация на каждом тике, то есть заполнение буфера нулями, то придется пересчитывать на каждом тике. Это повлечет следующее. Сейчас в одном терминале на нескольких графиках у Putnika стоит до 100 экземпляров ZUP. При этом даже на быстром рынке терминал тормозит не сильно. А если придется на каждом тике делать пересчет, то количество одновременно включенных индикаторов уменьшится раз в десять. А если еще и на всей доступной истории идет расчет, то компьютер выдержит вообще только один экземпляр индикатора.
Куда же четче, я писал, что у меня идет расчет только:
1) когда появляется новый бар
2) когда цена выходит за пределы уже посчитанной части бара (за хай или лоу)
3) рассчитывается три-четыре последних луча.
Об этом было в нашей переписке. Ты сказал, что это понятно.... или я зря писал?
Если будет переинициализация на каждом тике, то есть заполнение буфера нулями, то придется пересчитывать на каждом тике. Это повлечет следующее. Сейчас в одном терминале на нескольких графиках у Putnika стоит до 100 экземпляров ZUP. При этом даже на быстром рынке терминал тормозит не сильно. А если придется на каждом тике делать пересчет, то количество одновременно включенных индикаторов уменьшится раз в десять. А если еще и на всей доступной истории идет расчет, то компьютер выдержит вообще только один экземпляр индикатора.
Этого мало?
А где такое написано? Можно ведь сначала проверить, и только потом пугаться.
+10000
В каждом деле должен быть профессиональный подход....
Небольшой кусочек кода. И примерно такое же с некоторыми вариациями у меня во всех индикаторах.
Заметь, у меня достаточно большой участок, где происходит переинициализация буферов. Все функции ArrayInitialize как раз занимаются такой переинициализацией. Но это происходит только по необходимости, а не принудительно.
Я еще на первой странице написал, чтобы разработчики объяснили смысл пункта 6
Terminal: Для пользовательских индикаторов добавлена инициализация буферов при повторном чтении исторических данных.
С их стороны пока никаких объяснений не последовало. А мы здесь создаем бурю в стакане воды. Но и не только здесь. Я предупредил всех, кто пользуется моими индикаторами, чтобы повременили с загрузкой 387 билда.
Разобрался почему не работал комплекс. Прощай оптимизация :-(
Теперь на каждый тик надо заново заполнять буфера. Позаботились называется...
Нет изменений - нет инициализации! Хотя бы это продумайте!Не читаю исторические данные в буферах. Использую их только для вертикальной развёртки в подокне. Зачем мне постоянно их заполнять? Случаев, когда их надо переписать, всего три (первый запуск, зум, смещение графика). И так МТ4 еле ворочается, а тут ещё один тормоз.
Нет изменений - нет инициализации. Всё правильно. Инициализация производится только после перезачитки исторических данных. Это было и раньше предусмотрено, только не работало как задумано. В нормальных условиях, когда идут бар за баром (или несколько баров после обрыва связи), никакой инициализации буферов не производится.
2 Terminal: Исправлен расчёт счётчика котировок при расчёте пользовательских индикаторов.
Была ошибка с оценкой количества изменений в исторических данных. При большом количестве изменений ошибочно вызывался досчёт данных, а не пересчёт. Это особенно сказывалось на индикаторе ZigZag, когда данные кардинально менялись, а зигзаг не пересчитывался.
Это замечательно! Что разработчики не забили на четверку, а её поддерживают и даже дорабатывают. Об этом просто напросто свидетельствует номер билда - 387!
Последний который я видел был - 229. И сразу - 387(может сопроцессор подключили? Гы...)! Круто!
Главное, чтобы при этом соблюдалась основная заповедь хирурга-программера - "Не навреди!"
Платформа MetaTrader 4 представляет собой совокупность многих компонентов - серверы, дата-центры, фидеры котировок и новостей, клиентский терминал, терминалы менеджера и администратора, АПИ, стандартные надстройки над компонентами, написанные с использованием АПИ и т.п. Эти компоненты развивались по-разному.
Поэтому всем нынешним компонентам присвоили номер 380, уравняв нумерацию билдов. Чисто косметическая операция.