[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 435

 

Liebe Kolleginnen und Kollegen, was ist der ausführlichste Ratschlag?

Ich habe einen schwebenden Auftrag X

Wie kann der Auftrag nach N Stunden ab dem Zeitpunkt der Erstellung des schwebenden Auftrags geschlossen werden?

Eine zusätzliche Bedingung: Der schwebende Auftrag kann ein Marktauftrag werden.

Bleibt der schwebende Auftrag schwebend, ist alles ganz einfach.

Interessant ist der Fall, in dem ein schwebender Auftrag zu einem Marktauftrag wird (d.h. in dem Moment, in dem der schwebende Auftrag zu einem Marktauftrag wird, ändert sich auch der Zeitpunkt der Erstellung).

Ich würde gerne Ideen von Fachleuten erhalten, um dieses Problem zu lösen, und besser noch, ich würde gerne einen Code für diese Situation erhalten

 
zorber:

Ich möchte auch dieses Problem zu lösen, aber die Sache ist, dass in der Tester, wenn eine schwebende Bestellung ausgelöst wird.... Die Auftragsart ändert sich nicht... und sie wird im Protokoll nicht als Marktauftrag angezeigt... und ich konnte anhand der Protokolldaten nicht feststellen, ob sie ausgelöst wurde oder nicht(((
 
kakin:

Fachleute, bitte um Rat. Wenn ich eine schwebende Stop-Order platziert habe, der Preis aber mit einem erweiterten Spread, der den Stoploss übersteigt, in die Order eintritt.... Was wird geschehen?

Die Bestellung wird durch die Ausbreitung gegessen werden... Oder tritt ein Fehler auf und der Auftrag wird nicht ausgelöst?

Das schlimmste Szenario für Sie und wird passieren
 

Guten Tag. LEUTE, BITTE ANTWORTEN AUF DIE FRAGE (3. Mal gepostet). Frage zu einem Dateiindex... In meinem MQL4-Buch, das Sie unter MQL4.community finden, gibt es im Abschnitt "Standardfunktionen" ein Beispiel für das Skript "Dateioperationen", das für das Lesen von Daten aus einer Datei und die Anzeige von grafischen Objekten in einem Symbolfenster gedacht ist:

//--------------------------------------------------------------------
// timetablenews.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------- 1 --
int start()                            // Спец. функция start
  {
//--------------------------------------------------------------- 2 --
   int Handle,                         // Файловый описатель
       Stl;                            // Стиль вертикальной линии
   string File_Name="News.csv",        // Имя файла
          Obj_Name,                    // Bмя объекта
          Instr,                       // Название валюты
          One,Two,                     // 1я и 2я чать названия инстр.
          Text,                        // Текст описания события
          Str_DtTm;                    // Дата и время события(строка)
   datetime Dat_DtTm;                  // Дата и время события(дата)
   color Col;                          // Цвет вертикальной линии
//--------------------------------------------------------------- 3 --
   Handle=FileOpen(File_Name,FILE_CSV|FILE_READ,";");// Открытие файла
   if(Handle<0)                        // Неудача при открытии файла
     {
      if(GetLastError()==4103)         // Если файла не существует,..
         Alert("Нет файла с именем ",File_Name);//.. извещаем трейдера 
      else                             // При любой другой ошибке..
         Alert("Ошибка при открытии файла ",File_Name);//..такое сообщ
      PlaySound("Bzrrr.wav");          // Звуковое сопровождение
      return;                          // Выход из start()      
     }
//--------------------------------------------------------------- 4 --
   while(FileIsEnding(Handle)==false)// До тех пор, пока файловый ..
     {                                // ..указатель не в конце файла
      //--------------------------------------------------------- 5 --
      Str_DtTm =FileReadString(Handle);// Дата и время события(дата)
      Text     =FileReadString(Handle);// Текст описания события
      if(FileIsEnding(Handle)==true)   // Файловый указатель в конце
         break;                        // Выход из чтения и рисования
      //--------------------------------------------------------- 6 --
      Dat_DtTm =StrToTime(Str_DtTm);   // Преобразование типа данных
      Instr    =StringSubstr(Text,0,3);// Извлекаем первые 3 символа
      One=StringSubstr(Symbol(),0,3);// Извлекаем первые 3 символа
      Two=StringSubstr(Symbol(),3,3);// Извлекаем вторые 3 символа
      Stl=STYLE_DOT;                   // Для всех - стиль пунктир
      Col=DarkOrange;                  // Для всех - цвет такой
      if(Instr==One || Instr==Two)     // А для событий по нашему ..
        {                             // .. финансовому инструменту..
         Stl=STYLE_SOLID;              // .. такой стиль..
         Col=Red;                      // .. и такой цвет верт. линии
        }
      //--------------------------------------------------------- 7 --
      Obj_Name="News_Line  "+Str_DtTm;     // Имя объекта
      ObjectCreate(Obj_Name,OBJ_VLINE,0,Dat_DtTm,0);//Создаем объект..
      ObjectSet(Obj_Name,OBJPROP_COLOR, Col);       // ..и его цвет,..
      ObjectSet(Obj_Name,OBJPROP_STYLE, Stl);       // ..стиль..
      ObjectSetText(Obj_Name,Text,10);              // ..и описание 
     }
//--------------------------------------------------------------- 8 --
   FileClose( Handle );                // Закрываем файл
   PlaySound("bulk.wav");              // Звуковое сопровождение
   WindowRedraw();                     // Перерисовываем объекты
   return;                             // Выход из start()
  }
//--------------------------------------------------------------- 9 --

Unten, bei der Analyse dieses Skripts im Buch über MQL4, wird der folgende Satz angegeben: "Wenn die angegebene Prüfung (die letzten 2 Zeilen in Block 5-6) entfernt wird, wird zur Laufzeit ein zusätzliches Objekt erstellt. Und erst danach wird die Abbruchbedingung der while-Schleife ausgelöst und die Kontrolle an Block 8-9 übergeben".

Verstehe ich das richtig? Ein Dateizeiger wird NICHT DURCH TEXT-Zeichen GEFÜLLT (zum Beispiel: text|, wobei | ein Dateizeiger ist), sondern ist ein Zeiger MIT AUSDRUCK, zum Beispiel: text, wobei k das "bis"-Zeichen ist, k-ter wird durch einen Dateizeiger hervorgehoben. Dies erklärt die Notwendigkeit von Saiten (siehe S. 164):

      if(FileIsEnding(Handle)==true)   // Файловый указатель в конце
         break;                        // Выход из чтения и рисования
      //--------------------------------------------------------- 6 --

In der Tat. Bei der vorletzten Iteration, nach der Erstellung des LAST-Objekts

2007.05.11 18:30;JPY

steht der Dateizeiger an der Position des letzten Objekts, d. h:

2007.05.11 18:30;JPY IndustrielleFertigung

(wobei o für das Zeichen "o" und k für den Dateiindex steht). Wenn dann die Kontrolle an den Kopf der while-Anweisung übergeben wird, gibt die Funktion FileIsEnding(handle) natürlich true zurück , weil der Dateizeiger NICHT am Ende der Datei, sondern am LETZTEN Zeichen dieser Datei steht. Wenn dann die ersten beiden Zeilen ausgeführt werden, bewegt sich der Dateizeiger auf einen leeren Platz, und wenn keine Zeilen vorhanden sind

      if(FileIsEnding(Handle)==true)   // Файловый указатель в конце
         break;                        // Выход из чтения и рисования
      //--------------------------------------------------------- 6 --

wird das Skript eine Grafik (d.h. eine Zeile) mit einer leeren Beschreibung und einer Zeitkoordinate, die 0 entspricht, erstellen. Dies ist mit dem Satz gemeint: "Wenn die angegebene Prüfung (die letzten beiden Zeilen in Block 5-6) entfernt wird, wird zur Laufzeit ein zusätzliches Objekt erstellt. "

Frage: Verstehe ich das richtig?

a) die Definition eines Dateizeigers;

b) die Bedeutung des Satzes "Wenn die angegebene Prüfung (die letzten beiden Zeilen in Block 5-6) gelöscht wird, wird bei der Programmausführungein zusätzliches Objekt erstellt.Und erst danach wird die Endbedingung der while-Schleife ausgelöst und die Kontrolle an Block 8-9 übergeben".

P.S. Um das Forum nicht zu überladen, danke ich Ihnen im Voraus für Ihre Antwort

 
Bitte sagen Sie mir, wann und warum der Expert Advisor manchmal Trades ohne SL und/oder TP eröffnet, obwohl diese in den Einstellungen vorgegeben sind? Sie wird geöffnet, aber nicht verändert.
 
yosuf:
Bitte sagen Sie mir, wann und warum der Expert Advisor manchmal Trades ohne SL und/oder TP eröffnet, obwohl diese in den Einstellungen vorgegeben sind? Sie wird geöffnet und nicht verändert.

Denn zwischen den "Einstellungen" und dem Befehl OrderSend() aus dem Programmcode befindet sich ein "Abstandhalter".
 
Wie kann ich die Rohdatei im Verlaufsordner öffnen?
 
sss2019:
Wie kann ich die Rohdatei im Verlaufsordner öffnen?

Regeln für die Forensuche.

Das wird schon seit langem gemacht, was willst du machen :)

 

Beschaffung einer Liste von Finanzinstrumenten

und Sie haben bereits in diesem Thread gepostet

 
Ilan1.6Dynamic EA funktioniert nicht. Ich habe ihn so eingestellt, dass er selbständig handelt. Aber es wird nicht gehandelt. Wer weiß, was zu tun ist ????