[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 431

 

In der Dokumentation heißt es, dass die Funktion iCustom verwendet werden sollte, um Indikatoren von Drittanbietern aufzurufen.

Der zweite Parameter in dieser Funktion ist der Zeitrahmen. Wenn ich diesen Parameter in einem Indikator habe und er in deniCustom Funktionsparametern angegeben wird, gibt es einen Platz nach dem Namensparameter, um die Liste der vom Indikator übergebenen Parameter einzugeben.

Also. Ich werde auf jeden Fall den Timeframe-Parameter des Indikators übergeben. Wenn wir denselben Parameter an 2 Stellen angeben, ist das nicht logisch. Was ist dann der richtige Weg?

 
hoz:

In der Dokumentation heißt es, dass die Funktion iCustom verwendet werden sollte, um Indikatoren von Drittanbietern aufzurufen.

Der zweite Parameter in dieser Funktion ist der Zeitrahmen. Wenn ich diesen Parameter in einem Indikator habe und er in deniCustom Funktionsparametern angegeben wird, gibt es einen Platz nach dem Namensparameter, um die Liste der vom Indikator übergebenen Parameter einzugeben.

Also. Ich werde auf jeden Fall den Timeframe-Parameter des Indikators übergeben. Wenn wir denselben Parameter an 2 Stellen angeben, ist das nicht logisch. Was ist dann der richtige Weg?


Alles ist in Ordnung. Alles muss spezifiziert werden. Der zweite Parameter ist die TF, an die der Indikator physisch angehängt ist, die benutzerdefinierte TF ist der Ort, an dem der Indikator Daten für die Berechnung erhält. Natürlich können Sie den zweiten Parameter aus dem Code des Indikators entfernen, wenn dieser eine gewisse Logik enthält.
 
Zhunko:
Alles ist in Ordnung. Alles muss angegeben werden. Der zweite Parameter ist die TF, an die der Indikator physisch angehängt ist, die benutzerdefinierte TF ist der Ort, an dem der Indikator Daten für die Berechnung erhält. Natürlich können Sie den zweiten Parameter aus dem Indikatorcode entfernen, wenn dies logisch ist.

Jetzt verstehe ich. Ich danke Ihnen.

Aber die gleichen Parameter, die im Indikator gesetzt werden sollten, sollten auch im EA deklariert werden. Es stellt sich heraus, dass alle Parameterwerte für die korrekte gemeinsame Arbeit des Indikators und des Expert Advisors in beiden Fällen gleich definiert werden sollten?

Wenn ich die Variablen in iCustom eingegeben habe und sie nicht im EA deklariert habe, dann wird das Journal bei der Kompilierung feststellen, dass die Variablen, die ich eingegeben habe, nicht deklariert sind.

 
Wer weiß, in welcher Code Base EA kann ich sehen, wie die OrderCloseBy() Funktion mit all den Torten kodiert ist. Ich habe mir das Closeby-Skript im Tutorial angeschaut, kann aber nicht herausfinden, wie man es zu einer Funktion macht, die man von EA aus aufrufen kann, etc. Vielleicht können Sie mir beibringen, was zu tun ist! Ich danke Ihnen!
 
borilunad:
Wer weiß, in welcher Code Base EA kann ich sehen, wie die OrderCloseBy() Funktion mit all den Torten kodiert ist. Ich habe mir das Closeby-Skript im Tutorial angeschaut, kann aber nicht herausfinden, wie man es zu einer Funktion macht, die man von EA aus aufrufen kann, etc. Vielleicht können Sie mir beibringen, was zu tun ist! Ich danke Ihnen!

Haben Sie es hier gesehen? https://docs.mql4.com/ru/trading/OrderCloseBy
 
drknn:

Haben Sie das gesehen? https://docs.mql4.com/ru/trading/OrderCloseBy

Natürlich habe ich das! Ich verstehe das Prinzip, aber es funktioniert nicht, und ich muss die Gelegenheit nutzen, um beim Spread zu sparen. Deshalb wollte ich Beispiele sehen, die funktionieren. Ich habe Code Base durchsucht, aber bisher ohne Erfolg. Niemand verwendet dieses gegenseitige Schließen in diesen EAs. Ich hoffe, ich treffe sie zusammen und nicht an den Schrauben. Gute Nacht! Morgen früh ist es vielleicht klüger!
 
Können Sie mir sagen, wie ich Trendlinien, Indikatoren usw. auf einem normalen Computer löschen kann? Auf dem Windows-Rechner habe ich es mit der rechten Maustaste gemacht, nachdem ich sie ausgewählt hatte, aber auf dem Imac weiß ich nicht, wie. Ich kann auch nicht herausfinden, wie man Gold zur allgemeinen Liste hinzufügt?
 
Wie löscht man Zeilen auf dem IMAC?
feeje:
Können Sie mir sagen, wie ich auf einem normalen Computer Trendlinien, Indikatoren usw. löschen kann? Auf dem Windows-Rechner habe ich es mit der rechten Maustaste gemacht, nachdem ich sie ausgewählt hatte, aber auf dem Imac weiß ich nicht, wie. Und ich kann auch nicht herausfinden, wie man Gold zur allgemeinen Liste hinzufügt?
 

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 Endbedingung 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

 
Können Sie mir sagen, wie ich einen Teil des Gewinns (z.B. 50% eines offenen Handels) schließen kann?
Grund der Beschwerde: