L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 966

 
Mihail Marchukajtes:

L'ho fatto, poi il forum si è bloccato, quindi leggi dalla foto, almeno ce l'ho fatta...

il forum va avanti e avanti... andate su xgboost in R invece di ecclmn o qualunque c...ni usiate

Presto tradurrò qualcosa in python e boosting e vedrò quali miglioramenti
 
Maxim Dmitrievsky:

Inserite xgboost in R invece di eclmn o qualsiasi altro c...ni stiate usando.

Presto tradurrò qualcosa in python e boosting e vedrò quali miglioramenti ci saranno.

Scaricato. Installato. Ma non credo di poterlo fare senza il dottore. Questo se ha postato uno script con un esempio di come usarlo. Allora penso che sarebbe possibile provare. Ancora una volta, la questione del trasferimento del modello alla MT? Non voglio costruire ponti o altro. Come posso trasferire un modello da xboost a MT4?

 
Mihail Marchukajtes:

Scaricato. Installato. Ma non credo di poterlo fare senza Doc. Ma se avesse postato uno script con un esempio di come usarlo. Allora penso che sarebbe possibile provare. Di nuovo, la questione del trasferimento del modello alla MT? Non voglio costruire ponti o altro. Come posso trasferire un modello da xboost a MT4?

Non so, questa è una domanda per coloro che amano xboost.

Userò python. posso usare xgb per collegarlo al terminale, dovrei chiedere a quelli che sanno di dll, non so come fare.

Ecco un articolo normale per pythonhttps://www.analyticsvidhya.com/blog/2016/03/complete-guide-parameter-tuning-xgboost-with-codes-python/

e l'autore ha un confronto di GBM in un altro articolo (per darvi un'idea di come funziona il booster)

 

Caricato l'xgb dall'esempio del link, ma su una GPU di un portatile - funziona :) si può ottenere un'accelerazione 10x, anche se è già abbastanza veloce

E si scopre che la dll può essere chiamata direttamente da MT4/5 e anche con supporto GPU. Si tratta solo di capire meglio l'argomento

 
Maxim Dmitrievsky:

Huh, questo è per quelli di voi che sono in R.

Collegherò python. L'idea è che xgb può anche essere collegato al terminale tramite una dll, bisogna chiedere a chi è bravo con le dll, non so

Ecco un articolo normale per python https://www.analyticsvidhya.com/blog/2016/03/complete-guide-parameter-tuning-xgboost-with-codes-python/

e l'autore ha un confronto di GBM in un altro articolo (solo per vedere come funziona il booster)

L'argomento xgb è pieno di sporcizia, a partire dall'installazione, la costruzione, ecc. La libreria di Yandex è più coerente in questo senso 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:

Proverò a usare xgb in MT5 e a farlo funzionare da solo. xgb è un argomento molto complicato, a partire dall'installazione, la costruzione ecc. La libreria di Yandex è più coerente in questo aspetto https://tech.yandex.com/catboost/doc/dg/concepts/about-docpage/

No, è semplice, si costruisce la lib e la si installa. Ci sono già assemblati, basta copiare e installare la lib dalla cartella locale, anche per la gpu

gpu per i modelli boost dà una piccola accelerazione, perché il modello è costruito in serie, e solo gli split in alberi separati sono parallelizzati, quindi non ha senso

per quanto riguarda il catbust, GBM leggero e altri sono molto inferiori (tipo di falso) :) almeno questo è ciò che gli utenti scrivono in rete

Cercherò di usarlo in MT5

 
Maxim Dmitrievsky:

No, è semplice, si costruisce la lib e la si installa. Ci sono già assemblati, basta copiare e installare la lib dalla cartella locale, anche per la gpu

gpu per i modelli boost dà una piccola accelerazione, perché il modello è costruito in serie, e solo gli split in alberi separati sono parallelizzati, quindi non ha senso

Il catbust, GBM leggero e altri sono inferiori (tipo di falso) :) almeno questo è ciò che gli utenti scrivono in rete

Ho molta esperienza, ma mi sembra che a prima vista ci sia molta variazione, ma voglio più MO con risultati stabili e meno sciamanesimo:))).

 
Ivan Negreshniy:

Forse ho avuto molta esperienza con questo, ma a prima vista mi è sembrato che ci sia molta variazione, e voglio ancora più MO con risultati stabili e meno sciamanesimo:)))

Sì, ha ancora bisogno di una messa a punto... Ci proverò

trovato un wrapper per sharps per importare font dll... solo non so se è crossvalidation di default o no... potrebbe essere uno separato

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

Non credo di poterlo fare da solo, dovrò usare Python dopo tutto :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:

Sì, ha ancora bisogno di una messa a punto... beh, farò un tentativo.

ha trovato un wrapper sharps per importare i font dll... solo che non si è reso conto che non c'è una convalida incrociata di default, sembra venire separatamente

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

IMHO, devi lavorare prima in python, dove è più o meno ben stabilito, altrimenti c'è molta incertezza