17 März 2023
17 März 2023
Web Terminal
MQL5
MQL5: Hinzugefügt wurden die Flags COPY_TICKS_VERTICAL und COPY_RATES_VERTICAL für die Methoden CopyTicks, CopyTicksRange und CopyRates.
Standardmäßig werden Ticks und Zeitreihendaten entsprechend einer horizontalen Achse in die Matrix kopiert, d. h. die Daten werden am rechten Ende der Zeilen hinzugefügt. Für das Training von ONNX-Modelllaufaufgaben muss eine solche Matrix transponiert werden, um die Eingabedaten einzugeben:
const long ExtOutputShape[] = {1,1}; // Ausgangsform des Modells
const long ExtInputShape [] = {1,10,4}; // Eingangsform des Modells
#resource "Python/model.onnx" as uchar ExtModel[]// das Modell als 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);
Durch die Angabe des zusätzlichen Flags COPY_RATES_VERTICAL (bzw. COPY_TICKS_VERTICAL für Ticks) beim Aufruf der Methode können Sie die zusätzliche Datentransposition vermeiden:
//+------------------------------------------------------------------+
//| 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