Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В четверке аналогично буфера индикаторов под всю историю чарта выделялись.
Кроме того, затраты памяти (особенно в экспертах) в четверке были чрезмерными из-за множества прозрачно создаваемых копий данных. Ее спасало только то, что данных обычно было мало.
С таким подходом нельзя было переходить к системе, которая должна оперировать почти бесконечными историческими данными. Поэтому пятерку и пришлось написать с нуля. Получилось очень эффективно.
Вы всю прекрасную идею с использованием CopyBuffer просто перечеркнули тем, что завязались на глобальную переменную Макс_баров_в_окне. Вот эксперт запрашивает допустим только один последний бар(кстати очень частая функция). Но если переменная пользователя Макс_баров_в_окне выставлена в очень большое значение, то, в сам терминал будет загружена вся история, а эксперту будет выдан только последний бар. У меня в тестовом скрипте 6 символов * 21 таймфрейм отъедало 13 Гбайт оперативки при Макс_баров_в_окне > 1 000 000.
Предлагаю подумать над тем, что бы отвязать от этой переменной хотя бы индикаторы и эксперты, а еще лучше будет если вы ее совсем уберете. Ведь если пользователь скролит график налево, значит ему нужны дополнительные данные, которые можно подгружать динамически. А если он график не скролит, значит они ему не нужны.
Это не работает для индикаторов. При создании хендла автоматом ресайзятся все буферы под кол-во баров в окне, и это невозможно изменить.
В четверке такого не было, память выделялась под рассчитываемую часть.
повторюсь:
в 4-ке нельзя было качнуть в память ограниченное количество баров,
в MQL5 это возможно , сильно экономится память и очень хорошо с быстродействием.
В четверке аналогично буфера индикаторов под всю историю чарта выделялись.
Кроме того, затраты памяти (особенно в экспертах) в четверке были чрезмерными из-за множества прозрачно создаваемых копий данных. Ее спасало только то, что данных обычно было мало.
С таким подходом нельзя было переходить к системе, которая должна оперировать почти бесконечными историческими данными. Поэтому пятерку и пришлось написать с нуля. Получилось очень эффективно.
Можно неплохо экономить память задавая в функции количество читаемых баров.
Вы всю прекрасную идею с использованием CopyBuffer просто перечеркнули тем, что завязались на глобальную переменную Макс_баров_в_окне. Вот эксперт запрашивает допустим только один последний бар(кстати очень частая функция). Но если переменная пользователя Макс_баров_в_окне выставлена в очень большое значение, то, в сам терминал будет загружена вся история, а эксперту будет выдан только последний бар. У меня в тестовом скрипте 6 символов * 21 таймфрейм отъедало 13 Гбайт оперативки при Макс_баров_в_окне > 1 000 000.
Предлагаю подумать над тем, что бы отвязать от этой переменной хотя бы индикаторы и эксперты, а еще лучше будет если вы ее совсем уберете. Ведь если пользователь скролит график налево, значит ему нужны дополнительные данные, которые можно подгружать динамически. А если он график не скролит, значит они ему не нужны.
Над этим подумаем.
Спасибо!
Юрий, Вы явно не в теме обсуждаемой проблематики. Что такое CopyBuffer здесь все очень хорошо знают.
Над этим подумаем.
Спасибо!
:)
Добавлю только что общался c Andrey Khatimlianskii одним из разработчиков вот этой хорошо известной панели:
И в общем у них есть определенные трудности с выделением памяти. Как видно на графике, панель работает на краю от комбинаторного взрыва. Поэтому приходится делать дополнительные описания для пользователей (которые естественно мало кто читает:) :
Подготовка платформы МetaТrader 5 к работе
При первом подключении советник автоматически загружает всю имеющуюся на сервере историю котировок. При большом количестве торговых инструментов, отображенных в "Обзоре рынка", это может занять несколько минут. Для ускорения процесса загрузки необходимо в настройках терминала нажать клавиши (Ctrl + O) и в закладке "Графики" установить разумное значение параметра "Максимум баров в окне". Учтите, что каждый используемый инструмент и тайм-фрейм потребляют оперативную память. Каждый наложенный на график индикатор будет потреблять еще в несколько раз больше памяти.
При переключении между графиками, МetaТrader 5 ресурсы не освобождает. Это сделано для быстрого возврата к использованным ранее данным. Поэтому при работе с большим количеством инструментов, тайм фреймов и индикаторов терминал может тормозить. Если вы используете тайм-фрейм D1 и выше, больше 5000 баров вам не понадобится. Установите указанное значение в настройках и перезагрузите терминал. В закладке "Эксперты" в окошке "Разрешить автоторговлю" следует поставить галочку. Кроме того, рекомендуется в МetaТrader 5 настроить почтовую службу. Тогда вы будете получать торговые сигналы на свою электронную почту в реальном режиме времени от эксперта, установленного на выделенном сервере. Необходимо залогиниться в сообщество MQL5, тогда у вас будет возможность бесплатно получать обновления программных продуктов непосредственно в терминале МetaТrader 5.
В четверке аналогично буфера индикаторов под всю историю чарта выделялись.
Ренат, я уже не помню, а воспроизводить сейчас нет времени.
Но точно была ситуация, когда мульти-валютно-таймфреймовый индикатор (типа обсуждаемой панели, но именно индикатор) в четверке просто летал за счет ограничения в 1000 рассчитываемых баров, а в пятерке еле ворочался.
Возможно, потребление памяти было ниже за счет построения только нужного ТФ, а не всей истории М1 за анализируемый период. Но, повторюсь, воспроизводить сейчас не готов. Так что можно списать на плохую память.
:)
Добавлю только что общался c Andrey Khatimlianskii одним из разработчиков вот этой хорошо известной панели:
И в общем у них есть определенные трудности с выделением памяти. Как видно на графике, панель работает на краю от комбинаторного взрыва. Поэтому приходится делать дополнительные описания для пользователей (которые естественно мало кто читает:) :
Все это порождает определенные трудности для конечных пользователей. А в коммерческой разработке эта не та ситуация с которой нужно просто смериться.Потому что панель могла убить любую систему, отъев всю оперативку и перебросившись на файл подкачки. Мои 16 Гб умирали за считанные секунды ;)
Уже в плане работ стоит.
А вот это очень радует. Еще бы с индикаторными буферами что-то придумать — и панель бы зажила новой жизнью.
Спасибо!