Скачать MetaTrader 5

Научная мотивация плавного перехода от MT4 к MT5.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Нашел хорошего программиста? Ставь адресную заявку!
Sergiy Podolyak
1845
Sergiy Podolyak 2015.09.03 13:30 

Научная мотивация плавного перехода от MT4 к MT5.

Оценивая перспективу будущих работ, у меня возникло несколько мыслей по поводу перехода от MT4 к MT5.

Закончив большой проект, а также разработав советник CUDA-GPU ускорением, у меня лично теперь совершенно явно напрашивается мысль о плавном, постепенном переходе от MT4 к MT5. Это меня немного смущает, потому что раньше я критиковал фирму Metaquotes за скажем так слишком быстрый переход на MT5. Поскольку мой опыт работы с MT5 и с MQL5 небольшой, эти мысли будут носить характер с приставкой "наверное". И они будут сначала касаться научной или околонаучной стороны вопроса. Вопрос трудоёмкости перехода не стоит: после реализации проекта в MT4 с 500+ функциями на Си, CUDA-Си и MQL4 нет никаких сомнений, что и под MT5 будет работать всё, что хочешь.

Итак:

1). MT5 намного лучше для парного трейдинга. Парный трейдинг с опционами очень любят хедж-фонды. Они ищут корреляции и торгуют парами там, где есть связь между финансовыми инструментами.

Но для него нужен настоящий мультивалютный тестер. MT4 это не делает, MT5 это делает изначально, как родное. Конкурентов у MT5 в области настоящей мультивалютности тестера вообще-то не так уж и много, пару штук. А на форексе ВСЕ валюты связаны между собой, вопрос только в силе этой связи. Тут как раз пригодится и 64-битная версия, так как искать корреляции придётся между многими парами и памяти надо будет много.

Кроме этого, наверное в MT5 может быть будет и "своя" история котировок, что тоже облегчит разработку экспертов для парного трейдинга.

2). Поддержка 64-битной большой памяти. Даже будучи противником 64-бит, но увидев как советник на 34 парах съедает сразу 800 МБ памяти, сразу хочется уйти от этого дурацкого ограничения в 3ГБ на 32 битах. MT5 вполне поддерживает 64 бита памяти, а компилятор MQL5 версии на 64 бита к тому же работает в несколько раз быстрее, то есть генерит более быстрый и защищённый код.

3). Скорость советника и компьютера является критичной при работе со сложными советниками, в которых много математики. Наработавшись и с MQL4 и с Си в DLL с SSE2 и с CUDA-GPU, хочется всё-таки ещё большего ускорения. Как показывает мой личный опыт, для трейдинга хватит даже среднего компьютера и советника на MQL4. Но для разумной оптимизации его параметров нужно или OpenCL или CUDA, или облачные агенты.

4). Облачные вычисления работают как раз в MT5. И вроде как успешно работают.

5). Наработавшись с CUDA ускорением, могу сказать, что первая стадия написания программы проще на CUDA, чем на OpenCL. Но вот последняя стадия, когда надо выжимать из кернелов "все соки" по скорости - на CUDA становится проблематичной. И разработка затягивается из-за компилятора nVidia. Он ещё и компилирует проект медленно. Здесь может помочь прямое написание кернелов и загрузка их напрямую как в OpenCL, а это ... есть как раз MT5, и ни у кого больше в трейдинговом мире.

В общем, со многих сторон проявляется несколько неожиданная мысль, что следующим этапом большой работы может стать перенос проекта на MT5 и MQL5 и дальнейшая работа в MT5, включая облачную работу для большой оптимизации, без которой не обойтись. Но я не сожалею, что тогда критиковал MT5, потому что вряд ли переходя в середине работы на MQL5 и далее под MT5 смог бы сделать проект так "быстро", как под "родным" MT4. Но вот теперь, по пути усложнения перспективных задач необходимость в MT5 возникает как-бы сама собой.

Что думаете?

Vasiliy Sokolov
21752
Vasiliy Sokolov 2015.09.03 13:39  
Вы в курсе что облако не совместимо с CUDA и OpenCL?
Sergiy Podolyak
1845
Sergiy Podolyak 2015.09.03 13:49  
Vasiliy Sokolov:
Вы в курсе что облако не совместимо с CUDA и OpenCL?
Да, конечно. Ну и что? Абстрактный советник, у которого внутри сложная математика, может считаться например или на 50 агентах MT5, или на OpenCL или на CUDA, если у него есть OpenCL или CUDA модули. Какая ему разница? Результаты одинаковые. Вы пишете функцию на MQL4 или MQL5, затем после полной отладки алгоритма Вы переносите её на OpenCL. В режиме агентов работает модуль MQL5 (и который кстати можно поместить в "Маркет"), а в режиме десктопа работает модуль CUDA или OpenCL, если у Вас есть хорошая видеокарта. Хотите так, хотите эдак.
Andrey F. Zelinsky
31364
Andrey F. Zelinsky 2015.09.03 13:57  

слово "научная" в теме -- чтобы красивей и привлекательней звучало?

изначально писанина сомнительная, потому что разница терминалов в системе учёта позиций

и именно система учёта позиций определяет выбор терминала 

Sergiy Podolyak
1845
Sergiy Podolyak 2015.09.03 14:05  
Andrey F. Zelinsky:

слово "научная" в теме -- чтобы красивей и привлекательней звучало?

изначально писанина сомнительная, потому что разница терминалов в системе учёта позиций

и именно система учёта позиций определяет выбор терминала 

В MT5 учёт позиций как в банках, у фондов, и как в других терминалах. В MT4 она более "учебная". С точки зрения бухучёта они приводятся друг к другу на 100%. С точки зрения визуальных трейдеров - не всегда. Это дело больше удобства и связки с бек-офисом трейдера. Особенно если он банк.
Igor Yeremenko
1026
Igor Yeremenko 2016.10.17 07:37  
Sergiy Podolyak:

Научная мотивация плавного перехода от MT4 к MT5.

Что думаете?

что бы это понять достаточно сравнительной таблицы и описания MT5 на http://www.metatrader5.com

после введения хэджинг учета позиций в MT5 https://www.mql5.com/ru/articles/2299 для перехода не нужно научно что то доказывать)

Maxim Kuznetsov
9777
Maxim Kuznetsov 2016.10.17 07:46  
Sergiy Podolyak:

Что думаете?

Думаю что фичи это хорошо, но они тут непричём ;-)

Будут заказы (серьёзные) - перейдём.. пока заявки под MT5 в основном "граали" и то немного :-) Или это только мои заказчики столь консервативны ?

Andy Sanders
403
Andy Sanders 2017.01.02 19:28  
Я еще не видел ни одного человека здесь, который бы что-то значимое выжал из парного трейдинга на Форексе
Vladimir
328
Vladimir 2017.01.03 03:29  
Sergiy Podolyak:

Научная мотивация плавного перехода от MT4 к MT5.

Оценивая перспективу будущих работ, у меня возникло несколько мыслей по поводу перехода от MT4 к MT5.

Закончив большой проект, а также разработав советник CUDA-GPU ускорением, у меня лично теперь совершенно явно напрашивается мысль о плавном, постепенном переходе от MT4 к MT5. Это меня немного смущает, потому что раньше я критиковал фирму Metaquotes за скажем так слишком быстрый переход на MT5. Поскольку мой опыт работы с MT5 и с MQL5 небольшой, эти мысли будут носить характер с приставкой "наверное". И они будут сначала касаться научной или околонаучной стороны вопроса. Вопрос трудоёмкости перехода не стоит: после реализации проекта в MT4 с 500+ функциями на Си, CUDA-Си и MQL4 нет никаких сомнений, что и под MT5 будет работать всё, что хочешь.

Итак:

1). MT5 намного лучше для парного трейдинга. Парный трейдинг с опционами очень любят хедж-фонды. Они ищут корреляции и торгуют парами там, где есть связь между финансовыми инструментами.

Но для него нужен настоящий мультивалютный тестер. MT4 это не делает, MT5 это делает изначально, как родное. Конкурентов у MT5 в области настоящей мультивалютности тестера вообще-то не так уж и много, пару штук. А на форексе ВСЕ валюты связаны между собой, вопрос только в силе этой связи. Тут как раз пригодится и 64-битная версия, так как искать корреляции придётся между многими парами и памяти надо будет много.

Кроме этого, наверное в MT5 может быть будет и "своя" история котировок, что тоже облегчит разработку экспертов для парного трейдинга.

2). Поддержка 64-битной большой памяти. Даже будучи противником 64-бит, но увидев как советник на 34 парах съедает сразу 800 МБ памяти, сразу хочется уйти от этого дурацкого ограничения в 3ГБ на 32 битах. MT5 вполне поддерживает 64 бита памяти, а компилятор MQL5 версии на 64 бита к тому же работает в несколько раз быстрее, то есть генерит более быстрый и защищённый код.

3). Скорость советника и компьютера является критичной при работе со сложными советниками, в которых много математики. Наработавшись и с MQL4 и с Си в DLL с SSE2 и с CUDA-GPU, хочется всё-таки ещё большего ускорения. Как показывает мой личный опыт, для трейдинга хватит даже среднего компьютера и советника на MQL4. Но для разумной оптимизации его параметров нужно или OpenCL или CUDA, или облачные агенты.

4). Облачные вычисления работают как раз в MT5. И вроде как успешно работают.

5). Наработавшись с CUDA ускорением, могу сказать, что первая стадия написания программы проще на CUDA, чем на OpenCL. Но вот последняя стадия, когда надо выжимать из кернелов "все соки" по скорости - на CUDA становится проблематичной. И разработка затягивается из-за компилятора nVidia. Он ещё и компилирует проект медленно. Здесь может помочь прямое написание кернелов и загрузка их напрямую как в OpenCL, а это ... есть как раз MT5, и ни у кого больше в трейдинговом мире.

В общем, со многих сторон проявляется несколько неожиданная мысль, что следующим этапом большой работы может стать перенос проекта на MT5 и MQL5 и дальнейшая работа в MT5, включая облачную работу для большой оптимизации, без которой не обойтись. Но я не сожалею, что тогда критиковал MT5, потому что вряд ли переходя в середине работы на MQL5 и далее под MT5 смог бы сделать проект так "быстро", как под "родным" MT4. Но вот теперь, по пути усложнения перспективных задач необходимость в MT5 возникает как-бы сама собой.

Что думаете?

Мыслей много. Поделюсь тремя.

Научный анализ показывает, что у 28 пар, образованных валютами USD EUR GBP CHF JPY AUD CAD NZD, имеется ровно 7 степеней свободы. Искать корреляции между парами - извращение. Представьте, что у вас есть четыре независимых переменных x1 x2 x3 x4, но вы говорите о поиске корреляции не между ними, а между шестью отношениями x1/x2 x1/x3 x1/x4 x2/x3 x2/x4 x3/x4/, у которых всего три степени свободы, например x1/x2 x1/x3 x1/x4. В случае, когда EUR и AUD стоят, но стала ходить туда-сюда валюта USD, появляется ложный вывод о том, что пары EURUSD и AUDUSD сильно положительно коррелированы, так как двигаются синхронно.

Чудовищное количество отбираемой MT5 памяти говорит не в пользу его перспективности. Нужные мне on line задачи и анализа, и торговли в случае не 34-х, а 1500 потоков котировок решаются в 40 Мб памяти (пиковый рабочий набор в диспетчере задач Win 7). Анализ off line, включая оптимизацию, делаю вне терминалов.

Непонятно, зачем для целей оптимизации применять входные языки MQL, главное назначение которых дать доступ к информации на сервере и возможность слать ему ордера, что в других языках невозможно. Еще до зарождения мысли о создании Метаквотес десятилетиями развивались другие языки программирования, накоплен огромный опыт решения общих задач. Программы на них не привязаны к графикам терминалов, работают самостоятельно. Зачем для решения трудоемких задач применять язык интерфейса с сервером MT? Да еще и с веселыми правилами захвата памяти. Смотрите, вот Microsoft тоже дает VBA, но никому в голову не приходит заниматься в документе Word тяжелой оптимизацией. VBA для MS Word дает программный интерфейс к документу, и все. Языки MQL дают программный интерфейс доступа к серверу, и прекрасно.

George Merts
3609
George Merts 2017.01.03 06:28  

Поскольку изначально писал весь код переносимым - для меня вобще нет никакой разницы, писать ли для МТ4 или для МТ5.

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

Sergiy Podolyak
1845
Sergiy Podolyak 2017.01.16 09:29  

Мысли вслух:

Мне в общем то просто страшно лень переходить на MT5, так как всё равно придётся некоторое время сохранять и программы и терминалы MT4 и свои MT4-счета у брокеров.

Но в пользу явного перехода с MT4 на MT5 есть "новые старые" теперь аргументы:

1). ....чем больше работаешь на CUDA, тем больше хочется перейти на OpenCL, и забыть все несуразности, ошибки и выкручивание рук от nVidia как страшный сон. Это сложнее, но в конце концов приходишь к этому.

https://www.mql5.com/ru/forum/165397/page21#comment_3980382

2). Архивных котировок от Метаквотов нет с декабря 2016 и похоже что не будет:

https://www.mql5.com/ru/forum/165405

Надёжно тестировать в MT4 разработки торговых систем теперь практически нереально - у большинства брокеров.

3). С продвижением разработки торговой системы наблюдается всё больший объём расчётов, где MT5 явно может себя проявить лучше чем MT4.

4). С появлением библиотеК мат-стат расчётов от Метаквотов для MT5 - большинству трейдеров, использующих сложную статистику (парный трейдинг, арбитраж, фьючерсы, в будущем - возможно опционы)- намного легче работать в MT5 чем в MT4.

5). С явно и очевидно высокой скоростью работы в MT5 с торговыми серверами брокеров - это даёт новые возможности для разных скальперски-арбитражных- HFT алгоритмов (коих великое множество).

6). Теперь от многих практикующих трейдеров, даже работающих с другими торговыми платформами или с НЕСКОЛЬКИМИ торговыми платформами, как я вижу, к MT5 остались претензии только к РЮШЕЧКАМ (внешнему виду окон и скальперского стакана).  Ну а критиковать MT5 "просто так" - это теперь просто национальная традиция.

Какой смысл таким образом ругать Метаквотов? Не нравится терминал - используй другой, платный, плати за котировки, и мучайся с дебильными программистскими системами на C#. Такие обсуждения бывают например на Smart-Lab:

http://smart-lab.ru/company/metaquotes/blog/

7). В MT5 как я понимаю, у большинства брокеров, исчезают все проблемы с закачкой и сохранением архивов котировок.

8). С некоторыми объектно-ориентированными элементами языка MQL5 может даже как-то облегчиться последующая адаптация к другим торговым платформам, - если такая потребуется в будущем (которые системы кушают C#, но довольно таки запутанным и непрямым образом, с какими-то прокладками и полу-хакерскими фокусами, в отличие от системы MT4-MT5).

То есть процесс разработки выглядит так: пишем сначала на MQL5, если надо - легко переносим на Си (собственно выигрыш по скорости в DLL на Си больше 2...3 раз теперь мы не получим,- ввиду и так высокой скорости численных расчётов компилятора MQL5).

С MQL5 (MQL4) и Си переносим на CUDA, или сразу на OpenCL, всё это работает спокойно и напрямую с терминалом MT5.

Ну а если даже надо будет привязать торговую систему и наши быстрые, отлаженные в MT5, численные расчёты к ЛЮБОМУ другому терминалу, то всё это делаем через несложную обвязку для нашей DLL на C#. Перенос MQL4 программы на MT4 в DLL занимает час-два, - ввиду полной совместимости языка MQL4 и Си, а уж на MT5 вряд ли это будет больше.

Ну как-то так......

Формулируем техническое задание на связь MQL4/5 с R
Формулируем техническое задание на связь MQL4/5 с R
  • www.mql5.com
На сайте достаточно много материала по использованию R в трейдинге...
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий