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

 
Yuriy Asaulenko:
Ну, так дайте массам самим сделать выбор - костыли MatLab/R/ ... и пр. или MQL. Для этого MQ только DLL написать. Пусть будет и то и другое. MQL для многих задач весьма неплох. MQ и ДЦ еще и доп клиентов получат.

DLL вам доступны всегда. Посмотрите в статьи - там ряд статей по штатному сопряжению МТ с другими мат системами.

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

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

 

Renat Fatkhullin:

Reshetov, никаких доказательств ваших размышлений.

  1. Мы включим 4 математические библиотеки на этой неделе в состав языка в исходниках, потом еще
  2. Компилятор MQL5 для х64 фантастический за счет упорной оптимизации, что дает очень быстрый код (и ява запросто слить может)
  3. Наш метод создания цельных программ без костылей масштабируется на миллионы пользователей, а R не масштабируется никак - он для 3.5 человек

А я и не собираюсь ничего доказывать.

Зачем? 

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

TIOBE Index | TIOBE - The Software Quality Company
  • www.tiobe.com
TIOBE Index for September 2016 September Headline: Julia enters top 50 for the first time It was a matter of time until Julia would hit the top 50. This month it did so. The Julia programming language is meant for numerical computing. It combines functional programming paradigms with high speed. In other words, readable and stable code that...
 
Yury Reshetov:

А я и не собираюсь ничего доказывать.

Зачем? 

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

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

За табличкой следим - мы там постоянные члены: составители объединили MQL4 и MQL5 в один язык, так как считают их одним семейством

The Next 50 Programming Languages

The following list of languages denotes #51 to #100. Since the differences are relatively small, the programming languages are only listed (in alphabetical order).

  • (Visual) FoxPro, 4th Dimension/4D, ABC, ActionScript, APL, AutoLISP, bc, BlitzMax, Bourne shell, C shell, CFML, CL (OS/400), Common Lisp, Crystal, Eiffel, Elixir, Forth, Hack, Icon, IDL, Inform, Io, J, Korn shell, Kotlin, Maple, ML, Modula-2, MQL4, MS-DOS batch, NATURAL, NXT-G, OCaml, OpenCL, Oz, Pascal, PL/I, PostScript, PowerShell, REXX, S, Smalltalk, SPARK, SPSS, Standard ML, Stata, Tcl, VBScript, Verilog, Z shell
 

Юрий дело говорит касательно всех тех проблем при машинном обучении, и отсутствие их решения в mql даже с alglib. Предварительная обработка данных это очень, очень важно. И не только это. Реальные доказательства сложно привести, это скорее относится к интуиции и опыту. 

Могу даже предугадать путь через который пройдёт большинство энтузиастов alglib в mql:
1) набрать кучу индикаторов, запихнуть это всё в нейронку, обучить её, получить отличные результаты в бэктесте
2) несмотря на бэктест, на фронттесте будет стабильный слив
3) потратить пару месяцев на ручной перебор индикаторов и параметров нейронки, пока и бэктест, и фронттест начнут показывать прибыль
4) поторговать пару недель в плюс, потом внезапно советник испортится, снесёт все стопы, и навсегда перестанет приносить прибыль
5) повторять пункты 3-4 годами пока не устанешь от всего этого
6) начать разбираться почему не получается сделать долговечный советник, экспериментировать, и придти к тем выводам что написал Юрий, плюс ещё куча всего

Дело даже не в alglib, это всё относится и к matlab, и к R. Просто раньше такие опыты были доступны только через самодельные интерфейсы к другим математическим программам, а сейчас стало доступно всем прямо в mql.
Alglib в mql это очень хорошо я считаю, те кто раньше прошёл шестой пункт теперь допишет своих функций к alglib и будет радоваться быстрой производительности и всему советнику в одном .ex5 файле, и ещё и в маркете продавать можно.
Но alglib это не универсальный форекс решатель, очень далеко от этого, это просто инструмент который позволяет сделать такой решатель. Люди не должны ложно верить в то что можно просто взять нейронку, напихать в неё побольше индикаторов, и получить грааль.

 

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

К счастью, на самом деле основной объем работы разработчиков стратегий идет вне плача на форумах, где люди жалуются "вот этого не хватает". Язык настолько мощный, что на него можно легко портировать тонну кода (удобней с C# чем с С++ по причине отсутсвия адресной арифметики) и применять его у себя.

И люди это делают молча - такова работа профессинальных разработчиков.

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

Посмотрите на гитхаб - он открыл целый мир ранее скрытых решений. Мы пойдем таким же путем. Путем расширения родной экосистемы MQL5, а не кусочных интеграций для пары человек.

 
Yury Reshetov:

А я и не собираюсь ничего доказывать.

Зачем? 

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

В описании к этой табличке недвусмысленно сказано, что она не о "лучшести" языка для чего бы то ни было, а лишь показатель того, сколько народу на нём пишет. Очевидно, что трейдунов самописцев намного меньше чем писцев на языках под Android или под iOS, но это вовсе не означает что MQL5 хуже. Если MQL5 будет расширятся такими темпами стандартными мат и стат библиотеками (понятно что и дальше будет пополнятся возможностями как от MQ так и от сторонних разработчиков), то не ровен час на нём начнут писать и для Android (шутка конечно, но кто знает как оно может быть в будущем). А вот R не станет массовым никогда по причине своей спицифичности и необходимости в кастылях что бы использовать в сторонних программах. 
 

Renat Fatkhullin:

R не масштабируется никак - он для 3.5 человек

R в отличие от MQL входит в пятерку наиболее востребованных языков в мире.

Да, кстати. Возможность загрузки своего фида в тестер гораздо более востребована чем наличие библиотек.

 
Комбинатор:

R в отличие от MQL входит в пятерку наиболее востребованных языков в мире.

Да, кстати. Возможность загрузки своего фида в тестер гораздо более востребована чем наличие библиотек.

Как исследовательская платформа для всего, но без привязки к трейдингу. И не в пятерку, а на 18 месте.

А у нас узкоспециализированный язык для анализа и трейдинга(в рейтинге tiobe где-то с 51 по 100 место занимает). Причем за достаточно короткий срок мы покроем базовый функционал математики R. Там не так все круто и сложно, как кажется со стороны.

Ждите релиза, где мы начнем выкатывать портированные нами математические библиотеки в исходниках. Мы уже провели большую работу и сейчас все это включаем в стандартную библиотеку по мере окончания тестов.

В текущей бете уже доступны alglib и stat, покрывающий базовые мат функции R. На днях выпустим статью с таблицами покрытия базовых мат функций R.

 

Что еще хорошо в нашей реализации библиотек в исходниках: компилятор настолько хорошо оптимизирует код, что скорость исполнения результирующего кода потрясающая.

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

 
Реter Konow:

Понимаю. Это я просто так пошутил в ответе Andrey Dik.

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


Да что Вы сомневаетесь? Напишите, если администрация не захочет публиковать, то разместите на форуме - люди и оценят.
 

Dr.Trader:


Предварительная обработка данных это очень, очень важно

...

Но alglib это не универсальный форекс решатель, очень далеко от этого, это просто инструмент который позволяет сделать такой решатель.

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

Dr.Trader:

...

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

Тут я готов поспорить, т.к. мне известна одна нейронка в которую, не то что бы можно, а даже нужно напихать на входы побольше выходов значений индикаторов ТА и получить готовую модель для ТС. Но там не голая нейронка, а алгоритмы полного цикла для ML:

  1. Считывание и парсинг выборки
  2. Деление выборки на части для последующей валидации
  3. Нормирование входных данных
  4. Структуирование нейронов скрытого слоя
  5. Выявление значимых предикторов и отсев шумных и незначимых
  6. Обучение моделей
  7. Редукция лишних нейронов из скрытых слоёв (у которых после обучения нулевые весовые коэффициенты на входах нейрона выходного слоя)
  8. Валидация моделей (отсев моделей, обобщающая способность которых ниже вероятности случайного выбора)
  9. Выбор модели с максимальной обобщающей способностью (возможен только в том случае, если хотя бы одна модель прошла валидацию).

Библиотеки, которые портированы под MQL5, могут выполнять только п. 6, да к тому же  обучать только одну модель (параллельные вычисления в MQL не реализованы), а не множество.

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

  1. Выбор финансового инструмента и таймфрейма
  2. Запуск скрипта. Т.е. запускается MetaTrader (как внешнее приложение) в режиме командной строки со скриптом, который из показаний различных индикаторов и осцилляторов ТА, вынимает значения для каждого бара и формирует выборку для машинного обучения. Выборка записывается в файл формата CSV.
  3. Построение модели с максимальной обобщающей способностью, т.е. все 9 вышеперечисленных пунктов полного машинного обучения.
  4. Генерирование кода советника на mq5 с встроенной моделью из п. 3.
  5. Тестирование советника на исторических данных. Т.е. опять запускается MetaTrader5 (как внешнее приложение) в режиме тестирования.
  6. Выдача результатов тестирования советника на исторических данных в виде отчёта в браузере по умолчанию.

Т.е. пользователю этого форка вообще не надо будет знать, что такое машинное обучение и из каких этапов оно состоит (ведь пользователю бытовой техники совершенно не обязательно знать, как устроена эта самая техника внутри, чтобы ею пользоваться?). Ему нужно будет запустить форк, выбрать только финансовый инструмент, таймфрейм и через некоторое время получить советника вместе с результатами его тестирования. А дальше по полученным результатам он уже сам может принять решение, на предмет: стоит ли дальше тестировать советник на демо и центовом реале для последующего алготрейдинга или удалить?