Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 966

 
Mihail Marchukajtes:

Eu fiz, depois o fórum avariou, então leia a partir da foto, pelo menos eu consegui...

o fórum falha, por isso é bom que tenhas conseguido.

Em breve traduzirei algo para píton e impulsionar e verei que melhorias
 
Maxim Dmitrievsky:

vá em frente e ligue o xgboost no R em vez do ecclmn ou qualquer c...ni que esteja a usar.

Em breve traduzirei algo para python e boosting e verei que melhorias haverá.

Descarregado. Instalei-o. Mas acho que não o consigo fazer sem o doutor. Isso se ele postou um script com um exemplo de como usá-lo. Então acho que seria possível tentar. Mais uma vez, a questão de transferir o modelo para a MT? Eu não quero construir pontes ou outra coisa qualquer. Como posso transferir um modelo do xboost para o MT4?

 
Mihail Marchukajtes:

Descarregado. Instalei-o. Mas acho que não o consigo fazer sem o Doc. Mas se ele tivesse postado um script com um exemplo de como usá-lo. Então acho que seria possível tentar. Mais uma vez, a questão de transferir o modelo para a MT? Eu não quero construir pontes ou outra coisa qualquer. Como posso transferir um modelo do xboost para o MT4?

Não sei, esta é uma pergunta para aqueles que estão no xboost.

Vou usar a pitão. Eu posso usar xgb para conectá-lo ao terminal, eu deveria perguntar àqueles que conhecem a dll, eu não sei como fazer isso.

aqui está um artigo normal para pythonhttps://www.analyticsvidhya.com/blog/2016/03/complete-guide-parameter-tuning-xgboost-with-codes-python/

e o autor tem uma comparação de GBM em outro artigo (para lhe dar uma idéia de como funciona o booster)

 

Carregou o xgb a partir do exemplo do link, mas num GPU portátil - funciona :) você pode obter 10x de velocidade, embora já seja bastante rápido

E acontece que a dll pode ser chamada diretamente do MT4/5 e até mesmo com suporte a GPU. É apenas uma questão de entender melhor o assunto.

 
Maxim Dmitrievsky:

Huh, isso é para aqueles de vocês que estão na R.

Vou ligar Python. A idéia é que o xgb pode até ser conectado ao terminal via dll, você tem que perguntar àqueles que são bons em dll, eu não sei

aqui está um artigo normal para python https://www.analyticsvidhya.com/blog/2016/03/complete-guide-parameter-tuning-xgboost-with-codes-python/

e o autor tem uma comparação de GBM em outro artigo (só para ver como funciona o booster)

O tópico xgb está cheio de sujeira, começando com a instalação, construção, etc. A biblioteca de Yandex é mais consistente a este respeito 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:

Vou tentar usar o xgb no MT5 e executá-lo sozinho. O xgb é um assunto muito complicado, começando pela instalação, construção, etc. A biblioteca de Yandex é mais consistente neste aspecto https://tech.yandex.com/catboost/doc/dg/concepts/about-docpage/

Não, é simples, você constrói a biblioteca e instala-a. Já existem alguns já montados, você só precisa copiar e instalar a lib da pasta local, também para gpu

gpu para modelos de impulso dá uma pequena aceleração, porque o modelo é construído em série, e apenas as divisões em árvores separadas são paralelas, por isso não faz sentido

quanto a catbust, o GBM leve e outros são muito inferiores (tipo de falsificação) :) pelo menos é isso que os usuários escrevem na rede

Vou tentar usá-lo no MT5.

 
Maxim Dmitrievsky:

Não, é simples, você constrói a biblioteca e instala-a. Já existem alguns já montados, você só precisa copiar e instalar a lib da pasta local, também para gpu

gpu para modelos de impulso dá uma pequena velocidade, porque o modelo é construído sequencialmente, e só se divide em árvores separadas são paralelas, por isso não faz sentido

O catbust, o GBM leve e outros são inferiores (tipo de falsificação) :) pelo menos é isso que os usuários escrevem na rede

Tenho muita experiência, mas parece-me que à primeira vista há muita variação, mas quero mais MO com resultados estáveis e menos xamanismo:))))).

 
Ivan Negreshniy:

Posso ter tido muita experiência com isto, mas à primeira vista pareceu-me que há muita variação, e ainda quero mais MO com resultados estáveis e menos xamanismo:)))

Sim, ainda precisa de uma música... Vou tentar.

encontrei um invólucro para sharps para importar fontes dll... só não sei se é uma validação cruzada por padrão ou não... pode ser uma separada

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);
  }
//+------------------------------------------------------------------+

Acho que não consigo fazer isso sozinho, afinal vou ter que usar Python :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:

Sim, ainda precisa de afinação... bem, eu vou tentar.

encontrou um invólucro sharps para importar fontes dll... só não percebeu que não há uma validação cruzada padrão, parece que vem separadamente

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

IMHO, você tem que trabalhar primeiro em python, onde está mais ou menos bem estabelecido, caso contrário há muita incerteza