Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 966

 
Mihail Marchukajtes:

Ich habe es getan, dann ist das Forum abgestürzt, also lese ich vom Bild ab, zumindest habe ich es geschafft...

Das Forum hat Probleme, also ist es gut, dass Sie es geschafft haben.

Ich werde bald etwas in Python und Boosting übersetzen und sehen, welche Verbesserungen
 
Maxim Dmitrievsky:

Stecken Sie xgboost in R anstelle von eclmn oder was auch immer c...ni Sie verwenden.

Ich werde bald etwas in Python und Boosting übersetzen und sehen, welche Verbesserungen es geben wird.

Heruntergeladen. Ich habe es installiert. Aber ich glaube nicht, dass ich es ohne den Arzt schaffe. Das wäre der Fall, wenn er ein Skript mit einem Beispiel für dessen Verwendung veröffentlichen würde. Dann könnte man es ja versuchen. Auch hier stellt sich die Frage der Übertragung des Modells auf MT? Ich möchte keine Brücken bauen oder etwas anderes. Wie kann ich ein Modell von xboost auf MT4 übertragen?

 
Mihail Marchukajtes:

Heruntergeladen. Ich habe es installiert. Aber ich glaube nicht, dass ich es ohne Doc schaffe. Aber wenn er ein Skript mit einem Beispiel für die Verwendung gepostet hätte. Dann könnte man es ja versuchen. Auch hier stellt sich die Frage der Übertragung des Modells auf MT? Ich möchte keine Brücken bauen oder etwas anderes. Wie kann ich ein Modell von xboost auf MT4 übertragen?

Ich weiß es nicht, das ist eine Frage für diejenigen, die Xboost mögen.

Ich werde Python verwenden. ich kann xgb verwenden, um es mit dem Terminal zu verbinden, ich sollte diejenigen fragen, die sich mit dll auskennen, ich weiß nicht, wie man es macht.

hier ist ein normaler Artikel für Pythonhttps://www.analyticsvidhya.com/blog/2016/03/complete-guide-parameter-tuning-xgboost-with-codes-python/

und der Autor hat einen Vergleich von GBM in einem anderen Artikel (um Ihnen eine Vorstellung zu geben, wie der Booster funktioniert)

 

Geladen die xgb aus dem Link Beispiel, aber auf einem Laptop GPU - es funktioniert :) können Sie 10x speedup zu bekommen, obwohl es bereits ziemlich schnell ist

Und es stellt sich heraus, dass dll direkt von MT4/5 und sogar mit GPU-Unterstützung aufgerufen werden kann. Es geht nur darum, ein besseres Verständnis für das Thema zu bekommen

 
Maxim Dmitrievsky:

Hm, das ist für die, die auf R's stehen.

Ich werde python verbinden. Die Idee ist, dass xgb kann sogar mit dem Terminal über eine dll verbunden werden, müssen Sie diejenigen, die gut auf dll sind fragen, ich weiß es nicht

hier ist ein normaler Artikel für Python https://www.analyticsvidhya.com/blog/2016/03/complete-guide-parameter-tuning-xgboost-with-codes-python/

und der Autor hat einen Vergleich von GBM in einem anderen Artikel (nur um zu sehen, wie der Booster funktioniert)

Das xgb-Thema ist voller Schmutz, angefangen bei der Installation, dem Aufbau usw. Die Bibliothek von Yandex ist in dieser Hinsicht konsistenter 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.
 
Iwan Negreshniy:

Ich werde versuchen, xgb in MT5 zu verwenden und es selbst laufen zu lassen. xgb ist ein sehr kniffliges Thema, angefangen von der Installation, dem Aufbau usw. Die Bibliothek von Yandex ist in dieser Hinsicht konsistenter https://tech.yandex.com/catboost/doc/dg/concepts/about-docpage/

Nein, es ist ganz einfach: Sie bauen die Lib und installieren sie. Es gibt schon fertige, man muss nur die Lib aus dem lokalen Ordner kopieren und installieren, auch für gpu

gpu für Boost-Modelle bringt einen kleinen Geschwindigkeitszuwachs, weil das Modell in Serie gebaut wird und nur Splits in separaten Bäumen parallel geschaltet werden, so dass es keinen Sinn macht

wie für catbust, Licht GBM und andere sind sehr minderwertig (Art der Fälschung) :) zumindest das ist, was Benutzer auf dem Netz schreiben

Ich werde versuchen, es in MT5 zu verwenden

 
Maxim Dmitrievsky:

Nein, es ist ganz einfach: Sie bauen die Lib und installieren sie. Es gibt schon fertige, man muss nur die Lib aus dem lokalen Ordner kopieren und installieren, auch für gpu

gpu für Boost-Modelle bringt einen kleinen Geschwindigkeitszuwachs, weil das Modell in Serie gebaut wird und nur Splits in separaten Bäumen parallel geschaltet werden, so dass es keinen Sinn macht

Der Catbust, der leichte GBM und andere sind minderwertig (eine Art Fake) :) zumindest schreiben das die Nutzer im Netz

Ich habe eine Menge Erfahrung, aber es scheint mir, dass auf den ersten Blick gibt es eine Menge von Variationen, aber ich will mehr MO mit stabilen Ergebnissen und weniger Schamanismus:))).

 
Ivan Negreshniy:

Ich habe vielleicht viel Erfahrung damit, aber auf den ersten Blick schien es mir, dass es eine Menge Variationen gibt, und ich möchte immer noch mehr MO mit stabilen Ergebnissen und weniger Schamanismus:)))

Ja, es muss noch aufgemöbelt werden... Ich werde es ausprobieren.

Ich habe einen Sharps-Wrapper gefunden, um DLL-Schriften zu importieren... ich weiß nur nicht, ob es standardmäßig Crossvalidation ist oder nicht... vielleicht ist es ein separates Programm

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

Ich glaube nicht, dass ich das selbst machen kann, ich werde wohl doch Python benutzen müssen :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:

Ja, es muss noch optimiert werden... Nun, ich werde es ausprobieren.

Ich habe einen Sharps-Wrapper gefunden, um DLL-Schriften zu importieren... ich habe nur nicht bemerkt, dass es keine Standard-Kreuzvalidierung gibt, sie scheint separat zu kommen

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

IMHO muss man zuerst in Python arbeiten, wo es mehr oder weniger gut etabliert ist, sonst gibt es eine Menge Unsicherheit

Grund der Beschwerde: