17 marzo 2023
17 marzo 2023
Web Terminal
MQL5
MQL5: Añadidas las banderas COPY_TICKS_VERTICAL y COPY_RATES_VERTICAL para los métodos CopyTicks, CopyTicksRange y CopyRates, respectivamente.
Por
defecto, el copiado de ticks y series en la matriz se realiza a lo
largo del eje horizontal, es decir, los datos se añadirán a la izquierda
al final de la fila. En las tareas de inicio de un modelo ONNX entrenado, dicha matriz deberá transponerse para suministrar los datos de entrada:
const long ExtOutputShape[] = {1,1}; // model output shape const long ExtInputShape [] = {1,10,4}; // model input form #resource "Python/model.onnx" as uchar ExtModel[] // model as resource //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ int OnStart(void) { matrix rates; //--- get 10 bars if(!rates.CopyRates("EURUSD",PERIOD_H1,COPY_RATES_OHLC,2,10)) return(-1); //--- input a set of OHLC vectors matrix x_norm=rates.Transpose(); vector m=x_norm.Mean(0); vector s=x_norm.Std(0); matrix mm(10,4); matrix ms(10,4);
Ahora, bastará con indicar la bandera adicional COPY_RATES_VERTICAL (COPY_TICKS_VERTICAL para los ticks) al llamar al método para evitar operaciones innecesarias de transformación de datos:
//+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ int OnStart(void) { matrix rates; //--- get 10 bars if(!rates.CopyRates("EURUSD",PERIOD_H1,COPY_RATES_OHLC|COPY_RATES_VERTICAL,2,10)) return(-1); //--- input a set of OHLC vectors
MetaEditor
Terminal