Исследования в мат. пакетах - страница 5

 
Alexey Volchanskiy:

Отлично, я первый день потихоньку изучаю R, ответьте на вопросы плз, хочется сравнить возможности R и Matlab. Только без холиваров, взвешенно и спокойно :).

  1. Является ли  R языком с возможностями ООП?
  2. Могу ли я на R сделать 32-битовую и 64-битовую dll для непосредственого использования из MQL4/5? Если да, какого размера пакет надо устанавливать для использования таких dll на компьютере пользователя?
  3. Могу ли я подключить распространенные БД для прямого доступа из R?
  4. Есть ли в R аналог Simulink?
  5. Почему во всех обзорах делается упор на то, что R - программа для статистики? Меня интересует DSP, есть ли в R пакеты для цифровой обработки сигналов?
  6. Есть ли в R встроенный компактный формат для хранения данных, подобный .mat файлам в Матлабе?

1. Да.

2. Зачем ? Нужна единственная MT4R.dll которая является шлюзом для передачи данных в R и получения результатов обратно.

3. Ко всем  существующим базам  данных. Мало того и Майкрософт и Оракл интегрировали R в свои базы данных.

4. В R реализованы  различные варианты взаимодействия с Матлабом от простого обмена мат файлами до исполнения функций Матлаба из R. Если у Вас наработки и опыт в этом направлении то с R Вы сможете реализовать отличную связку Матлаб-МТтерминал.

5. В R реализованы пакеты для всех направлений науки и техники причем с учетом самых последних достижений . Начните отсюда

6. Есть и не один. Наиболее распространенный ff.

А вообще я удивлен. Вы как в чистом поле. Просмотрите на этом сайте статьи 1 и 2 , многое будет не понятно, но представление о том как работает язык Вы получите.

Я заканчиваю и надеюсь завтра отправить на проверку вторую статью по глубокому обучению там будут приложены примеры экспертов.. Думаю, если будет интерес, написать несколько статей начального уровня (фильтрация, декомпозиция, прогнозирование и т.п.). Ну и конечно продолжить копать тему глубого обучения, тем более что Googl открыл для всех свою библиотеку TensorFlow . А есть и другие не менее интересные и перспективные (mxnet, pyBrain).

Если соберется коллектив энтузиастов можем организовать ветку пользователей языка R.

Удачи

 
Alexey Volchanskiy:
Опишите пожалуйста процесс работы через эту DLL подробнее. И где ее взять?
Я в ответе дал несколько ссылок на статьи. Там примеры.
 
Нашел в архиве неплохой материал на русском
Введение в R
  • Alexander Novopoltsev
  • rstudio-pubs-static.s3.amazonaws.com
Установить среду R Установить графическую оболочкуRStudio. Установка R Markdown (для создания автоматически генерируемых отчетов): в RStudio автоматически при первом создании файла с расширением “.Rmd”. Установка библиотек расширений: набрать в консоли install.packages(“pname”), где “pname” - название библиотеки. Полный список библиотек по...
 
Renat Fatkhullin:

Давайте обсудим, как мы можем сделать более лучшую интеграцию с R?

  1. интеграция на уровне API к R
  2. родная поддержка R пакетов в MQL4/MQL5, чтобы можно было напрямую вызывать любой функционал пакетов
  3. что-то еще

Это интересная тема и ее можно хорошо развить.

Добрый день.

Добавлю к ранее сказанному.

Вариант1 предпочтителен по нескольким причинам:

  • не потребует кардинальных изменений в терминале и эдиторе.
  • от Вас не потребуется много времени и усилий а мы быстро и проще сможем использовать язык R в наших разработках.
  • даст возможность изучить востребованность (нужность) этого для клиентов. В англоязычном сегменте, по моему мнению, эта потребность высока.
  • останется возможность использовать штатные средства разработки и отладки (Rstudio, Jupiter, Knitr).

В этом варианте просто обеспечиваем передачу данных в R процесс и получение данных из него. Того что предусмотрено в MT4R.mqh на сегодня с головой достаточно.

Единственное, что хотелось бы видеть дополнительно, это получение котировок по запросу из R процесса минуя терминал. Неважно из локальных ли файлов/буферов терминала или напрямую из сервера ДЦ. Но это не критичное желание.

Вариант2 по моему непрофессиональному мнению потребует кардинального изменения не только терминала но и эдитора. А последнюю кардинальную переработку терминала я вспоминаю с содроганием. Этот вариант можно разрабатывать параллельно с реализацией первого варианта и внедрить после того как значительная часть клиентов втянется и главное увидит преимущества от применения этого языка. Конечно полная интеграция терминала и эдитора с языком R - идеальный вариант.

Радует, что Вы обратили внимание на это направление.

Удачи

 
Renat Fatkhullin:

Давайте обсудим, как мы можем сделать более лучшую интеграцию с R?

  1. интеграция на уровне API к R
  2. родная поддержка R пакетов в MQL4/MQL5, чтобы можно было напрямую вызывать любой функционал пакетов
  3. что-то еще

Это интересная тема и ее можно хорошо развить.

Меня всегда удивляло, почему МТ не включен в R?

Если посмотреть на 15 лет МТ, то это эволюционное развитие,  когда наращивался функционал, но главное - потребитель, оставался прежним. Это псевдотрейдер, использующий ТА в качестве инструмента.

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

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

По моим представлениям:

1. Сам МТ должен быть GUI в R (примеры имеются, как и инструмент построения таких GUI - shiny).  Очень желательно, чтобы этот GUI был копией одного из терминалов, а лучше обоих 

2. Алгоритмический язык R. Советники пишутся на языке R, а все специфические торговые функции реализованы в качестве пакета. При этом, насколько я понимаю, синтаксис обращения к специальным функциям останется прежним. Это стандартное решение, так как быстродействие будут определяться языком и качеством написания этих функций, а они, будучи написанными на C, и обкатанными в течение многих лет, дадут результат по быстродействию сравнимый с существующим. Хочу обратить внимание, что быстрота исполнения иных, вычислительно емких алгоритмов в R, будет максимальной и не будет уступать при их реализации на других алгоритмических языках, так как программа на R - это обычно обращения к пакетам, которые для вычислительно емких алгоритмов не реализуются на R. К этому следует добавить, что обычная практика реализации вычислительно емких алгоритмов предусматривает загрузку всех ядер компа.

3. По моему не профессиональному мнению трудозатраты будут не велики, учитывая очень дружественные отношения между R и С и внутренняя кухня, которую мы не видим, может быть перенесена из существующего терминала в новый терминал.

4. Та часть терминала, которая находится у брокеров, останется без изменения. 

С момента включения указанных пакетов в зеркала CRAN метаквоты приобретают узкую известность в широких кругах вместо широкой известности в узких кругах. Терминал Метаквотов не будет иметь конкурентов, так как единственный терминал R, который имеется в доступе - IBrokers, привязан к определенным платным брокерам. 

 
СанСаныч Фоменко:

Меня всегда удивляло, почему МТ не включен в R?

А меня всегда удивляло, почему они стали сами разрабатывать компилятор Си-подобного языка (я про ранний MQL4), вместо того, чтобы взять готовый free C++ Compiler вроде GCC.

Я работал в крупных западных компаниях, никогда никому и в голову не приходило с нуля разрабатывать свой компилятор С++ для всяких embedded применений. Всегда брали gcc и делали порт под конкретный процессор. 
И, судя по тому, что в 2006 г. был сделан очень удачный порт под 4-процессорный DSP с архитектурой NEON (до 6 команд за такт на ядро), этот компилятор весьма гибок для адаптации. То еть компилятор реально распараллеливал операции со средним показателем 2-4 операции за такт на ядро, на asm приходилось оптимизировать только узкие места.

А теперь вспомним то убожество, которое представляло из себя MQL4 до 600-й версии.

Теперь по теме. Как объяснял Ренат, всему причиной маниакальное стремление сделать компилятор с защитой от дурака и злоумышленника. Хотя до 600-й версии этим даже близко не пахло, было глюк на глюке и глюком погонял. 

Но, если принять его слова на веру, как выглядит R с точки зрения безопасности? Я в нем совсем новичок, с 2000 г. работаю с Матлабом, так что поясните плз, если в курсе. Может ли он шифровать выходные файлы, как компиляторы MQL4/5?

Далее, как я понял, R остается интерпретатором, значит, будет работать еще медленнее, чем старый MQL4 и уж заведомо медленнее на порядки, чем сегодняшний MQL5. 

 
Alexey Volchanskiy:

А меня всегда удивляло, почему они стали сами разрабатывать компилятор Си-подобного языка (я про ранний MQL4), вместо того, чтобы взять готовый free C++ Compiler вроде GCC.

Я работал в крупных западных компаниях, никогда никому и в голову не приходило с нуля разрабатывать свой компилятор С++ для всяких embedded применений. Всегда брали gcc и делали порт под конкретный процессор. 
И, судя по тому, что в 2006 г. был сделан очень удачный порт под 4-процессорный DSP с архитектурой NEON (до 6 команд за такт на ядро), этот компилятор весьма гибок для адаптации. То еть компилятор реально распараллеливал операции со средним показателем 2-4 операции за такт на ядро, на asm приходилось оптимизировать только узкие места.

А теперь вспомним то убожество, которое представляло из себя MQL4 до 600-й версии.

Теперь по теме. Как объяснял Ренат, всему причиной маниакальное стремление сделать компилятор с защитой от дурака и злоумышленника. Хотя до 600-й версии этим даже близко не пахло, было глюк на глюке и глюком погонял. 

Но, если принять его слова на веру, как выглядит R с точки зрения безопасности? Я в нем совсем новичок, с 2000 г. работаю с Матлабом, так что поясните плз, если в курсе. Может ли он шифровать выходные файлы, как компиляторы MQL4/5?

Далее, как я понял, R остается интерпретатором, значит, будет работать еще медленнее, чем старый MQL4 и уж заведомо медленнее на порядки, чем сегодняшний MQL5. 

Почитайте о быстродействии мои посты. Кратко. R - это во многом оболочка и вопросы, которые Вы ставите вообще никакого отношения к R не имеют - все эти вопросы решаются внутри функций, реализованных на других языках. Если говорить о шифровании, то это уж точно не имеет никакого отношения к предполагаемой реализации терминала - это можно все взять существующее.
 
СанСаныч Фоменко:
Почитайте о быстродействии мои посты. Кратко. R - это во многом оболочка и вопросы, которые Вы ставите вообще никакого отношения к R не имеют - все эти вопросы решаются внутри функций, реализованных на других языках. Если говорить о шифровании, то это уж точно не имеет никакого отношения к предполагаемой реализации терминала - это можно все взять существующее.

У меня есть привычка читать предыдущие посты, так что совет не ко мне ))

************************** 

СанСаныч Фоменко 2016.02.12 15:18     RU
Alexey Volchanskiy:
Надо попробовать перевести на R какую-нибудь из моих программ на Матлабе, сравнить скорость. Если на выходные успею разобраться, сделаю и отпишусь. Матлаб довольно тормознутый, я многие вещи делаю на C# или С++ и подключаю в виде DLL для скорости.

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

Если говорить о скорости R, то здесь несколько соображений.

1. можно перевести в байт-код, но это припарка 

************************** 

Вы понимаете, что MQL4/5 - это компилируемые языки? И что для вашей мечты MT-подобного R-терминала Метаквотам придется делать компилятор R?

 
Alexey Volchanskiy:

Но, если принять его слова на веру, как выглядит R с точки зрения безопасности? Я в нем совсем новичок, с 2000 г. работаю с Матлабом, так что поясните плз, если в курсе. Может ли он шифровать выходные файлы, как компиляторы MQL4/5?

Далее, как я понял, R остается интерпретатором, значит, будет работать еще медленнее, чем старый MQL4 и уж заведомо медленнее на порядки, чем сегодняшний MQL5. 

1. Шифруется все и разными надежными способами.

2. Это не верно в корне. Все тяжелые расчеты написаны на С, плюс распараллеливание.

Пробуйте, изучайте

Удачи

 
СанСаныч Фоменко:

Давайте будем реалистами.

Сегодня терминал МТ4 с эдитором работает без проблем (по крайней мере у меня). Нужно добавить самую малость для взаимодействия с R.

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

Удачи

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