Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
CatBoost bin continuous - библиотека для MetaTrader 5
- Просмотров:
- 2604
- Рейтинг:
- Опубликован:
- 2020.08.03 16:31
- Обновлен:
- 2023.10.29 13:02
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Библиотека предназначена для чтения и применения моделей CatBoost. Модели должны быть представляться в виде исходников C++.
Библиотека CatBoost — метод машинного обучения, основанный на градиентном бустинге (англ. gradient boosting).
Поддерживаются модели только с непрерывными переменными, бинарная классификация.
Исходная модель сокращённо выглядит так:
#include <string> #include <vector> /* Model data */ static const struct CatboostModel { unsigned int FloatFeatureCount = 24; unsigned int BinaryFeatureCount = 149; unsigned int TreeCount = 38; unsigned int TreeDepth[38] = {4, 4,..., 4, 4}; unsigned int TreeSplits[152] = {111, 141, ... , 13, 60, 85, 6}; unsigned int BorderCounts[24] = {0, 2, 7, ..., 8, 24}; float Borders[149] = {-0.000455000001f, -0.000224999996f, ... , 0.00124499993f, 0.00194999995f, }; /* Aggregated array of leaf values for trees. Each tree is represented by a separate line: */ double LeafValues[608] = { 0.2730029119914884, 0.03364653273046463, -0.2371262400839919,... 0.3055616697384914, 0, 0, 0, 0.3295134099067072, 0,... 0.2661001303798985, 0, 0.2465781759237509, -0.1025474154359036,... }; } CatboostModelStatic; .... ....
Пример использования:
//Подключаем библиотеку #include <Greshnik\\Catboost.mqh> //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnStart() { //Тут получаем модель в виде массивов MQL и сохраняем в файл if(Catboost::CatBoost_model_to_MQL("My_model.cpp","My_model.mqh")) { Print("Всё хорошо"); } else { Print("Ошибка"); } //Данные, к которым будем применять модель double features[]= {1.1,2.2,6.6}; Catboost my_model; //Читаем модель с файла if(my_model.Model_read_from_file("My_model.cpp")) { Print("Всё хорошо"); //Применяем модель к своим данным double model_result=my_model.ApplyCatboostModel(features); //Вероятность принадлежности к классу 1 double result=Logistic(model_result); Print("result"); } else { Print("Ошибка"); } }
Для перевода на другие языки редактируйте данные в массивах согласно примеру, язык будет выбран автоматически:
static eLng Catboost_lngs[]= {lng_Russian,lng_English}; string Catboost_strings[][32]= { {"Тут на русском","Tut na angliiskom"}, {"Меня зовут %s","Menia zovut %s"}, ..... };
Гистограмма разницы 'Lips' и 'Jaws' индикатора iAlligator (Alligator)
Double sizeИндикатор отображает High, Low и дополнительно двойной размер свечи
Пользовательский индикатор на базе iRSI (Relative Strength Index, RSI) - добавлены два настраиваемых уровня
Bollinger Bands & RSIПростая стратегия на основе стандартных индикаторов Bolinger Bands и RSI.