MQL4 - automated forex trading   /  

Форум

MQL5 vs V8

К списку тем  | 1 2 3 4 5 6 Авторизуйтесь или зарегистрируйтесь, чтобы создать новую тему

avatar
292
mql4com 22.10.2008 11:28 
Renat >>:

По скорости исполнения MQL5 вплотную приблизился к C/C++. Скоро начнем публиковать тесты производительности.

Написал тестер-оптимизатор своей системы (не универсальный) на C/C++. Тестер основан на целочисленном представлении цены, соответстенно граблей со сравнением цен нет.

Выигрышь по сравнению с MQL4 в 180 раз:

MQL4 время расчета 6 часов, скорость ~ 180 000 баров в секунду.

C/C++ время расчета 2 минуты, скорость ~ 33 000 000 баров в секунду.


avatar
Модератор
33759
Rosh 22.10.2008 11:43 
BARS >>:

Путина боятся, - в сортир не ходить !
...


Давайте будем немного сдержанней.


avatar
Модератор
33759
Rosh 22.10.2008 11:47 
mql4com >>:

Написал тестер-оптимизатор своей системы (не универсальный) на C/C++. Тестер основан на целочисленном представлении цены, соответстенно граблей со сравнением цен нет.

Выигрышь по сравнению с MQL4 в 180 раз:

MQL4 время расчета 6 часов, скорость ~ 180 000 баров в секунду.

C/C++ время расчета 2 минуты, скорость ~ 33 000 000 баров в секунду.

Первое - сколько Вы писали свой тестер? Две минуты?

Второе. Сколько потребуется времени, чтобы переделать его на тестирование второй системы? Третьей системы? И так далее.

Третье. Сколько проверок в нем реализовано? Нехватка денег на открытие сделки, покупка по Bid', значения индикатора с другого таймфрейма и символа, и так далее.


avatar
Модератор
3646
Renat 22.10.2008 11:52 

Программистам легко все проверить. Давайте сравним скорости MQL4, Java Script (IE 7), Java Script (FF 3) и Java Script (V8):

  • описание условий теста и результаты тестирования здесь
  • новые результаты:

    MQL4
    Java Script (IE 7)
    Java Script (FireFox 3.0)
    Java Script (V8, Google Chrome)
    672 ms
    27 708 ms (фантастический тормоз)
    7 306 ms
    3 224 ms

Пример на 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. Вот куда мы вкладываемся и вот чем занимаемся.


avatar
Модератор
3646
Renat 22.10.2008 11:56 
mql4com >>:

Написал тестер-оптимизатор своей системы (не универсальный) на C/C++. Тестер основан на целочисленном представлении цены, соответстенно граблей со сравнением цен нет.

Выигрышь по сравнению с MQL4 в 180 раз:

MQL4 время расчета 6 часов, скорость ~ 180 000 баров в секунду.

C/C++ время расчета 2 минуты, скорость ~ 33 000 000 баров в секунду.

Вы не первый такой тестерописатель с минимумом проверок.

Жаль только, что не раскроете код и не покажете, что тестер не расширяем, в нем нет массы торговых проверок, сбора статистики, GUI обвязки, не говоря уже об моделировании цен (тут Вы скажете, что Вам это не нужно) :)


ps: но вообще очень полезно самостоятельно писать тестеры - это дает более глубокое понимание проблем тестирования.


avatar
292
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 раз. Сложно сказать, какие проверки могут дать такое серьезное падение производительности. Возможно, отсутствие целочисленного представления цен и действий с ними...


avatar
167
TedBeer 22.10.2008 12:32 
Renat >>:


А MQL5 в 20 (ДВАДЦАТЬ!!!) раз быстрее MQL4. Вот куда мы вкладываемся и вот чем занимаемся.


Честно говоря скорость - это последнее что меня волновало. Если недостаточно производительности компьютера, то можно купить более быстрый, мало одно ядра купите двух-шести и более ядерный и N процессорный, можно перенести вычисления в графический процессор, на другие компьютеры. Есть куча других способов нарастить аппаратную производительность. 

Но! Только если язык позволяет вынести вычисления за рамки платформы с минимальными накладными издержками. Меня в большей мере беспокоят возможности языка, как такового. Придется ли опять придумывать всевозможные подпорки для конструкций, которые стали базовыми во многих других языках или по крайней мере существуют эффективные реализации - работа с регулярными выражениями, хэш таблицы, объекты/классы со свойствами и методами, исключения, передача неопределенного количества параметров в функции, приведение типов, перегрузка функций,  беспроблемный вызов системных и других внешних библиотек и прочее, прочее.


avatar
7054
TheXpert 22.10.2008 12:42 
TedBeer >>:


Честно говоря скорость - это последнее что меня волновало. Если недостаточно производительности компьютера, то можно купить более быстрый, мало одно ядра купите двух-шести и более ядерный и N процессорный, можно перенести вычисления в графический процессор, на другие компьютеры. Есть куча других способов нарастить аппаратную производительность.

Нарастить функционал тоже есть способ.

Но! Только если язык позволяет вынести вычисления за рамки платформы с минимальными накладными издержками. Меня в большей мере беспокоят возможности языка, как такового. Придется ли опять придумывать всевозможные подпорки для конструкций, которые стали базовыми во многих других языках или по крайней мере существуют эффективные реализации -


работа с регулярными выражениями, хэш таблицы,

В MQL? Зачем?

объекты/классы со свойствами и методами, приведение типов, перегрузка функций,

Хочу...

исключения, передача неопределенного количества параметров в функции,

Можно обойтись

беспроблемный вызов системных и других внешних библиотек и прочее, прочее.

Ну и сейчас есть, не беспроблемный, но есть.


<added> Зашел посмотрел...

"V8 can run standalone, or can be embedded into any C++ application. "

В чем проблема? Встраивайте, делайте мост и пользуйте на здоровье.


avatar
167
TedBeer 22.10.2008 12:47 
TheXpert >>:

В MQL? Зачем?

Можно обойтись

Ну если сегодня ваши алгоритмы не требуют таких возможностей, до завтра вы до них дорастете.


avatar
3990
Korey 22.10.2008 12:49 
TedBeer писал(а) >>

Честно говоря скорость - это последнее что меня волновало. Если недостаточно производительности компьютера, то можно купить более быстрый, мало одно ядра купите двух-шести и более ядерный и N процессорный, можно перенести вычисления в графический процессор, на другие компьютеры. Есть куча других способов нарастить аппаратную производительность.

Но! Только если язык позволяет вынести вычисления за рамки платформы с минимальными накладными издержками. Меня в большей мере беспокоят возможности языка, как такового. Придется ли опять придумывать всевозможные подпорки для конструкций, которые стали базовыми во многих других языках или по крайней мере существуют эффективные реализации - работа с регулярными выражениями, хэш таблицы, объекты/классы со свойствами и методами, исключения, передача неопределенного количества параметров в функции, приведение типов, перегрузка функций, беспроблемный вызов системных и других внешних библиотек и прочее, прочее.

to TedBeer

купи себе TradeStation !!!!

К списку тем   | 1 2 3 4 5 6  

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий