Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 2236

 

Endgültige Version der Funktionen von mql5 Expert Advisor mit Python-Programm.

Es gibt 2 Funktionen im Advisor, eine aktualisiert die Zeit in der Datei und die zweite liest das aktuelle Handelssignal in der Datei, die im Python-Programm gebildet wird.

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);
  }

Im Python-Programm wird im "not_actual"-Status das Auslesen der aktuellen Zeit, die Berechnung des aktuellen Signals und dessen Aufzeichnung in der Datei durchgeführt.

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)

Dieser Kleber ist nicht sehr schnell, aber er funktioniert unabhängig. Es funktioniert im Strategy Tester im Demomodus, ich habe es nicht im echten Modus ausprobiert. Wenn es irgendwelche Fragen oder Ideen gibt, wie es verbessert werden kann, schreiben Sie, sonst wird das Thema abgewürgt...

 
welimorn:

Endgültige Version der Funktionen von mql5 Expert Advisor mit Python-Programm.

Es gibt 2 Funktionen im Advisor, eine aktualisiert die Zeit in der Datei und die zweite liest das aktuelle Handelssignal in der Datei, die im Python-Programm gebildet wird.

Im Python-Programm wird im "not_actual"-Status das Lesen der aktuellen Zeit, die Berechnung des aktuellen Signals und dessen Aufzeichnung in der Datei durchgeführt.

Dieser Kleber ist nicht sehr schnell, aber er funktioniert unabhängig. Es funktioniert im Strategy Tester im Demomodus, ich habe es nicht im echten Modus ausprobiert. Wenn es, Fragen oder Ideen, wie es möglich ist, zu verbessern, zu schreiben, und das Thema als festgefahren ...

Als ich zu komplizierteren Rekursionsmodellen überging, wurde ich von der Geschwindigkeit des Laptops ausgebremst. Ich kann anscheinend nichts anderes Vernünftiges recherchieren.

Ich habe einen neuen mit einem guten Videoadapter bekommen, den ich für das neue Jahr brauche.

 
Maxim Dmitrievsky:

Als ich zu komplexeren Rekursionsmodellen wechselte, wurde ich von der Geschwindigkeit meines Laptops eingeholt. Ich kann anscheinend nichts anderes Vernünftiges recherchieren.

habe einen neuen mit einem guten Videoadapter bekommen) muss mir selbst ein Geschenk für das neue Jahr besorgen

Warum der Laptop? Die Aufgaben sind schwer.

 
Valeriy Yastremskiy:

Warum der Laptop? Die Aufgaben sind schwer.

Denn man kann sich nicht abends auf dem Sofa einen Schreibtisch auf den Bauch legen.

es ist nicht so schwer, aber ein Ultrabook mit 2 mobilen Kernen ist nicht so toll.

Sie brauchen nicht einmal eine Grafikkarte, nur eine gute CPU

 
Maxim Dmitrievsky:

weil man sich abends auf dem Sofa keinen Schreibtisch auf den Bauch legen kann.

es ist nicht so schwer, aber ein Ultrabook mit 2 mobilen Kernen ist nicht so toll.

Sie brauchen nicht einmal eine Grafikkarte, sondern nur eine gute CPU

auf dem Tablet, das Bild von einem normalen Computer übersetzen, Mausfunk von einem Computer + Tastatur

 
Maxim Dmitrievsky:

weil man sich abends auf dem Sofa keinen Schreibtisch auf den Bauch legen kann.

es ist nicht so schwer, aber ein Ultrabook mit 2 mobilen Kernen ist nicht so toll.

Sie brauchen nicht einmal eine Grafikkarte, sondern nur eine gute CPU

Brunnenbauch und Aufgabe schwer)))) Ein Bauernhof würde für diese Aufgaben auch nicht schaden))) Ein fünf i9 mit 32gb RAM und einem leichten ssdc)))))

 

Was nützen diese Fähigkeiten, wenn man zur Hölle mit der Hölle mit der Hölle mit der Hölle mit der Hölle mit der Hölle mit dem Ziel trainiert...

das Ergebnis liegt auf der Hand, auch wenn es sich um 100 i9s handelt.

Aleksey Vyazmikin:

Derselbe Gradient wird bei Boosts verwendet. Es handelt sich lediglich um Informationen zur Erweiterung des Wissens und der für MO geeigneten Methoden.

Sie haben es vielleicht schon vergessen, aber ich habe so etwas noch nie gesehen.

 
mytarmailS:

Ok, und? Hast du was gemacht? Oder nur das Video weggeworfen und vergessen?

Nein, das habe ich nicht, ich kann ein solches Problem nicht lösen - es ist ein komplizierter Algorithmus und ich muss mein eigenes Boosting schreiben.

 
Aleksey Vyazmikin:

Nein, ich kann ein solches Problem nicht lösen - es ist ein komplizierter Algorithmus, und ich muss mein eigenes Boosting schreiben.

es ist schon lange geschrieben worden, man kann es in 5 Zeilen schreiben....

Ohne mql können Sie es loswerden, denn es kann nur Gewerke öffnen/schließen.

 
Maxim Dmitrievsky:

Als ich zu komplexeren Rekursionsmodellen wechselte, wurde ich von der Geschwindigkeit meines Laptops eingeholt. Ich kann anscheinend nichts anderes Vernünftiges recherchieren.

Habe mir ein neues mit einem guten Videospiel ausgesucht) muss mir eins für Silvester besorgen

Ich habe das gleiche Problem. Ich muss alle grafischen Interpretationen von Kotier in 50x50-Pixel-Bildern speichern). Ein kleineres Bild macht keinen Sinn, die Genauigkeit nimmt zu sehr ab. Ein größeres Bild erhöht die Breite der Faltungsschicht und die Netztiefe im Allgemeinen, was die Trainingszeit drastisch erhöht. Ich spare auch auf eine neue Maschine... Gleichzeitig versuche ich, das Lernen auf der GPU einzuschränken.

Grund der Beschwerde: