| / | Форум |
|
mql4com
22.10.2008 11:28
Renat >>:
По скорости исполнения MQL5 вплотную приблизился к C/C++. Скоро начнем публиковать тесты производительности. Написал тестер-оптимизатор своей системы (не универсальный) на C/C++. Тестер основан на целочисленном представлении цены, соответстенно граблей со сравнением цен нет. Выигрышь по сравнению с MQL4 в 180 раз: MQL4 время расчета 6 часов, скорость ~ 180 000 баров в секунду. C/C++ время расчета 2 минуты, скорость ~ 33 000 000 баров в секунду. |
33759 |
Rosh
22.10.2008 11:43
Давайте будем немного сдержанней. |
33759 |
Rosh
22.10.2008 11:47
mql4com >>:
Написал тестер-оптимизатор своей системы (не универсальный) на C/C++. Тестер основан на целочисленном представлении цены, соответстенно граблей со сравнением цен нет. Выигрышь по сравнению с MQL4 в 180 раз: MQL4 время расчета 6 часов, скорость ~ 180 000 баров в секунду. C/C++ время расчета 2 минуты, скорость ~ 33 000 000 баров в секунду. Первое - сколько Вы писали свой тестер? Две минуты? Второе. Сколько потребуется времени, чтобы переделать его на тестирование второй системы? Третьей системы? И так далее. Третье. Сколько проверок в нем реализовано? Нехватка денег на открытие сделки, покупка по Bid', значения индикатора с другого таймфрейма и символа, и так далее. |
3646 |
Renat
22.10.2008 11:52
Программистам легко все проверить. Давайте сравним скорости MQL4, Java Script (IE 7), Java Script (FF 3) и Java Script (V8):
Пример на Java Script (поправьте, если я где-то ошибся): <html><head><meta http-equiv="Content-Type" content="text/html;"></head> <body> <script type="text/javascript"> var res_int=0,i,start_time; var res_double=0; //--- start_time=new Date() for(i=0;i<=10000000;i++) { res_int+=i*i; res_int++; res_double+=i*i; res_double++; } start_time=new Date()-start_time; //--- document.write("Time: "+start_time+" ms, ResInt= "+res_int+" ResDouble= "+res_double); </script> </body></html> Кто-нибудь (кроме конкурентов) хочет, чтобы в терминале был язык в 5 (пять) раз медленнее MQL4? Думаю, нет. А MQL5 в 20 (ДВАДЦАТЬ!!!) раз быстрее MQL4. Вот куда мы вкладываемся и вот чем занимаемся. |
3646 |
Renat
22.10.2008 11:56
mql4com >>:
Написал тестер-оптимизатор своей системы (не универсальный) на C/C++. Тестер основан на целочисленном представлении цены, соответстенно граблей со сравнением цен нет. Выигрышь по сравнению с MQL4 в 180 раз: MQL4 время расчета 6 часов, скорость ~ 180 000 баров в секунду. C/C++ время расчета 2 минуты, скорость ~ 33 000 000 баров в секунду. Вы не первый такой тестерописатель с минимумом проверок. Жаль только, что не раскроете код и не покажете, что тестер не расширяем, в нем нет массы торговых проверок, сбора статистики, GUI обвязки, не говоря уже об моделировании цен (тут Вы скажете, что Вам это не нужно) :) ps: но вообще очень полезно самостоятельно писать тестеры - это дает более глубокое понимание проблем тестирования. |
|
mql4com
22.10.2008 12:20
Rosh >>:
Первое - сколько Вы писали свой тестер? Две минуты? Второе. Сколько потребуется времени, чтобы переделать его на тестирование второй системы? Третьей системы? И так далее. Третье. Сколько проверок в нем реализовано? Нехватка денег на открытие сделки, покупка по Bid', значения индикатора с другого таймфрейма и символа, и так далее. Rosh, вы бы не задали подобные вопросы, если бы прочли внимательнее мое сообщение выше: Написал тестер-оптимизатор своей системы (не универсальный) на C/C++. Отвечу по пунктам: 1. Свой тестер писал несколько часов. Ядро системы, как логику, несколько дней (без исследовательской работы). Совершенствую саму систему больше года. 2. На переделку тестера под другую систему уйдет около часа. 3. Проверок в нем минимум. Поскольку тестирование идет прибыльности системы и все проверки, ее не касаемые, отсекаются. Renat >>:
А MQL5 в 20 (ДВАДЦАТЬ!!!) раз быстрее MQL4. Вот куда мы вкладываемся и вот чем занимаемся. Renat, вас понимаю, к чему эти оправдания?! Речь не об этом. Если кто-то хочет тестировать прибыльность логики своей системы, целесообразно написать ее на C/C++. На это должно уйти около суток, чтобы переписать это все с MQL4 на C/C++ и сделать тестер-оптимизатор. Дальнейшая же экономия времени колоссальная. Проверял скорость по ценам открытия на MQL4 и на C/C++, чтобы было корректно. Сбор статистики веду в своем тестере такой же, как и тестер-оптимизатор MetaTrader. Жертвой универсальноси MQL5 стала скорость: падение в 9 раз. Сложно сказать, какие проверки могут дать такое серьезное падение производительности. Возможно, отсутствие целочисленного представления цен и действий с ними... |
|
TedBeer
22.10.2008 12:32
Renat >>:
А MQL5 в 20 (ДВАДЦАТЬ!!!) раз быстрее MQL4. Вот куда мы вкладываемся и вот чем занимаемся. Честно говоря скорость - это последнее что меня волновало. Если недостаточно производительности компьютера, то можно купить более быстрый, мало одно ядра купите двух-шести и более ядерный и N процессорный, можно перенести вычисления в графический процессор, на другие компьютеры. Есть куча других способов нарастить аппаратную производительность. Но! Только если язык позволяет вынести вычисления за рамки платформы с минимальными накладными издержками. Меня в большей мере беспокоят возможности языка, как такового. Придется ли опять придумывать всевозможные подпорки для конструкций, которые стали базовыми во многих других языках или по крайней мере существуют эффективные реализации - работа с регулярными выражениями, хэш таблицы, объекты/классы со свойствами и методами, исключения, передача неопределенного количества параметров в функции, приведение типов, перегрузка функций, беспроблемный вызов системных и других внешних библиотек и прочее, прочее. |
|
TheXpert
22.10.2008 12:42
TedBeer >>: Честно говоря скорость - это последнее что меня волновало. Если недостаточно производительности компьютера, то можно купить более быстрый, мало одно ядра купите двух-шести и более ядерный и N процессорный, можно перенести вычисления в графический процессор, на другие компьютеры. Есть куча других способов нарастить аппаратную производительность. Нарастить функционал тоже есть способ. Но! Только если язык позволяет вынести вычисления за рамки платформы с минимальными накладными издержками. Меня в большей мере беспокоят возможности языка, как такового. Придется ли опять придумывать всевозможные подпорки для конструкций, которые стали базовыми во многих других языках или по крайней мере существуют эффективные реализации - работа с регулярными выражениями, хэш таблицы, В MQL? Зачем? объекты/классы со свойствами и методами, приведение типов, перегрузка функций, Хочу... исключения, передача неопределенного количества параметров в функции, Можно обойтись беспроблемный вызов системных и других внешних библиотек и прочее, прочее. Ну и сейчас есть, не беспроблемный, но есть. <added> Зашел посмотрел... "V8 can run standalone, or can be embedded into any C++ application. " В чем проблема? Встраивайте, делайте мост и пользуйте на здоровье. |
|
TedBeer
22.10.2008 12:47
Ну если сегодня ваши алгоритмы не требуют таких возможностей, до завтра вы до них дорастете. |
|
Korey
22.10.2008 12:49
TedBeer писал(а) >>
Честно говоря скорость - это последнее что меня волновало. Если недостаточно производительности компьютера, то можно купить более быстрый, мало одно ядра купите двух-шести и более ядерный и N процессорный, можно перенести вычисления в графический процессор, на другие компьютеры. Есть куча других способов нарастить аппаратную производительность. Но! Только если язык позволяет вынести вычисления за рамки платформы с минимальными накладными издержками. Меня в большей мере беспокоят возможности языка, как такового. Придется ли опять придумывать всевозможные подпорки для конструкций, которые стали базовыми во многих других языках или по крайней мере существуют эффективные реализации - работа с регулярными выражениями, хэш таблицы, объекты/классы со свойствами и методами, исключения, передача неопределенного количества параметров в функции, приведение типов, перегрузка функций, беспроблемный вызов системных и других внешних библиотек и прочее, прочее. to TedBeer купи себе TradeStation !!!! |
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий