Пиши и зарабатывай на MQL5 - страница 125

 

Rashid Umarov , будет ли интересна серия статей о работе с CatBoost в MT5 без R и Phyton?

Краткий план:

1. О CatBoost;

2. Консольная версия CatBoost;

3. Подготовка данных - создание предикторов и сохранение их в файл CSV на базе советника;

4. Создание скрипта для разметки целевой и разделения выборки на обучающую, тестовую, и экзаменационную;

5. Создание скрипта, генерирующего файлы настроек для пакетного создания моделей, с групповым перебором предикторов, описание основных консольных команд CatBoost;

6. Обучение моделей и их анализ, отбор моделей для дальнейшего тестирования в советнике;

7. Конвертирование моделей в файл csv для чтения советником;

8. Дополнение советника из пункта 3 возможностью загружать модели CatBoost из файла csv и применять модель на текущих данных;

9. Тестирование результатов.

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

 
Aleksey Vyazmikin:

Rashid Umarov , будет ли интересна серия статей о работе с CatBoost в MT5 без R и Phyton?

Мне будет интересна, если не растянута по времени.
 
fxsaber:
Мне будет интересна, если не растянута по времени.

А вот класс для применения - Вы, думаю, разберетесь и без статьи.

CatBoost bin continuous
CatBoost bin continuous
  • www.mql5.com
Библиотека предназначена для чтения и применения моделей CatBoost. Модели должны быть представляться в виде исходников C++. gradient boosting Поддерживаются модели только с непрерывными переменными, бинарная классификация...
 
Aleksey Vyazmikin:

А вот класс для применения - Вы, думаю, разберетесь и без статьи.

Вы слишком переоцениваете, не разберусь.

Меня интересует техническая сторона и осязаемый пример обучения/применения.

 
Aleksey Vyazmikin:

Rashid Umarov , будет ли интересна серия статей о работе с CatBoost в MT5 без R и Phyton?


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

Да, конечно.  Статьи по применению машинного обчения в трейдинге приветствуются.

Пишите, пожалуйста.

 

Здравствуйте! 

УПС, ниже описанное касается MQL4...

Я нашел интересное решение по созданию полностью динамических массивов неограниченной размерности (ну разве, что объемом физической памяти, по крайней мере больше 4 легко) и произвольного типа в пределах подуровней и это не за счет каких-либо инсинуаций с постоянными массивами. Т.е. памяти задействуется ровно столько, сколько элементов в массиве ну и плюс ссылки на цепочки подуровней.

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

Мне не хватает общих познаний ООП для создания универсального интерфейса, да я и не думаю, что это потребуется - задача использования многомерности тут не очень-то потребна.

Стандартные функции сортировки, поиска максимума и т.п. применимы к последней размерности, что в общем-то характерно для других языков программирования.

А вот размер подуровня любой вложенности можно определить в любой момент времени в любой последовательности.

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

Основная проблема, а может быть и достоинство, на данный момент, которую я не придумал как обойти - именованные уровни, т.е. не только массив имеет имя, но и каждый подуровень.

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

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

Если это интересно, могу описать подход.

Документация по MQL5: Основы языка / Операторы / Оператор уничтожения объекта delete
Документация по MQL5: Основы языка / Операторы / Оператор уничтожения объекта delete
  • www.mql5.com
Оператор уничтожения объекта delete - Операторы - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Aleksandr Martynov:

Основная проблема, а может быть и достоинство, на данный момент, которую я не придумал как обойти - именованные уровни, т.е. не только массив имеет имя, но и каждый подуровень.

почему то думаю, что Ваше ноу-хау это массив обернутый в структуру https://www.mql5.com/ru/forum/85652/page46#comment_15990662

 
Igor Makanu:

почему то думаю, что Ваше ноу-хау это массив обернутый в структуру https://www.mql5.com/ru/forum/85652/page46#comment_15990662

Странно что поиск по работе с динамическими многомерными массивами MQL4 не дает ссылки на Ваше решение или оно утонуло в этом гребанном мире торгашей и рекламы, сколько времени и нервов ?...

Суть да именно в этом, и я проверил, обычный ресайз размерности очищает память правильно - ну по крайней мере при размере массива в 40МГб колебания одинаковые и прироста не наблюдается

В таком случае не буду утруждать себя описанием сией чудесной возможности, Решение однако весьма примечательное, согласитесь, можно создавать деревья произвольной конфигурации, размеров и типов, вот только с переходом по уровням беда - нужно знать описание модели уровня, а не просто индекс...
 
Aleksandr Martynov:

Здравствуйте! 

УПС, ниже описанное касается MQL4...

...

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

Если это интересно, могу описать подход.

К сожалению, статьи по MQL4 больше не публикуем

 
Aleksey Vyazmikin:

Rashid Umarov , будет ли интересна серия статей о работе с CatBoost в MT5 без R и Phyton?

Вообще, было бы интересно. В том случае, если это законченное решение.

Вы сами то используете КэтБуст?

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