L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 3240

 
mytarmailS #:
Sono possibili anche modelli in legno
SanSanych Fomenko #:

Ho visto da qualche parte che è possibile inserire in ONNX tutto ciò che è disponibile nella bibbia di Scikit, e ci sono tutti i tipi di modelli e molti di essi.

Beh, non voglio discutere, non sono troppo esperto di ONNX .

 
Domanda per gli sviluppatori: i modelli ONNX in MT vengono eseguiti dal processore o dalla scheda video?
 

Un'altra questione importante è se il modello otterrà informazioni sull'ambiente di trading - quali posizioni sono aperte, cosa c'è nello storico....

 
Rorschach #:
Domanda agli sviluppatori: i modelli ONNX in MT vengono eseguiti sul processore o sulla scheda video?
Sulla CPU utilizzando le istruzioni AVX/AVX2/AVX512 in qualsiasi terminale o build tester. Si tratta di un sistema esecutivo che viene eseguito in modo piccolo e veloce.

ONNX funziona senza problemi anche su Linux e Mac. Non sono necessari sistemi di supporto aggiuntivi.

Le GPU sono fondamentali solo nella fase di formazione.
 
Aleksey Vyazmikin #:

Un'altra questione importante è se il modello riceverà informazioni sull'ambiente di trading - quali posizioni sono aperte, cosa c'è nella storia.....

Il sistema di test sarà composto da tre componenti:
1) il nostro modello di robot singolo
2) il vostro wrapper model.mq5 nel codice sorgente per fornire l'input/output dei dati al modello ONNX, l'interpretazione dei risultati e la generazione delle operazioni.
3) model.onnx - il vostro modello neurale
 
Sul nostro sito web sono disponibili numerose informazioni su ONNX.

Utilizzate il motore di ricerca.
 

Renat Fatkhullin #:

Le GPU sono fondamentali proprio nella fase di apprendimento.

ONNX potrebbe essere un'alternativa a OpenCL. Ma questa è solo un'idea per ora.

 
Renat Fatkhullin #:
1) il nostro modello di robot singolo

In discussione è il modello di robot per Tester.

// Торговый сигнал.
double SignalONNX( const MqlTick &Tick ) { return(0); }

#define  MT4ORDERS_AUTO_VALIDATION // Торговые приказы отправляются только в случае успешной проверки на корректность
#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

void OnTick()
{
  MqlTick Tick;
  
  if (SymbolInfoTick(_Symbol, Tick))
  {
    const double Signal = SignalONNX(Tick);        
    const int Type = (MathAbs(Signal) < 1) ? -1 : (Signal < 0);
    
    if (Type != -1)
    {
      int Count = 0;

      for (uint i = OrdersTotal(); (bool)i--;)
        if (OrderSelect(i, SELECT_BY_POS))
        {
          if (OrderType() == Type)
            Count++;
          else
            OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 0);
        }
        
      if (!Count)
        OrderSend(_Symbol, Type, 1, Type ? Tick.bid : Tick.ask, 0, 0, 0);
    }
  }
}

Il codice è conciso, quindi immediatamente leggibile. Ha tre stati: comprare, vendere, non fare nulla.

Non vedo il motivo di complicarlo, aggiungendo MM, ecc. Poi con il MO bisogna sforzarsi di più.


L'elemento di casualità viene eliminato se si richiede che la frequenza delle transazioni (una al giorno, per esempio) corrisponda ai valori precedenti. In generale, possiamo discutere qualcosa a livello di codice.

 
Renat Fatkhullin #:
Sul nostro sito web è disponibile un'enorme quantità di informazioni su ONNX.

Utilizzate il motore di ricerca.

Verrà aggiunto il supporto per le zipmap? Non tutti i modelli le hanno disabilitate durante la conversione.

convenienza per

ONNX: il parametro di uscita ha un tipo non supportato 'ONNX_TYPE_SEQUENCE'.

Ora, se si va lì, quasi tutti ci riusciranno, ma non avranno la voglia e la capacità di modificare i file ONNX.
 
Renat Fatkhullin #:
Il sistema di test sarà costituito da tre componenti:
1) il nostro modello di robot singolo
2) il vostro wrapper model.mq5 in codice sorgente per fornire dati in ingresso/uscita al modello ONNX, l'interpretazione dei risultati e la generazione di operazioni.
3) model.onnx - il vostro modello neurale

Grazie, questo è già meglio!

La classe di trading sarà standard o posso usare la mia, con un wrapper più conveniente?