Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 169

 

Guten Tag. Ich kann keine Daten aus einer Datei lesen und sie sofort wieder zurückschreiben. Wenn ich ein Codefragment mit Schleifen und MathRand() auskommentiere, wird die Datei so, wie sie sein sollte. Wenn aber Zeilen auskommentiert werden (es herrscht bereits Chaos in der Datei), enthält die Datei beim nächsten Aktivieren/Deaktivieren des Expert Advisors Nullen. Die Lese-Schreib-Arrays sind double ROM1[128][128] und double ROM2[3][128]. Die Arrays werden an keiner anderen Stelle des Codes geändert, sondern nur gelesen. Hier ist ein Teil des Codes:

int init()                                     
   {
   Print ("Сработала ф-ия init"); // Сообщение
   Handle=FileOpen("Neuro",FILE_BIN|FILE_READ|FILE_WRITE);// Открытие файла на чтение и запись   
   FileSeek(Handle, 0, SEEK_SET); //указатель на начало файла
   FileReadArray(Handle, ROM1);
   FileSeek(Handle, 131073, SEEK_SET); //указатель на конец первого массива
   FileReadArray(Handle, ROM2);

/*
   for(i=0; i<128; i++) //заполнение памяти первого слоя кашей
      {
      for(k=0; k<128; k++)
         {
         ROM1[i][k] = (MathRand()-16383)/3200;
         }
      }
   for(i=0; i<3; i++) //заполнение памяти второго слоя кашей
      {
      for(k=0; k<128; k++)
         {
         ROM1[i][k] = (MathRand()-16383)/3200;
         }
      }
*/         
   return(0);                                       
   }   
//--------------------------------------------------------------------
int deinit()                                   
   {
   FileSeek(Handle, 0, SEEK_SET);
   FileWriteArray(Handle, ROM1);
   FileSeek(Handle, 131073, SEEK_SET);
   FileWriteArray(Handle, ROM2);
   FileClose(Handle);
   return(0);                                     
   }

Bitte helfen Sie mir, dies zu verstehen. Ich danke Ihnen.
 
Hallo, könnten Sie mir bitte sagen, wie man in den EA-Code schreiben
Bedingung für die Suche nach einem Signal

Zum Beispiel:
Es gibt einen Auftrag auf dem Markt mit magischen 565 offen um 13:00
In der EA gibt es eine Bedingung, die zum Öffnen des Auftrags
auf dem Markt eine Order mit einer magischen Zahl von 565, wie kann ich in meinem Expert Advisor die Suche nach dem Signal um eins verschieben
Die Suche nach einem Signal soll um 14:00 Uhr beginnen.

Ich sehe derzeit eine Situation, in der um 13:00 Uhr ein Auftrag mit einer magischen Zahl von 565 eröffnet wird
und die Eule öffnet ihre Bestellung um 13:00:02 Uhr.

zwei identische Aufträge.


Ich danke Ihnen.

 
var58:
Hallo, könnten Sie mir bitte sagen, wie man in den EA-Code schreiben
Bedingung für die Suche nach einem Signal

Zum Beispiel:
Es gibt einen Auftrag auf dem Markt mit magischen 565 offen um 13:00
In der EA gibt es eine Bedingung, die zum Öffnen des Auftrags
auf dem Markt eine Order mit einer magischen Zahl von 565, wie kann ich in meinem Expert Advisor die Suche nach dem Signal um eins verschieben
Die Suche nach einem Signal soll um 14:00 Uhr beginnen.

Ich sehe derzeit eine Situation, in der um 13:00 Uhr ein Auftrag mit Magic 565 eröffnet wird
und die Eule öffnet ihre Bestellung um 13:00:02 Uhr.

zwei identische Aufträge.


Ich danke Ihnen.

Sie können nach einem Signal suchen, wann immer Sie wollen, aber Sie müssen eine Position nach Zeit eröffnen.

Beobachten Sie den Zeitpunkt der Eröffnung einer Position mit magic 565 und beobachten Sie die aktuelle Zeit. Wenn die aktuelle Zeit um die angegebene Anzahl von Minuten länger ist als der Zeitpunkt der Positionseröffnung mit magic 565, dann können Sie eine Position eröffnen.

 
Artyom Trishkin:

Sie können nach einem Signal suchen, wann immer Sie wollen, aber Sie müssen zulassen, dass eine Position nach Zeit geöffnet wird.

Sehen Sie den Zeitpunkt der Eröffnung einer Position mit magic 565 und sehen Sie die aktuelle Zeit. Wenn die aktuelle Zeit um eine bestimmte Anzahl von Minuten länger ist als die Öffnungszeit des Magik 565, kann die Position geöffnet werden.


Ich danke Ihnen vielmals. Wie sieht das im Code aus?
 
Guten Tag. Ich kann keine Daten aus einer Datei lesen und sie sofort wieder zurückschreiben. Wenn ich ein Codefragment mit Schleifen und MathRand() auskommentiere, wird die Datei so, wie sie sein sollte. Wenn aber Zeilen auskommentiert werden (es herrscht bereits Chaos in der Datei), enthält die Datei beim nächsten Aktivieren/Deaktivieren des Expert Advisors Nullen. Die Lese-Schreib-Arrays sind double ROM1[128][128] und double ROM2[3][128]. Die Arrays werden an keiner anderen Stelle des Codes geändert, sondern nur gelesen. Hier ist ein Stück Code:

Ein bisschen davon. Die Funktion liest ein zweidimensionales Array double auf keinen Fall ein, schreibt es aber trotzdem auf.

Ich habe eine Schleife für das Lesen von Element zu Element erstellt. Vielleicht ist es ja für jemanden von Nutzen.

{
FileSeek(Handle, n,  SEEK_SET); //изменение позиции файлового курсора        
Neuron[k][i].rom[l] = FileReadDouble(Handle, DOUBLE_VALUE); //загрузка из файла
n=n+8;
}
 
var58:

Ich danke Ihnen vielmals. Wie sieht das im Code aus?

Es geht nicht darum, kostenlosen Code zu schreiben, sondern denjenigen zu helfen, die versuchen, ihn selbst zu schreiben, sich dabei aber schwer tun.

Zeigen Sie uns, was Sie in Ihrem Code nicht können - wir werden Ihnen helfen.

 
Tamul:

Ich habe es ein wenig ausgearbeitet. Die zweidimensionale Array-Double-Funktion will nicht lesen, obwohl sie gut schreibt.

Ich habe eine Schleife für Schleife gelesen. Vielleicht braucht sie jemand.

{
FileSeek(Handle, n,  SEEK_SET); //изменение позиции файлового курсора        
Neuron[k][i].rom[l] = FileReadDouble(Handle, DOUBLE_VALUE); //загрузка из файла
n=n+8;
}

Warum sollte ich den Menschen solche Krücken anbieten, nur weil ich selbst die Aufgabe nicht bewältigt habe?

Um ein zweidimensionales Array aus einer Datei zu lesen, sollte es ein dafür vorbereitetes zweidimensionales Array sein.

Wenn ich mich richtig an das Codebeispiel erinnere, habe ich nicht gesehen, dass die Datei nach dem Schreiben geschlossen wird. Es wird eine leere Datei erstellt, in die Daten geschrieben werden, aber diese gefüllte Datei wird im Hauptspeicher abgelegt und die Daten können nur von der Festplatte gelesen werden. Infolgedessen sieht die Datei so aus, als wäre sie geschrieben worden, aber physisch ist sie nicht auf der Festplatte... Um die Daten auf der Festplatte zu speichern, muss man entweder die Datei schließen oder sie zwangsweise auf der Festplatte speichern.

 
Artyom Trishkin:

Und das ist kein kostenloses Schreiben von Code, sondern eine Hilfe für diejenigen, die versuchen, sie selbst zu schreiben, es aber nicht hinbekommen.

Zeigen Sie uns, was Sie in Ihrem Code nicht können, und wir werden Ihnen helfen.


danke
 

Hallo! Bitte schreiben Sie ein einfaches (sehr einfaches) Beispiel in mql4. Ich bin noch ein absoluter Anfänger.

1) Eröffnen Sie einen schwebenden Auftrag, wenn der Kurs einen beliebigen Wert erreicht (d.h. wenn der Kurs 0,7777 beträgt, eröffnen Sie einen schwebenden Auftrag)

2) Schließen Sie einen Marktauftrag, wenn er einen beliebigen Wert erreicht hat (d.h. wenn der Kurs 0,6666 beträgt, schließen Sie den Auftrag).

Ich kann nicht einmal einen Auftrag mit einer eindeutigen Auftragsnummer abschließen. Ich möchte versuchen, den aktuellen Status meines Handelsroboters zu ändern, aber ich verstehe nichts.

Ich habe versucht, ein Tutorial von dieser Website zu lesen, aber ohne Erfolg (vielleicht bin ich so dumm), und die elementaren Beispiele sind irgendwie nicht im Internet. Vielen Dank im Voraus

 
maxon777:

Hallo! Bitte schreiben Sie ein einfaches (sehr einfaches) Beispiel in mql4. Ich bin noch ein absoluter Anfänger.

1) Eröffnen Sie einen schwebenden Auftrag, wenn der Kurs einen beliebigen Wert erreicht (d.h. wenn der Kurs 0,7777 beträgt, eröffnen Sie einen schwebenden Auftrag)

2) Schließen Sie einen Marktauftrag, wenn er einen beliebigen Wert erreicht hat (d.h. wenn der Kurs 0,6666 beträgt, schließen Sie den Auftrag).

Ich kann nicht einmal einen Auftrag mit einer eindeutigen Auftragsnummer abschließen. Ich möchte versuchen, den aktuellen Status meines Handelsroboters zu ändern, aber ich verstehe nichts.

Ich habe versucht, ein Tutorial von dieser Website zu lesen, aber ohne Erfolg (vielleicht bin ich so dumm), und die elementaren Beispiele sind irgendwie nicht im Internet. Vielen Dank im Voraus


Wenn Sie Probleme mit schwebenden Aufträgen haben, suchen Sie diese in der CodeBase und sehen Sie nach, wie der Code geschrieben ist.
Grund der Beschwerde: