Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 966

 
Mihail Marchukajtes:

ПисалПисал, потом форум глюкнул, так что читайте с картинки, хорошо что хоть её сделал...

давай ка xgboost в R подключай вместо еклмн или какой-то там к..ни которую вы юзаете

я в скором времени переведу кое-что на питон и бустинг и посмотрим какие будут улучшения
 
Maxim Dmitrievsky:

давай ка xgboost в R подключай вместо еклмн или какой-то там к..ни которую вы юзаете

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

Скачал. Установил. Но без Дока думаю врядли осилю его. Вот еслиб он запостил скрипт с примером, как его юзать. То попробовать думаю можно было бы. Опять же вопрос в переносе модели на МТ? Не хочется городить мосты или ещё что. Как можно перенести модель с xboost в МТ4???

 
Mihail Marchukajtes:

Скачал. Установил. Но без Дока думаю врядли осилю его. Вот еслиб он запостил скрипт с примером, как его юзать. То попробовать думаю можно было бы. Опять же вопрос в переносе модели на МТ? Не хочется городить мосты или ещё что. Как можно перенести модель с xboost в МТ4???

хз, это к тем кто Р увлекается

я буду питон подключать. По идее xgb можно вообще через длл к терминалу подключить, надо спрашивать у тех кто в длл шарит, я не шерю

вот есть статья норм для питона https://www.analyticsvidhya.com/blog/2016/03/complete-guide-parameter-tuning-xgboost-with-codes-python/

и там еще у автора есть сравнение про GBM другая статья (что бы иметь представление ка бустинг работает)

 

Зарядил xgb из примера по ссылке, но на ноутбучном GPU - работает :) можно добиться ускорения в 10 раз, хотя он и так довольно быстрый

И получается, что dll можно вызвать прямо из MT4/5 и даже с поддержкой GPU. Дело за малым, вкурить тему получше

 
Maxim Dmitrievsky:

хз, это к тем кто Р увлекается

я буду питон подключать. По идее xgb можно вообще через длл к терминалу подключить, надо спрашивать у тех кто в длл шарит, я не шерю

вот есть статья норм для питона https://www.analyticsvidhya.com/blog/2016/03/complete-guide-parameter-tuning-xgboost-with-codes-python/

и там еще у автора есть сравнение про GBM другая статья (что бы иметь представление ка бустинг работает)

Тема xgb изрядно замучена, начиная с инсталяции, билдинга и т.д. более последовательно в этом плане выглядит библиотека Яндекса https://tech.yandex.com/catboost/doc/dg/concepts/about-docpage/

CatBoost — Overview of CatBoost — Yandex Technologies
CatBoost — Overview of CatBoost — Yandex Technologies
  • tech.yandex.com
is a machine learning algorithm that uses gradient boosting on decision trees. It is available as an open source library.
 
Ivan Negreshniy:

Тема xgb изрядно замучена, начиная с инсталяции, билдинга и т.д. более последовательно в этом плане выглядит библиотека Яндекса https://tech.yandex.com/catboost/doc/dg/concepts/about-docpage/

не, все просто, собирается либа и инсталлится. Есть уже и собранные, достаточно просто либу скопировать и установить с локальной папки, в том числе и для gpu

gpu для буст моделей дает маленькое ускорение, т.к. модель строится последовательно, а параллелятся только сплиты в отдельных деревьях, т.е. смысла прям большого нет

катбуст, лайт GBM и прочие сильно уступают (типа подделки) :) по крайней мере так юзеры в нете пишут

сегодня попробую импортнуть в MT5 и заюзать

 
Maxim Dmitrievsky:

не, все просто, собирается либа и инсталлится. Есть уже и собранные, достаточно просто либу скопировать и установить с локальной папки, в том числе и для gpu

gpu для буст моделей дает маленькое ускорение, т.к. модель строится последовательно, а параллелятся только сплиты в отдельных деревьях, т.е. смысла прям большого нет

катбуст, лайт GBM и прочие сильно уступают (типа подделки) :) по крайней мере так юзеры в нете пишут

возможно кто-то наработал уже много опыта и заценил это квалифицированно, но мне на первый взгляд показалось, что там разброс великоват, а всё больше хочется МО со стабильными результатами и чтоб поменьше шаманства:))

 
Ivan Negreshniy:

возможно кто-то наработал уже много опыта и заценил это квалифицированно, но мне на первый взгляд показалось, что там разброс великоват, а всё больше хочется МО со стабильными результатами и чтоб поменьше шаманства:))

да, ее еще тюнить надо.. ну короче попробую

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

https://github.com/PicNet/XGBoost.Net/blob/master/XGBoost/lib/XGBOOST_NATIVE_METHODS.cs

 
//+------------------------------------------------------------------+
//|                                                      xgboost.mq5 |
//|                                 Copyright 2018, Max Dmitrievskiy |
//|                        https://www.mql5.com/ru/users/dmitrievsky |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, Max Dmitrievskiy"
#property link      "https://www.mql5.com/ru/users/dmitrievsky"
#property version   "1.00"
#import "xgboost.dll"
string XGBGetLastError();
int XGDMatrixCreateFromMat(float&[],ulong nrow,ulong ncol,float missing,int handle);
int XGDMatrixFree(int handle);
int XGDMatrixGetFloatInfo(int handle,string field, ulong len, int result);
int XGDMatrixSetFloatInfo(int handle,string field,float&[],ulong len);
int XGBoosterCreate(int&[],ulong len, int handle);
int XGBoosterFree(int handle);
int XGBoosterSetParam(int handle,string name,string val);
int XGBoosterUpdateOneIter(int bHandle,int iter,int dHandle);
int XGBoosterPredict(int bHandle,int dHandle,int optionMask,int ntreeLimit, ulong predsLen, int predsPtr);
int XGBoosterSaveModel(int bHandle,string fileName);
int XGBoosterLoadModel(int bHandle,string fileName);
int XGDMatrixCreateFromFile(string fname,int silent, int DMtrxHandle);
int XGBoosterDumpModel(int handle,string fmap,int with_stats, int out_len, int dumpStr);
#import
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--

   int a[1]={1};
   ulong ab=1;
   int hnd=1;
   XGBoosterCreate(a, ab, hnd);
  }
//+------------------------------------------------------------------+

Походу не осилю сам, придется через питон все-таки :D

2018.05.31 15:00:17.587 xgboost (EURUSD,M15)    Access violation at 0x00007FFA5D7BA68E read to 0xFFFFFFFFFFFFFFFF in 'C:\Users\dmitrievsky\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Libraries\xgboost.dll'
2018.05.31 15:00:17.592 xgboost (EURUSD,M15)       crash -->  00007FFA5D7BA68E 498B4708          mov        rax, [r15+0x8]
2018.05.31 15:00:17.592 xgboost (EURUSD,M15)                  00007FFA5D7BA692 4885C0            test       rax, rax
2018.05.31 15:00:17.592 xgboost (EURUSD,M15)                  00007FFA5D7BA695 7404              jz         0x7ffa5d7ba69b
2018.05.31 15:00:17.592 xgboost (EURUSD,M15)    
2018.05.31 15:00:17.592 xgboost (EURUSD,M15)                  00007FFA5D7BA697 F0FF4008          lock inc        dword [rax+0x8]
2018.05.31 15:00:17.592 xgboost (EURUSD,M15)                  00007FFA5D7BA69B 498B07            mov        rax, [r15]
2018.05.31 15:00:17.592 xgboost (EURUSD,M15)                  00007FFA5D7BA69E 488904DE          mov        [rsi+rbx*8], rax
2018.05.31 15:00:17.592 xgboost (EURUSD,M15)                  00007FFA5D7BA6A2 498B4708          mov        rax, [r15+0x8]
2018.05.31 15:00:17.592 xgboost (EURUSD,M15)    
2018.05.31 15:00:17.592 xgboost (EURUSD,M15)    00: 0x00007FFA5D7BA68E
2018.05.31 15:00:17.592 xgboost (EURUSD,M15)    01: 0x000000005B0FAB91
2018.05.31 15:00:17.592 xgboost (EURUSD,M15)    02: 0x0000000000000001
2018.05.31 15:00:17.592 xgboost (EURUSD,M15)    03: 0x0000000000000246
2018.05.31 15:00:17.592 xgboost (EURUSD,M15)    04: 0x00007FF784D2BBB4
2018.05.31 15:00:17.592 xgboost (EURUSD,M15)    05: 0x00007FF784D2B933
2018.05.31 15:00:17.592 xgboost (EURUSD,M15)    06: 0x00007FF7851BEA5E
2018.05.31 15:00:17.592 xgboost (EURUSD,M15)    07: 0x00007FF7851BD979
2018.05.31 15:00:17.592 xgboost (EURUSD,M15)    08: 0x00007FF784C09A90
2018.05.31 15:00:17.592 xgboost (EURUSD,M15)    09: 0x00007FFA870C3034
2018.05.31 15:00:17.592 xgboost (EURUSD,M15)    10: 0x00007FFA87531551
 
Maxim Dmitrievsky:

да, ее еще тюнить надо.. ну короче попробую

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

https://github.com/PicNet/XGBoost.Net/blob/master/XGBoost/lib/XGBOOST_NATIVE_METHODS.cs

ИМХО, надо в питоне сначала отрабатывать, там где оно более или менее отлажено, иначе много неопределенности

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