Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 3243

 
fxsaber #:

A través de su variante corporal de esta función.


Cada garrapata viene a la entrada - la salida es ONNX-decisión sobre la señal de comercio.

La variante del cuerpo de dicha función se muestra arriba. En el caso de ONNX, su propio model.onnx está conectado.


El modelo EA permanece inalterado.

Es decir, el cuerpo de esta función debe implementar las funciones especificadas en la Ayuda MQL5 en esta página - https://www.mql5.com/ru/docs/onnx?

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

es decir, el cuerpo de esta función debe implementar las funciones especificadas en la Ayuda MQL5 en esta página - https://www.mql5.com/ru/docs/onnx?

Excepto las tres primeras, que se encargan de crear y eliminar la sesión ONNX.
 
Ya veo, gracias por la aclaración. Intentaré hacer algo con el Ministerio de Defensa.
 
blef #:

es decir, el cuerpo de esta función debe implementar las funciones especificadas en la Ayuda MQL5 en esta página - https://www.mql5.com/ru/docs/onnx?

Es asi.

// Торговый сигнал.
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 #:

Más o menos.


En general, está bien.
Pero, ¿por qué el valor devuelto por la función es doble?
 

Por alguna razón sigue hablando de redes neuronales.

Pero hay un convertidor que aparece aquí

ONNXMLTools de Microsoft permite convertir modelos al formato ONNX.

que es capaz de convertir los siguientes modelos

Conversión a formato ONNX (ONNXMLTools)

ONNXMLTools permite convertir modelos de varios toolkits de aprendizaje automático al formatoONNX.

Las instrucciones de instalación y uso están disponibles en elrepositorio ONNXMLToolsen GitHub.

Soporte

Actualmente se soportan los siguientes toolkits:

  • Keras (shell convertidor keras2onnx);
  • Tensorflow (shell conversortf2onnx);
  • scikit-learn (skl2onnx converter shell);
  • Apple Core ML;
  • Spark ML (modo experimental);
  • LightGBM
  • libscm;
  • XGBoost;
  • H2O
  • CatBoost

En esta lista hay muchas más redes NO neuronales que redes neuronales

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

En general, está bien.
pero ¿por qué el valor devuelto por la función es doble?

Porque la plantilla final en sí puede ser más difícil de procesar las señales de trading recibidas que la original.

Se suponía que iba a discutir la plantilla. Vamos a pasar.

 

En ONNX, los datos de entrada son vectores y matrices.

Para la predicción a partir de un modelo ya preparado, puede ser posible arreglárselas con estas características (una matriz tiene un tipo de datos, lo que limita las opciones del predictor), pero entrenar un modelo µl es imposible: cualquier modelo, incluso primitivo, tiene un número mucho mayor de parámetros de entrada diversos.

Por ejemplo, es imposible introducir RF en una matriz:

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))),

pesos=NULL,

replace=TRUE,

classwt=NULL,

corte,

estratos,

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

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

maxnodos = NULL,

importance=FALSE,

localImp=FALSE,

nPerm=1,

proximidad,

oob.prox=proximidad,

norm.votes=TRUE,

do.trace=FALSE,

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

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

Por lo tanto, la formación sólo en python, pruebas y otras alegrías, y luego la conversión para cargar en µl y comprobar en la EA por el probador. No queda claro cómo y dónde preparar los predictores para probar en µl, si escribir código en µl, o recurrir a python y de él obtener los predictores para prediction...., y aun así que fueran los mismos sobre los que se entrenó el modelo.

 

¿Por qué no se admiten las cadenas????

https://www.mql5.com/ru/docs/onnx/onnx_types_autoconversion

Неподдерживаемые типы:

ONNX_DATA_TYPE_BFLOAT16
ONNX_DATA_TYPE_STRING

No hagas preguntas como "¿por qué necesitas cadenas?

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

¿Por qué no se apoyan las cuerdas? ????

https://www.mql5.com/ru/docs/onnx/onnx_types_autoconversion

No hagas preguntas como: "¿Por qué necesitas cuerdas?".

Por eso queremos lanzar el campeonato para llevarlo todo al uso masivo.

Por supuesto, ampliaremos la funcionalidad.