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

 
fxsaber #:

Überprüfung des Musters auf einem Standard-MA, nur auf Ticks.

...

Ein funktionierendes Muster.

und immer noch unklar: wie kommt das onnx-Signal in dieses funktionierende Muster?

 
blef #:

und immer noch unklar: wie kommt das onnx-Signal in diese Arbeitsvorlage?

Durch Ihre Variante des Körpers dieser Funktion.

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

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

fxsaber, 2023.09.13 19:28

// Торговый сигнал.
double SignalONNX( const MqlTick &Tick ) { return(0); }

Jeder Tick kommt zum Input - der Output ist die ONNX-Entscheidung über das Handelssignal.

Eine Variante des Körpers einer solchen Funktion wurde oben gezeigt. Im Falle von ONNX ist ein eigenes model.onnx angeschlossen.


Die EA-Vorlage bleibt unverändert.

 
fxsaber #:

Durch seinen Körper Variante dieser Funktion.


Jeder Tick kommt an den Eingang - der Ausgang ist ONNX-Entscheidung über das Handelssignal.

Die Variante des Körpers einer solchen Funktion ist oben dargestellt. Im Falle von ONNX ist ein eigenes model.onnx angeschlossen.


Die EA-Vorlage bleibt unverändert.

d.h. der Körper dieser Funktion sollte die in der MQL5-Hilfe auf dieser Seite angegebenen Funktionen implementieren - https://www.mql5.com/ru/docs/onnx?

Документация по MQL5: ONNX модели
Документация по MQL5: ONNX модели
  • www.mql5.com
ONNX модели - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
blef #:

d.h. der Körper dieser Funktion sollte die Funktionen implementieren, die in der MQL5-Hilfe auf dieser Seite angegeben sind - https://www.mql5.com/ru/docs/onnx?

Mit Ausnahme der ersten drei, die für das Erstellen und Löschen der ONNX-Sitzung verantwortlich sind.
 
Verstehe, danke für die Klarstellung - ich werde versuchen, etwas für das Verteidigungsministerium zu tun.
 
blef #:

d.h. der Körper dieser Funktion sollte die Funktionen implementieren, die in der MQL5-Hilfe auf dieser Seite angegeben sind - https://www.mql5.com/ru/docs/onnx?

Es ist wie folgt.

// Торговый сигнал.
double SignalONNX( const MqlTick &Tick )
{
  struct ONNX
  {
  public:
    const long Handle;
    
    ONNX( const string FileName ) : Handle(::OnnxCreate(FileName, ONNX_DATA_TYPE_DOUBLE)) {}
    ~ONNX() { ::OnnxRelease(this.Handle); }
  } static const Model("model.onnx"); // Подключили модель с автоматическим отключением.
  
  OnnxRun(Model.Handle, ONNX_DATA_TYPE_DOUBLE, ...); // Прогоняем данные через модель, получаем результат.
  
  // .... Обрабатываем результат вычислений.
  
  return(0); // Возвращаем торговый сигнал.
}
 
fxsaber #:

Das ist ungefähr richtig.


Alles in allem ist das in Ordnung.
Aber warum ist der von der Funktion zurückgegebene Wert doppelt?
 

Aus irgendeinem Grund ist immer von neuronalen Netzen die Rede.

Aber es gibt einen Konverter, der hier aufgeführt ist

MitONNXMLTools von Microsoft können Sie Modelle in das ONNX-Format konvertieren.

Dieser Konverter kann die folgenden Modelle konvertieren

Konvertierung ins ONNX-Format (ONNXMLTools)

Mit ONNXMLTools können Sie Modelle aus verschiedenen Toolkits für maschinelles Lernen in dasONNX-Format konvertieren.

Installations- und Nutzungsanweisungen sind imONNXMLTools-Repository auf GitHub verfügbar.

Unterstützung

Die folgenden Toolkits werden derzeit unterstützt:

  • Keras(keras2onnx converter shell);
  • Tensorflow (tf2onnx Wandler-Shell );
  • scikit-learn(skl2onnx Wandler-Shell );
  • Apple Core ML;
  • Spark ML (experimenteller Modus);
  • LightGBM
  • libscm;
  • XGBoost;
  • H2O
  • CatBoost

Es gibt viel mehr NICHT neuronale Netze als neuronale Netze in dieser Liste

Документация по MQL5: ONNX модели
Документация по MQL5: ONNX модели
  • www.mql5.com
ONNX модели - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Andrey Dik #:

Alles in allem ist das in Ordnung.
aber warum ist der von der Funktion zurückgegebene Wert doppelt?

Weil die endgültige Vorlage selbst schwieriger sein kann, die empfangenen Handelssignale zu verarbeiten als die ursprüngliche Vorlage.

Es sollte die Vorlage diskutiert werden. Lassen wir das.

 

In ONNX sind die Eingabedaten Vektoren und Matrizen.

Für die Vorhersage anhand eines vorgefertigten Modells mag es möglich sein, mit diesen Merkmalen auszukommen (eine Matrix hat nur einen Datentyp, was die Möglichkeiten der Vorhersage einschränkt), aber das Training eines µl-Modells ist unmöglich: Jedes noch so primitive Modell hat eine viel größere Anzahl verschiedener Eingabeparameter.

Es ist zum Beispiel unmöglich, RF in eine Matrix einzutragen:

randomForest( x, y=NULL, xtest=NULL, ytest=NULL,

ntree=500,

mtry=if (! is.null( y) && ! is.factor(y)) max( floor( ncol( x)/3), 1) else floor( sqrt( ncol( x))),

gewichte=NULL,

replace=TRUE,

classwt=NULL,

cutoff,

schichten,

sampsize = if ( replace) nrow( x) else ceiling(.632*nrow( x)),

nodesize = if (! is.null( y) && ! is.factor( y)) 5 sonst 1,

maxnodes = NULL,

importance=FALSE,

localImp=FALSE,

nPerm=1,

Nähe,

oob.prox=proximity,

norm.votes=TRUE,

do.trace=FALSE,

keep.forest=! is.null( y) && is.null( xtest), c

orr.bias=FALSE, keep.inbag=FALSE, ...)

Also, Training nur in Python, Testen und andere Freuden, und dann Konvertierung zum Laden in µl und Überprüfung im EA durch den Tester. Es ist nicht klar, wie und wo man Prädiktoren für das Testen in µl vorbereitet, ob man Code in µl schreibt oder sich an python wendet und von dort Prädiktoren für prediction.... holt, und selbst dann, dass sie die gleichen sind wie die, auf denen das Modell trainiert wurde.