Смотри, как бесплатно скачать роботов
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

CatBoost bin continuous - библиотека для MetaTrader 5

Aliaksandr Hryshyn

Просмотров:
565
Рейтинг:
голосов: 9
Опубликован:
2020.08.03 16:31
Обновлен:
2020.10.24 11:19

Библиотека предназначена для чтения и применения моделей 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"},
     .....
  };


    Alligator Histogram Alligator Histogram

    Гистограмма разницы 'Lips' и 'Jaws' индикатора iAlligator (Alligator)

    Double size Double size

    Индикатор отображает High, Low и дополнительно двойной размер свечи

    RSI Levels RSI Levels

    Пользовательский индикатор на базе iRSI (Relative Strength Index, RSI) - добавлены два настраиваемых уровня

    Bollinger Bands & RSI Bollinger Bands & RSI

    Простая стратегия на основе стандартных индикаторов Bolinger Bands и RSI.