17 março 2023
17 março 2023
WebTerminal
MQL5
MQL5: adicionados os sinalizadores COPY_TICKS_VERTICAL e COPY_RATES_VERTICAL aos métodos CopyTicks, CopyTicksRange e CopyRates, respectivamente.
Por
padrão, os ticks e as séries são copiados para a matriz ao longo do
eixo horizontal, ou seja, os dados são adicionados à esquerda no final
da linha. Nas tarefas de execução de um modelo ONNX treinado, tal matriz deve ser transposta para fornecer dados 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);
Agora, ao chamar o método, basta especificar um sinalizador adicional COPY_RATES_VERTICAL (COPY_TICKS_VERTICAL para ticks) para evitar uma operação de transformação de dados desnecessária:
//+------------------------------------------------------------------+ //| 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