Используете ли вы CExpert при создании роботов? - страница 18

 
fxsaber:

Это сколько? 10-20 человек на сотни тысяч текущих пользователей..

В кодобазе мною была выложена библиотека обмена между МТ4 и R. На сегодня 2649 просмотров. 

В той же кодобазе был выложен индикатор для предсказания на основе R. 6081 просмотров. 

 

Замечу, что бы что-то посмотреть с использованием R это не тоже самое что посмотреть какой-нибудь индикатор. 

 

Форумяне, использующие R, на форум просто не заходят. А это люди, которые реально торгуют.

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

В кодобазе мною была выложена библиотека обмена между МТ4 и R. На сегодня 2649 просмотров. 

В той же кодобазе был выложен индикатор для предсказания на основе R. 6081 просмотров. 

 

Замечу, что бы что-то посмотреть с использованием R это не тоже самое что посмотреть какой-нибудь индикатор.

Изучите технический термин "просмотр".
 

Реter Konow:


И еще, хотел узнать по поводу отношения к "иным" подходам. Я например, несколько лет программирую на MQL не так как все, и скажем, захочу познакомить сообщество со своим методом написав о нем статью. Могу ли я, опубликовать статью, где в качестве примеров будет приведен код на русском языке и без намека на ООП? Поведать о совершенно не стандартном подходе.


Наименования функций и переменных. Комментарии тоже. В этом вся и проблема... Я программирую на русском, потому что это мой родной язык и он дает мне программную "силу".) Читабельность = эффективность... В этом вся фишка. Понимаю, что это не форматно, но я бы мог подобрать английские названия своим функциям и переменным, дополнительно, чтобы помочь переводчикам... (ведь статьи публикуются на разных языках). Дефайны у меня все на английском.
Жаль, что не получил ответа на свой вопрос... Хотел попробывать написать статью, но наверное, формат моего кода все таки не приемлем. Если сравнивать пропорционально количеству написанного мною "нестандартного" кода, то чувствую себя уже не белой вороной, а белым слоном.) Но ведь каждый согласится, что в программировании главное - результат?
 
Реter Konow:
Жаль, что не получил ответа на свой вопрос... Хотел попробывать написать статью, но наверное, формат моего кода все таки не приемлем. Если сравнивать пропорционально количеству написанного мною "нестандартного" кода, то чувствую себя уже не белой вороной, а белым слоном.) Но ведь каждый согласится, что в программировании главное - результат?
Не в той теме вопрос, попробуй обратиться сюда.
Пиши и зарабатывай на MQL5
Пиши и зарабатывай на MQL5
  • www.mql5.com
Наша компания стремилась и стремится опираться на помощь трейдеров при создании своих новых продуктов...
 
Yury Reshetov:

Хотя я и не сторонник R, всё вышеперечисленное не решает даже малой доли полного цикла задач машинного обучения.

Суть в том, чтобы применить эти библиотеки для полного цикла машинного обучения, необходимо ещё и  создать соответствующую инфраструктуру, которая отсутствует в вышеуказанных библиотеках:

  1. Для предобработки данных перед обучением моделей на них: например, банальную линейную нормировку. Не говоря уже о выявлении значимости или незначимости предикторов, например, с помощью метода главных компонент.
  2. Для постобработки моделей после обучения, т.е. валидацию моделей, для этого в предобработке необходимо предварительно разделить выборку на две или более части. Собственно, статистика и нужна для результатов постобработки, а не сама по себе в виде сферического коня в вакууме.

Без соответствующей инфраструктуры предобработки данных и постобработки моделей, все вышеуказанные библиотеки являются совершенно бесполезными. И тем, кто занимается машинным обучением гораздо проще воспользоваться R, Python, Weka или иным софтом, где имеется соответствующая инфраструктура, чтобы получить полноценный результат.  В крайнем случае придётся в посторонней софтине выполнить предобработку данных, потом обучить модель в MQL, потом провести её валидацию в сторонней софтине. Но поскольку нет никакой прямой совместимости для обмена данных между MQL и сторонними софтинами, то гораздо проще весь цикл машинного обучения проводить в сторонних софтинах.

Т.е. задача состоит в том, чтобы создать ещё и соответствующую инфраструктуру машинного обучения для предобработки и постобработки (а не только для обучения моделей) в MQL и связать её средствами MQL с вышеперечисленными библиотеками. Тогда народ подтянется. А полуфабрикаты, нуждающиеся в сторонних костылях или попытки изобретать костыльные велосипеды для реализации полного цикла машинного обучения, мало кому интересны. Людям проще выучить R, Python или Weka, в которых соответствующая инфраструктура уже имеется.

+1
С R не работаю. SciLab и C#  + API терминала.
Для создания ТС на MQL нужно слишком много лишних телодвижений, имхо. И суррогатов, или затраченнго времени, вместо уже проверенного и общедоступного функционала.
 
Реter Konow:
Жаль, что не получил ответа на свой вопрос... Хотел попробывать написать статью, но наверное, формат моего кода все таки не приемлем. Если сравнивать пропорционально количеству написанного мною "нестандартного" кода, то чувствую себя уже не белой вороной, а белым слоном.) Но ведь каждый согласится, что в программировании главное - результат?

Так Вы покажите выдержки из кода - иначе не понятно, как должны принять решение...

А писать пишите, если есть желание - почитаю с интересом. 

 
-Aleks-:

Так Вы покажите выдержки из кода - иначе не понятно, как должны принять решение...

А писать пишите, если есть желание - почитаю с интересом. 

Хорошо. Буду писать и публиковать, нравится кому то это или нет.))

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

 
Реter Konow:

Хорошо. Буду писать и публиковать, нравится кому то это или нет.))

Статью хотел посвятить критике ООП, написанию программ на английском и выступить с предложением всем вместе на другой подход, который мы должны вместе придумать...)))

Ваша статья о том, что мы должны придумать?
 
Andrey Dik:
Ваша статья о том, что мы должны придумать?
Точно. Мне же одному тяжело...)) (шучу я)
 
Yuriy Asaulenko:
+1
С R не работаю. SciLab и C#  + API терминала.
Для создания ТС на MQL нужно слишком много лишних телодвижений, имхо. И суррогатов, вместо уже проверенного функционала.

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

Но за счёт того, что в нём вместо портирования с других языков, предоставляется возможность обмениваться данными со сторонним софтом, необходимость в портировании напрочь отсутствует. Например, чтобы готовый софт, созданный на Java работал в R, можно воспользоваться пакетом RJava. И соответственно пользователи R, несмотря на то, что сам R очень медленный, получают скорость обработки данных соответствующую Java.

Теоретически такую совместимость в MQL тоже можно было бы добиться, если бы MQL имел штатную возможность обмена данными со сторонним софтом через стандартный ввод/вывод или хотя бы через протокол TCP/IP. Но Ренат почему-то решил, что если портирование  переманит пользователей в MQL из других языков программирования? Однако, он даже не догадывается, что библиотеки реализующие только обучение моделей позволяют решать только самые примитивные задачи, в которых нет необходимости:

  1. В предобработке данных (а она в машинном обучении занимает наибольшую часть, как по времени, так и по проблемам)
  2. В постобработке моделей (а без этого никак нельзя удостовериться, что модель валидна).

Т.е. все портированные в MQL библиотеки способны справиться только с самыми примитивными задачами машинного обучения. Например, с их помощью можно научить модель решать задачу XOR, ведь в ней входы уже нормированы к диапазону 0-1, бесшумны, заведомо известны, независимы и не нуждаются в отборе по значимости. И валидация модели тоже не нужна, т.к. в выборке всего четыре примера.

Но для трейдинга такой подход бесполезен. Потому что входные данные из технического анализа:

  1. Зависимы (индикаторы и осцилляторы коррелируют не только на одном и том же инструменте, но частенько и на разных инструментах)
  2. Ненормализованы. Например, если на входы подать значения осцилляторов RSI и MACD, то их диапазоны различаются на порядки. Причём значения MACD могут различаться на порядки для разных инструментов, скажем, на EURUSD, USDJPY или золоте. Для нейросетей с обратным распространением ошибки простой линейной нормировки данных явно недостаточно, т.к. там рекомендуется центрирование по дисперсии, за счёт чего скорость обучения модели возрастает в разы.
  3. Зашумлены. Мне неизвестен ни один алгоритм машинного обучения, который бы в той или иной степени не переобучался на шумах. Соответственно, нужен алгоритм понижения размерности входов, который будет отсеивать либо незначимые предикторы, либо слишком шумные.

Ну и где взять библиотеки на MQL для того, чтобы решать хотя бы эти  три вышеуказанные проблемы, присутствующие в данных технического анализа? Ведь их нет. Значит придётся либо изобретать велосипед, т.е. самим дописывать и отлаживать. Либо идти более простым путём, а именно через прикручивание стороннего софта, имеющего необходимую инфраструктуру для машинного обучения к MQL, чем в данный момент и занимаются пользователи R.

Я уже не говорю о скорости библиотек на  MQL. Можно взять для примера библиотеку ENCOG на Java и портированную под MQL и загрузить их одной и той же крупной обучающей выборкой. Сомневаюсь, что результаты будут в пользу портированной под MQL?

Т.е. для того, чтобы приспособить MQL для нужд машинного обучения ещё очень много чего нужно сделать. На данный момент реализована лишь очень малая и далеко не самая проблемная часть.

Поэтому перебежчиков из числа тех, кто специализируется в машинном обучении, из более приспособленных для этого языков программирования, таких как R, Python или Java в MQL, до сих пор не наблюдается.

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