Ускоряемся - использование пакета IPP для увеличения скорости работы советника - страница 3

 
Mathemat:

Renat, спасибо за внимание.

А если добавить в компилятор MQL5 возможности, включенные в п.5 (или п.4), - то, наверно, можно и 6.3 секунды превратить в что-то близкое к 0.88 (на i7-2600)?

Для тех, кто еще не умеет считать на видеокарте (OpenCL), - очень приемлемый и значительно более универсальный вариант, дешевый и сердитый (конечно, не для разработчика компилятора, а для пользователя).

К сожалению, OMP практически невозможно использовать в MQL5 - надо сохранять простоту как самого языка, так и его компилятора.

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

 
Renat:

К сожалению, OMP практически невозможно использовать в MQL5 - надо сохранять простоту как самого языка, так и его компилятора.

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


Оптимизацию можно делать бесконечно. Но для всего есть границы.
 
Renat: К сожалению, OMP практически невозможно использовать в MQL5 - надо сохранять простоту как самого языка, так и его компилятора.

С простотой языка компания MetaQuotes уже распрощалась. Ничего криминального в этом нет: те, кто боится MQL5, и с MQL4 не "на ты".

А добавление OpenCL сильно усложнило компилятор?

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

SSEx (x>1)?

 
Mathemat:

С простотой языка компания MetaQuotes уже распрощалась. Ничего криминального в этом нет: те, кто боится MQL5, и с MQL4 не "на ты".

Наоборот - мы сохранили простоту языка при его мощности. В MQL5 нет ни эксепшенов, ни шаблонов, ни прямого доступа к памяти. Это хороший, защищенный и переносимый (32/64 бита) язык с managed кодом.


А добавление OpenCL сильно усложнило компилятор?

Компилятор - нисколько, так как была добавлена поддержка нескольких функций OpenCL.

А вот добавление OMP является совершенно кардинальной переделкой компилятора. Причем в результате этой переделки можно получить тонну ошибок, которые исправлять придется следующие пару лет.

 
Mathemat:

Попробовал прогнать те же ехе-шники с новым процессором - i3-2120. Да, конечно, побыстрее (у него частота выше, 3.3 GHz), но я рассчитывал, что Open MP разделит вычисление на 4 потока. А изменение результатов в целом осталось таким же, как у честного двухъядерника Pentium G840. Что бы это могло значить?


у меня тоже i3-2120 (3,3 GHz) результаты совпали радует... но на мт5 не сяду ...


 
ruslanchik:

у меня тоже i3-2120 (3,3 GHz) результаты совпали радует... но на мт5 не сяду ...


 
ruslanchik:

у меня тоже i3-2120 (3,3 GHz) результаты совпали радует... но на мт5 не сяду ...

Даже если MQL5 по сути догнал MSVC C++ 2010?

Причем отсутствие полной утилизации всех ядер внутри одного эксперта в конечно счете является благом - терминал предоставляет многозадачность для массы расчетных процессов (индикаторы, эксперты, GUI, подкачка данных и тд), не позволяя одной задачи загрузить весь компьютер.

 
Renat:

Даже если MQL5 по сути догнал MSVC C++ 2010?

Причем отсутствие полной утилизации всех ядер внутри одного эксперта в конечно счете является благом - терминал предоставляет многозадачность для массы расчетных процессов (индикаторы, эксперты, GUI, подкачка данных и тд), не позволяя одной задачи загрузить весь компьютер.


Собственно говоря на МТ5 не сажусь от того лишь, что при его тестировании 2 года назад, я заметил что стакан цен каждый раз загружался от дц а при его загрузки спред может прийти совсем другой и ДЦ не докажешь что открывался по рыночным или не по рыночным ценам ... вот в чем проблема....была... сейчас не знаю...как обстоят дела да и потом котировки портировать тогда тоже была проблема ...

 
ruslanchik:


Собственно говоря на МТ5 не сажусь от того лишь, что при его тестировании 2 года назад, я заметил что стакан цен каждый раз загружался от дц а при его загрузки спред может прийти совсем другой и ДЦ не докажешь что открывался по рыночным или не по рыночным ценам ... вот в чем проблема....была... сейчас не знаю...как обстоят дела да и потом котировки портировать тогда тоже была проблема ...

Стакан цен (как и весь Market Watch) обновляется от предыдущего состояния.

Если же не запускать терминал днями и неделями, то очередной апдейт цен будет с сильно другими ценовыми уровнями. И такое поведение в любой системе.

В МетаТрейдер 5 эксперты инициализируются только после подгрузки рыночного окружения, что позволяет избежать старта на старых данных. Для инициализации дается до 5 секунд.

Котировки в МТ5 импортировать не имеет смысла - терминал работает только с историей сервера, не позволяя ее поменять.

 
ruslanchik:


...но на мт5 не сяду ...


К сожалению уже почти пересел на МТ5, но видимо придется возвращаться обратно на МТ4.

Сегодня опять облом. Разработчики придумали так называемого мастера советников, т.е. программисты пишут модули на OOП: сигнальный, сопровождения позиция и управления капиталом и риском. А чайник может из этих самых модулей собрать себе готового советника, т.е. выбрал, то что тебе нужно из уже готовых модулей в мастере, запустил и по идее вроде бы должно работать. Как бы получается эдакое разделение труда. Почитал статьи, заинтересовался. Написал сигнальный модуль, хотя не по статье (то что в статье запустить так и не удалось), а пришлось модифицировать готовый код из другого модуля. Заработало. Но проблема в том, что модули сопровождения позиций и управления капиталом и риском не могут использовать сигнальный модуль. Т.е. сигнальный модуль выдает, например, информацию, что торговый сигнал сильный и по идее нужно открыть позицию с большим объемом в модуле управления капиталом и риском. А ничего не получается - связки между модулями нет, т.е. они не могут обмениваться информацией между собой. Также и модуль сопровождения позиций не может ориентироваться по показаниям сигнального модуля, а ему нужно отдельный код писать для сигналов. Плюс ко всему мой сигнальный модуль дает корректные торговые сигналы только по ценам открытия, а такого режима в мастере не предусмотрено, есть только потиковый. Короче говоря, потратил кучу времени и нервов и все впустую. Теоретически я могу влезть в код уже готового советника, разобраться и приделать все, что недостает. Но ведь конечный пользователь, для которого все это предназначено, вообще в кодах лазить не должен. Да и мне проще, чем писать модули, гораздо легче советника по старинке, как в mql4 написать, чтобы потом не шастать по чужим кодам и не разбираться где и что. Ведь если лезть в недокументированный код, который мастер автоматом сварганил и сложил в кучу - там уже сложно понять, что и куда идет, т.к. все классы унаследованы и нужно по всей цепочке идти, чтобы выяснить откуда ноги растут. Документации тоже вменяемой нет, а основные методы снабжены лишь тавтологиями без примеров. В готовых примерах, есть реализации лишь небольшой части только самых необходимых методов, все остальное нужно искать в родительских классах. Т.е. теоретически можно было бы разобраться, но только ради чего?

Попробовал обратиться к разработчикам, сказали, что ничего не выйдет, т.к. несмотря на то, что это вроде бы мастер, придется все делать вручную. Плюс ко всему выяснилось, что проект отложили в долгий ящик и попросили не беспокоиться. См. https://www.mql5.com/ru/forum/3948/page11

И таких примеров в МТ5 к сожалению более чем предостаточно, т.е. начинания в теории хорошие, но в том или ином не совсем доведены до ума. Начнешь разбираться, потратишь кучу времени, а потом получишь облом. В результате, только руки опускаются, браться ни за что не хочется, т.к. вероятность получить нужный конечный результат весьма низка.

Поэтому, пока лучше оставаться на МТ4. Платформа старенькая, даже можно сказать устаревшая, но лошадка вполне рабочая. А МТ5 пока еще сыровата.

Причина обращения: