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

 

Versione finale delle funzioni di mql5 Expert Advisor con programma python.

Ci sono 2 funzioni nel consulente, una aggiorna il tempo nel file e la seconda legge il segnale di trading attuale nel file, che è formato nel programma python.

void OnTick()
  {
   if(!isNewBar())
      return;
   file_refresh_time();
   sig =StringToDouble(file_read_signal());
}

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string  file_refresh_time()
  {
   string time  = TimeToString(TimeCurrent());
   bool read =false;
   string file_buff[];
   ArrayResize(file_buff,1);
   file_buff[0] = time;
   ArrayResize(file_buff,2);
   file_buff[1] = "not_actual";
   ArrayResize(file_buff,3);
   file_buff[2] = DoubleToString(sig);

   while(1)
     {
      int h=FileOpen("test.txt",FILE_WRITE|FILE_ANSI|FILE_TXT|FILE_COMMON);
      if(h==INVALID_HANDLE)
        {
         continue;
        }
      if(h!=INVALID_HANDLE)
        {
         for(int i=0; i<ArraySize(file_buff); i++)
            FileWrite(h,file_buff[i]);

         FileClose(h);

         break;
        }

     }
   return("0");
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string  file_read_signal()
  {
   string sg="0.5";
   bool read =false;
   while(1)
     {
      if(read==false)
        {
         string time  = TimeToString(TimeCurrent());
         int h=FileOpen("test.txt",FILE_READ|FILE_ANSI|FILE_TXT|FILE_COMMON);
         if(h==INVALID_HANDLE)
           {
            continue;
           }
         if(h!=INVALID_HANDLE)
           {
            int cnt=0;
            while(!FileIsEnding(h))
              {
               string str=FileReadString(h);
               StringTrimLeft(str);
               StringTrimRight(str);
               if(cnt == 1 && str == "actual")
                 {
                  read =true;
                 }

               if(read ==true && cnt == 2)
                 {
                  sg =str;
                 }
               cnt++;
              }
            FileClose(h);
            if(read ==true)
              {
               FileClose(h);
               break;
              }
           }

        }

     }
   return(sg);
  }

Nel programma python nello stato "not_actual" viene eseguita la lettura del tempo corrente, il calcolo del segnale effettivo e la sua registrazione nel file.

terminal_dir = "C:/Users/AdmNB0225/AppData/Roaming/MetaQuotes/Terminal/Common/Files/"
a=0
old_rez = 0
rez = []
while True:

    try:
        with open(terminal_dir+'test.txt', 'r') as file:
            rez = [row.strip() for row in file]
    except IOError:
        pass

    if rez != old_rez and len(rez)!=0:
        print(rez)
        if rez[1] == "not_actual":
            rez[1] = "actual"
            date = rez[0]
            date = datetime.strptime(date, '%Y.%m.%d %H:%M')
            rez[2] = get_signal(date)


            try:
                with open(terminal_dir + 'test.txt', 'w') as file:
                    file.writelines(str(i)+'\n' for i in rez)
            except IOError:
                pass

    old_rez = rez
    # time.sleep(2)

Questa colla non è molto veloce, ma funziona in modo indipendente. Funziona nello Strategy Tester, in modalità demo, non l'ho provato in modalità reale. Se ci sono domande o idee su come può essere migliorato, scrivete, altrimenti il tema è in stallo...

 
welimorn:

Versione finale delle funzioni di mql5 Expert Advisor con programma python.

Ci sono 2 funzioni nel consulente, una aggiorna il tempo nel file e la seconda legge il segnale di trading attuale nel file, che è formato nel programma python.

Nel programma python nello stato "not_actual" viene eseguita la lettura del tempo corrente, il calcolo del segnale effettivo e la sua registrazione nel file.

Questa colla non è molto veloce, ma funziona in modo indipendente. Funziona nello Strategy Tester, in modalità demo, non l'ho provato in modalità reale. Se ci sono, domande o idee come è possibile migliorare, scrivere, e che il tema come stallo ...

Sono rimasto impantanato dalla velocità del portatile quando sono passato a modelli più complicati di tipo ricorrenza. Sembra che non si riesca a ricercare nient'altro di sensato.

ha ottenuto uno nuovo con buon videoadattatore ) bisogno di prenderlo per il nuovo anno

 
Maxim Dmitrievsky:

Mi sono fatto prendere dalla velocità del mio portatile quando sono passato a modelli più complessi di tipo ricorrenza. Sembra che non si riesca a ricercare nient'altro di sensato.

ne ho preso uno nuovo con un buon adattatore video) devo farmi un regalo per l'anno nuovo

Perché il portatile? I compiti sono pesanti.

 
Valeriy Yastremskiy:

Perché il portatile? I compiti sono pesanti.

Perché non si può mettere una scrivania sullo stomaco la sera, sul divano.

non è così pesante, ma un ultrabook con 2 core mobili non è il massimo.

Non hanno nemmeno bisogno di una scheda grafica, solo di una buona CPU

 
Maxim Dmitrievsky:

perché non si può mettere una scrivania sullo stomaco la sera, sul divano.

non è così pesante, ma un ultrabook con 2 core mobili non è il massimo.

infatti, non hai nemmeno bisogno di una scheda video, solo una buona CPU

sulla tavoletta, tradurre l'immagine da un computer normale, radio del mouse da un computer + tastiera

 
Maxim Dmitrievsky:

perché non si può mettere una scrivania sullo stomaco la sera, sul divano.

non è così pesante, ma un ultrabook con 2 core mobili non è il massimo.

infatti non hai nemmeno bisogno di una scheda video, solo una buona CPU

Ben pancia e compito pesante)))) Anche una fattoria non sarebbe male per questi compiti))) Un cinque i9 con 32gb di RAM e un leggero ssdc)))))

 

A che cosa servono queste capacità se si allena l'inferno con l'inferno con l'inferno con l'inferno con l'inferno con l'inferno con l'obiettivo...

il risultato è ovvio, anche se si tratta di 100 i9.

Aleksey Vyazmikin:

Lo stesso gradiente è usato nei boost. Sono solo informazioni per ampliare le conoscenze e i metodi adatti al MO.

Forse ve ne siete dimenticati, ma non ho mai visto niente del genere prima d'ora.

 
mytarmailS:

Ok, e allora? Hai fatto qualcosa? O hai lanciato il video e l'hai dimenticato?

No, non posso risolvere un tale problema - è un algoritmo complicato e devo scrivere il mio boosting.

 
Aleksey Vyazmikin:

No, non posso risolvere un tale problema - è un algoritmo complicato e devo scrivere il mio boosting.

è stato scritto da molto tempo, si può fare in 5 righe....

Sbarazzarsi di esso senza mql, tutto ciò che può fare è aprire/chiudere le transazioni

 
Maxim Dmitrievsky:

Mi sono fatto prendere dalla velocità del portatile quando sono passato a modelli più complessi di tipo ricorrenza. Sembra che non si riesca a ricercare nient'altro di sensato.

Ne ho scelto uno nuovo con un buon videogioco ) devo prenderne uno per l'ultimo dell'anno

Ho lo stesso problema. Devo memorizzare tutte le interpretazioni grafiche del quoziente in 50x50 pixel)) fare un'immagine più piccola non ha senso, l'accuratezza scende drasticamente. Un'immagine più grande aumenterebbe la larghezza degli strati convoluzionali, e la profondità della rete in generale, il che aumenterebbe notevolmente il tempo di formazione. Anch'io sto risparmiando per una nuova macchina... Allo stesso tempo sto cercando di frenare l'apprendimento sulla GPU.