Неудачная оптимизационная архитектура всё хранить в памяти, обязывает её освобождать при не использовании.
Соответственно когда данные автоматически уже выгружены из памяти, требуется время чтоб снова подгрузить новые данные.
Принцип гетеров сеттеров, если понимаете о чём речь.
- www.mql5.com
Как мне кажется единственный выход для быстрого переключения, это держать все графики по инструментам открытыми.
Так они будут строится в реал тайм, соответственно подгружены, и не будут автоматически выгружаться из памяти.
А как известно, максимальное количество открытых графиков ограничено.
И возможно для такой задачи лучше будет просто в цикле с какой-то периодичностью делать любое обращение ко всем символам, так сказать держать их на готове.
В общем корень проблемы, в автоматической выгрузке данных из памяти если к символу какое-то время не было обращений.
А потом когда обращаешься к этому символу, то происходит подгрузка и построение, а это время.
Так же это касается кастомных символов, в которые уже импортирована история, но не поступают реал тайм данные.
В этом случае подгрузки и построения не происходит, а только аллоцирование данных в память.
И даже в этом случае наблюдается замедленное открытие графика по другому кастомному символу.
Не пойму одного, зачем автоматически выгружать данные по символу, если он ещё выбран в Обзоре рынка.
Ну при удалении символа из Обзора рынка и очищали бы ресурсы.
И ChartRedraw(); не помогает? Не верю, как Станиславский.
Я использую вот такой код
if(id==CHARTEVENT_OBJECT_CLICK && f_keyPress == 0){
obj_text = ObjectGetString(0,sparam,OBJPROP_TEXT);
sym = StringSubstr(StringTrimLeft(obj_text),0,6);
ChartSetSymbolPeriod(0,sym,PERIOD_CURRENT);
ChartRedraw();
}
работает очень медленно
я хочу узнать какой код использует Autochartist.ex4
ведь там тоже используется клик по кнопке и переход на другой инструмент в том же окне
Скорее всего дело в том, что там вообще навешано на графике.
Вот такой код:
if(id==CHARTEVENT_OBJECT_CLICK){ if(Symbol()=="EURUSD"){ ChartSetSymbolPeriod(0,"GBPUSD",PERIOD_CURRENT); } else{ ChartSetSymbolPeriod(0,"EURUSD",PERIOD_CURRENT); } }
переключает моментально.
Roman #:
Как мне кажется единственный выход для быстрого переключения, это держать все графики по инструментам открытыми.
Так они будут строится в реал тайм, соответственно подгружены, и не будут автоматически выгружаться из памяти.
А как известно, максимальное количество открытых графиков ограничено.
И возможно для такой задачи лучше будет просто в цикле с какой-то периодичностью делать любое обращение ко всем символам, так сказать держать их на готове.
В общем корень проблемы, в автоматической выгрузке данных из памяти если к символу какое-то время не было обращений.
А потом когда обращаешься к этому символу, то происходит подгрузка и построение, а это время.
Так же это касается кастомных символов, в которые уже импортирована история, но не поступают реал тайм данные.
В этом случае подгрузки и построения не происходит, а только аллоцирование данных в память.
И даже в этом случае наблюдается замедленное открытие графика по другому кастомному символу.
Не пойму одного, зачем автоматически выгружать данные по символу, если он ещё выбран в Обзоре рынка.
Ну при удалении символа из Обзора рынка и очищали бы ресурсы.
моя система следит за всем рынком(Инструменты, на которых я торгую) независимо от того какой инструмент открыт
Реализованы кнопки кликая по которым я перехожу на нужный инструмент(Помимо этого они показывают мне что происходит на том или ином инструменте , какие ордера на данный момент на нем находится и тд.)
Все очень удобно и функционально единственная проблема - Я не могу достигнуть такого же быстродействия ( Клик по кнопке переход на другой инструмент в том же окне ) как это реализовано в Autochartist.ex4
Меня интересует как это можно реализовать на программном уровне
Никак вы не ускорите.
Неудачная оптимизационная архитектура всё хранить в памяти, обязывает её освобождать при не использовании.
Соответственно когда данные автоматически уже выгружены из памяти, требуется время чтоб снова подгрузить новые данные.
Принцип гетеров сеттеров, если понимаете о чём речь.
Я вешаю Autochartist.ex4 на график ( К тому что уже есть )и он делает быстрый переход это именно то что мне надо.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В autochartist есть вот такое диалоговое окно.