Библиотека Roffild'a - страница 3

 
Roffild:

А зачем мне выдумывать что-то сложное?

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

Если ToIndicator_Example.mq5 не заработал, то наверно, код в папке Indicators\Roffild\ не собрался при запуске терминала. Лог был бы кстати...

Конечно, все мы привыкли создавать всё с нуля, поэтому никто не хочет осваивать новые библиотеки, но в современном мире использование стороннего кода - это обычная практика...

Разработчики платформы планомерно совершенствуют систему ранжирования программных модулей по функциональному назначению, а вы со своими библиотеками идете в обратную сторону и хотите всё опять обезличить...))
 
Ivan Negreshniy:
Разработчики платформы планомерно совершенствуют систему ранжирования программных модулей по функциональному назначению, а вы со своими библиотеками идете в обратную сторону и хотите всё опять обезличить...))

Чтобы разделять на модули, нужна система разруливания зависимостей. Сейчас такой системы для MQL нет и вряд ли  будет.

При нормальной разработке нет чёткого разделения на Эксперта, Библиотеки, Индикатора и Скрипт - всё взаимосвязано. В MQ решили это разделить. Такое разделение подходит для мелких проектов, которые заполонили CodeBase.

Основная причина отсутствия этой библиотеки в CodeBase - это отсутствие возможности опубликовать все файлы одним архивом или через систему контроля версий. Сейчас нужно добавлять в базу каждый файл по отдельности - но это же бред... Поэтому в  CodeBase не может быть средних и больших проектов из-за этих ограничений.

 
Привет можешь код использования библиотеки для лога(Log4MQL.mqh и Log4MQL_tofile.mqh + модуль для LogMX)  как писать в лог.
 
Файлы:
 

Библиотека Roffild’a

Я известен сообществу программистов на MQL5 по ником Roffild и это моя библиотека с открытым кодом для MQL5. Попытка реализовать возможности на MQL5, которые уже давно стали стандартом для популярных языков программирования. В каждом файле реализована одна идея. Библиотека пополняется по мере необходимости в новых возможностях.

Мало кто пытался выложить проект в Github. Единого стандарта нет. MetaQuotes не учитывают использование системы контроля версий при создании проекта. Почему-то программисты из MetaQuotes считают, что проект должен быть одного типа. Для мелких проектов, которые публикуются в CodeBase на сайте MQL5.com, такое разделение обосновано. Для средних и крупных проектов невозможно выбрать один тип проекта.

Я экспериментировал с разной структурой построения проекта. Для использования Git пришлось вынести файлы за пределы стандартной структуры папок, принятой в MetaQuotes. Создать ссылку на промежуточную папку (в этой библиотеке папка “Roffild”) - лучший вариант.

MetaEditor может сохранять код в UTF-16, но кодировка UTF-8 с BOM тоже поддерживается. Для конвертации файла с исходным кодом нужно использовать сторонний редактор (рекомендую Notepad++).

Библиотеку можно разделить на интересы:

  • обычные задачи (ArrayList, Log4MQL, ToIndicator и т.д.);
  • эксперименты с AlgLib в машинном обучении;
  • использование Apache Spark с Amazon Web Services (EC2 и EMR), когда возможностей AlgLib перестало хватать.

Документация

MQL5
Java

Ссылки

Roffild.com
Github
MQL5.com: topic for discussion in English
MQL5.com: тема для обсуждения на Русском


Установка

(Необязательно)

mklink /j ссылка куда - не требует прав администратора.

Имеет смысл вынести папку %APPDATA%\MetaQuotes в корень раздела или на раздел большего размера. Windows имеет ограничения на 255 символов пути к файлу. Полный путь к папке MQL5 у меня состоит из 88 символов. При тестировании терминал копирует историю по количеству локальных агентов, что увеличивает размер этой папки на несколько гигабайт.

  1. Переместить папку %APPDATA%\MetaQuotes в D:\MQLProjects
  2. mklink /j %APPDATA%\MetaQuotes D:\MQLProjects
  3. mklink /j D:\MQLProjects\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\ D:\MQLProjects\MQL5

(Важно)

Запустить create_links.bat из папки MQL5\MyProjects\RoffildLibrary после клонирования проекта.

Code style

Google Java Style

Tab = 3 spaces

Column limit = 110

License

Apache License 2.0

 
Библиотека Roffild’a
Библиотека Roffild’a
  • roffild.com
Я известен сообществу программистов на MQL5 под ником Roffild и это моя библиотека с открытым кодом для MQL5. Попытка реализовать возможности на MQL5, которые уже давно стали стандартом для популярных языков программирования. В каждом файле реализована одна идея. Библиотека пополняется по мере необходимости в новых возможностях. Мало кто...
 
Есть "Запись данных в файл формата MySQL", а почему нет чтения из этого формата?
 
Aleksey Vyazmikin:
Есть "Запись данных в файл формата MySQL", а почему нет чтения из этого формата?
Потому что записывать в текстовый формат просто, а для чтения из этого формата нужно использовать синтаксический анализатор. https://en.wikipedia.org/wiki/Parsing
Parsing - Wikipedia
  • en.wikipedia.org
The term has slightly different meanings in different branches of linguistics and computer science. Traditional sentence parsing is often performed as a method of understanding the exact meaning of a sentence or word, sometimes with the aid of devices such as sentence diagrams. It usually emphasizes the importance of grammatical divisions such...
 
Roffild:
Потому что записывать в текстовый формат просто, а для чтения из этого формата нужно использовать синтаксический анализатор. https://en.wikipedia.org/wiki/Parsing

Кому просто, а кому нет, к примеру создать 1000 столбцов средствами MQL вовсе не просто...

 
Aleksey Vyazmikin:

Кому просто, а кому нет, к примеру создать 1000 столбцов средствами MQL вовсе не просто...

Эм... в MQL вообще нет столбцов. И MQL != SQL - это совсем разные языки.

Для знающих SQL проще отсеять лучшие проходы после оптимизации, когда их количество переваливает за 5000 проходов. Реализовано в TesterSql.mqh