17 mars 2023
17 mars 2023
Terminal Web
MQL5
MQL5 : Ajout des flags COPY_TICKS_VERTICAL et COPY_RATES_VERTICAL pour les méthodes CopyTicks, CopyTicksRange et CopyRates.
Par défaut, les ticks et les séries sont copiées dans la matrice le long de l'axe horizontal, ce qui signifie que les données sont ajoutées à droite, à la fin de la ligne. Dans les tâches d'exécution du modèle ONNX entraîné , ce type de matrice doit être transposée afin d'alimenter les données d'entrée :
const long ExtOutputShape[] = {1,1}; // model's output shape
const long ExtInputShape [] = {1,10,4}; // model's input shape
#resource "Python/model.onnx" as uchar ExtModel[]// model as a 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);
En spécifiant le flag supplémentaire COPY_RATES_VERTICAL (COPY_TICKS_VERTICAL pour les ticks) lors de l'appel à la méthode, il n’est plus nécessaire de transposer les données :
//+------------------------------------------------------------------+
//| 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