![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
То есть я пришел к верному выводу, что графики индикаторов вы рисуете линиями через GDI в предварительный буфер.
И в данном случая видеокарта не использует аппаратное ускорение?
Есть ли у вас возможность использовать при выводе графической информации OpenGL? В таком случае можно ускорить вывод информации более чем 100 раз.
Возможно ли разнести обработку графики на различные ядра центрального процессора в несколько потоков, чтобы использовать центральный процессор на 100%?
Общая рекомендация - для активной работы с массой графических объектов желательно иметь хорошую видеокарту.
Осталось только выяснить модель этой хорошей видеокарты.
Я думаю, что в нашем (торговые терминалы) случае нет проблемы с графической частью.
Объем отрисовки не такой огромный, чтобы видеокарта стала узким местом.
Windows 7 x64
Я думаю, что в нашем (торговые терминалы) случае нет проблемы с графической частью.
Объем отрисовки не такой огромный, чтобы видеокарта стала узким местом.
давайте проверим (проведем тест торгового терминала). прикладываю индикатор. который строит много линий.
2010.06.12 13:25:30 Setka (GBPUSD,M5) sy= GBPUSD pr= 5 rates_totals= 100000 время запуска= 1970.01.01 00:00:44
время запуска 44 секунды !!!
Windows XP x32
давайте проверим (проведем тест торгового терминала). прикладываю индикатор. который строит много линий.
Своим скриптом Вы тестировали все что угодно, но никак не графическую часть. Сколько простейших графических объектов выставил этот индикатор? Всего 21 объект на 100 000 барах.
2010.06.12 15:23:56 Setka (GBPUSD,M5) sy= GBPUSD pr= 5 rates_totals= 100000 время запуска= 1970.01.01 00:00:00
У меня на Intel Quad 9400 скрипт отработал за 0 секунд (в настройках терминала я выставил 100 000 баров, как и у Вас).
По коду скрипта видно, что тестировался процессор, но никак не графическая подсистема. Индикатор написан очень неэкономно - особенно функция isNewBar_i, лазающая в кучу чужих таймфреймов.
Своим скриптом Вы тестировали все что угодно, но никак не графическую часть. Сколько простейших графических объектов выставил этот индикатор? Всего 21 объект на 100 000 барах.
2010.06.12 15:23:56 Setka (GBPUSD,M5) sy= GBPUSD pr= 5 rates_totals= 100000 время запуска= 1970.01.01 00:00:00
У меня на Intel Quad 9400 скрипт отработал за 0 секунд (в настройках терминала я выставил 100 000 баров, как и у Вас).
По коду скрипта видно, что тестировался процессор, но никак не графическая подсистема. Индикатор написан очень неэкономно - особенно функция isNewBar_i, лазающая в кучу чужих таймфреймов.
1.Это не скрипт. а индикатор.
2. скорее всего очередной баг, т.к. у меня на компе отрисовалось как минимум 8365 только вертикальных линий.
3. по другому реализовать isNewBar_i у меня неполучилось https://www.mql5.com/ru/forum/986/5917#comment_5917 . т.к. терминал со временем выгружает данные и все. функция перестает работать.
4. Вы можете прекрасно увидеть что я старалься сделать код экономным. Имеено из-за долгих расчетов.Для тестирования я закоментировал строки которые делают его работу быстрее.
5. ели бы он отрисовывал все за 1 секунду, я бы так с ним не мучался, он мне нужен. и очень важен для работы. https://www.mql5.com/ru/forum/1004
Вы приложили скрипт и заявили о затратах в 44 секунд.
Я протестировал его на абсолютно чистом терминале на пустом графике GBPUSD M5 с ограничением в 100 000 баров, получил 0 секунд и сообщил об этом в своем комментарии. Сейчас еще раз поперезапускал этот индикатор раз 5-6 и все равно получал время от 0 до 1 секунды. 8000 объектов никак не выставились.
Пусть еще несколько человек попробуют и сообщат о своих результатах.
как замеряли время, я не понял?
Нашел ошибку в коде индикатора - он совершенно не проверял результаты запроса данных с чужих таймфреймов. В результате у меня на пустом терминале расчеты фактически не шли.
Сейчас поправлю и выложу более правильный вариант.
Вы приложили скрипт и заявили о затратах в 44 секунд.
Я протестировал его на абсолютно чистом терминале на пустом графике GBPUSD M5 с ограничением в 100 000 баров, получил 0 секунд и сообщил об этом в своем комментарии. Сейчас еще раз поперезапускал этот индикатор раз 5-6 и все равно получал время от 0 до 1 секунды. 8000 объектов никак не выставились.
Пусть еще несколько человек попробуют и сообщат о своих результатах.
это индикатор. положите его в папку индикаторов. Почему вы решили что это скрип я не понимаю. Там есть вот такая строка.
#property indicator_chart_window
как замеряли время, я не понял?
просто повесте этот индикатор на график. как он все отрисует. в лог выдастся сообщение.вот этой строкой
Print("sy=",_Symbol," pr=",_Period, " rates_totals=",rates_total," время запуска=",TimeLocal()-start_time);
сообщение будет типа моего приведено ниже. красным подчеркнуто сколько времени он рисовал (44 секунды).
2010.06.12 13:25:30 Setka (GBPUSD,M5) sy= GBPUSD pr= 5 rates_totals= 100000 время запуска= 1970.01.01 00:00:44
Если нет не рисуется. нажмите на графике "ОБНОВИТЬ" и подождите