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

 
Alexandr Nikolaev:
Es stellt sich also heraus, dass OrderSelect nach Ticket aus geschlossenen und gelöschten Aufträgen nur in der in das Terminal geladenen Historie sucht? Das Handbuch enthält hierzu keine Informationen.

ja

Tatsächlich hat der EA nur Zugriff auf die Daten, die Sie im Terminal finden können

Dies gilt auch für die Chart-Historie. Wenn Sie diese einschränken, kann der EA auch nicht auf Chart-Balken zugreifen, die Sie im Terminal nicht sehen können.


Aleksey Mavrin:

In der Beschreibung von OrdersHistoryTotal heißt es

Bei der Auswahl einer Bestellung per Ticket:

Der Parameter pool wird ignoriert

https://docs.mql4.com/ru/trading/orderselect
 
Kann mir jemand sagen, wie ich den Handle der letzten Datei im Ordner bekomme, ohne ihren Namen zu kennen? Das heißt, wenn ich das Skript ausführe, muss ich auf die zuletzt erstellte Datei verweisen, und ich kann nicht herausfinden, was ich in die Schleife einfügen soll. MQL4
 
hoka777:
Kann mir jemand sagen, wie ich den Handle der neuesten Datei im Ordner erhalten kann, ohne ihren Namen zu kennen? Das heißt, wenn ich das Skript ausführe, muss ich auf die zuletzt erstellte Datei verweisen, und ich kann nicht herausfinden, was ich in die Schleife einfügen soll. MQL4

FileFindFirst, FileFindNext, FileGetInteger

 

Was bedeutet dieser Eintrag?

int tf=0x0001|0x0002|0x0004|0x0008|0x0010|0x0020|0x0040;
 
Seric29:

Was bedeutet dieser Eintrag?

Diesem gleichgestellt:

int tf=1|2|4|8|16|32|64;

Irgendjemand verwendet irgendwo Fahnen für irgendetwas. Dieser Eintrag besagt, dass in der tf-Variablen 7 Flaggen gespeichert sind, und dass sie alle erhöht sind.

 

Auftragsverfolgung.

Hallo zusammen, meine Herren des Forums.

Er war mit der Notwendigkeit konfrontiert, Bestellungen für den Kopierer zu verfolgen und war von der Komplexität des Problems überrascht.

Aufgabe.

Verfolgung der Eröffnung, Schließung und Änderung von Markt- und schwebenden Aufträgen mit der geringstmöglichen Verzögerung und Belastung des Systems.

Mögliche Lösungen.

1. Die Überwachung der gesamten Auftragsliste bei jedem Tick ist noch nicht sehr attraktiv.

2. MQL5 hat gute OnTrade() und OnTradeTransaction() Funktionen, aber ich habe keine Analoga in MQL4 gefunden.

3. Ich denke, es wäre interessant, die Last-Order-Linien und ihre TP undSL auf dem Chart mit OnChartEvent zu verfolgen, aber diese Objekte sind nicht sichtbar und werden nicht von der Funktion behandelt. Vielleicht gibt es eine Möglichkeit, sie zu "zeigen"?

4. jetzt denke ich über die Möglichkeit nach, Informationen aus dem allgemeinen Protokoll zu erhalten. Auch dort müssen Sie überwachen, aber weniger.

Ich habe noch keine zufriedenstellende Lösung gefunden, vielleicht hat jemand schon etwas herausgefunden?

 
Artyom Trishkin:

Diesem gleichgestellt:

Irgendwo werden Flaggen für irgendetwas verwendet. Dieser Eintrag besagt, dass in der Variablen tf 7 Flags gespeichert sind, und dass sie alle erhöht sind.

int tf=1|2|4|8|16|32|64;

Und warum sind sie durch einen vertikalen Stock geschrieben, wie man diesen benutzt? Kann auf jeden Teil dieser Kennzeichnung zugegriffen werden? Hier ist ein Code wie dieser.

    if(_Period==1440){diff=86399; tf=0x0001|0x0002|0x0004|0x0008|0x0010|0x0020|0x0040;}// выбор старшего ТФ, с него скрипт рисует на младших ТФ
    if(_Period==240) {diff=14340; tf=0x0001|0x0002|0x0004|0x0008|0x0010|0x0020;}
    if(_Period==60)  {diff=3540;  tf=0x0001|0x0002|0x0004|0x0008|0x0010;}
    if(_Period==30)  {diff=1740;  tf=0x0001|0x0002|0x0004|0x0008;}
    if(_Period==15)  {diff=840;   tf=0x0001|0x0002|0x0004;}
    if(_Period==5)   {diff=240;   tf=0x0001|0x0002;}  

    cl_timeM1=op_timeM1 + diff ;                    // координата даты и времени бара М1 по цене CLOSE старшего ТФ
    cl_NumBarM1=iBarShift(NULL,PERIOD_M1,cl_timeM1);// индекс бара М1
    cl_priceM1=iClose(NULL,PERIOD_M1,cl_NumBarM1);  // координата цены CLOSE бара М1
      
//--- трендовые линии -----------------------------------------------+ 
   for(i=0;i<1000000;i++){name1="Point_"+i; if(ObjectFind(name1)<0) break;}     // позволяет рисовать множество объектов с одинаковым именем, добавляя к имени порядковый номер
  
   ObjectCreate(0,name1,OBJ_TREND,0,op_timeM1,op_priceM1,cl_timeM1,cl_priceM1); // создать объект трендовая линия с координатами цены и времени  
   ObjectSet(name1,OBJPROP_COLOR,clrWhite);                                     // задать цвет объекта
   ObjectSet(name1,OBJPROP_STYLE,STYLE_DASH);                                   // задать стиль объекта (пунктир, линия...)
   ObjectSet(name1,OBJPROP_RAY,false);
   Строчка ниже будет отрисовываться нужное количество раз или что?
   ObjectSet(name1,OBJPROP_TIMEFRAMES,tf);    
 
Seric29:

Und warum werden sie durch einen vertikalen Stock geschrieben, wie man ihn benutzt?

Solange Sie es "vertikaler Stock" nennen, können Sie diesen Code nicht lesen.

Lesen Sie die Hilfehttps://www.mql5.com/ru/docs/basis/operations/bit

 
Igor Makanu:

Solange Sie es "vertikaler Stock" nennen, können Sie diesen Code nicht lesen.

Lesen Sie die Hilfehttps://www.mql5.com/ru/docs/basis/operations/bit

Ich habe ihn gelesen (ich weiß nicht, wie oft) und verstehe ihn schlecht, weil es keine Beispiele für seine Verwendung gibt und nicht klar ist, wofür er gedacht ist. Es gibt ein Beispiel

int a=305;
int b=a;      
int shift=37; 
shift++; 
a=a>>shift;   // 38 в двоичном представлении будет выглядеть как '100110', младшие 5 бит '00110' представляют число 6 
b=b>>6;

Gibt es eine Möglichkeit, diese Zeile zu

if(_Period==1440){diff=86399; tf=0x0001|0x0002|0x0004|0x0008|0x0010|0x0020|0x0040;}

Kann sie über den Zähler kürzer geschrieben werden?

 
Seric29:

Ich habe es gelesen (ich weiß nicht, wie oft) und verstehe es schlecht, weil es keine Beispiele für die Verwendung gibt und nicht klar ist, wofür es gedacht ist. Es gibt ein Beispiel.

Sie haben das falsche Beispiel gelesen

Bitweise ODER-Verknüpfung

Bitweises ODER von binären Darstellungen von x und y. Der Wert des Ausdrucks enthält 1 an allen Stellen, an denen x oder y nicht 0 enthält, und 0 an allen anderen Stellen.

b = x | y;

Beispiel:

 char a='a',b='b';
//--- операция ИЛИ
   char c=a|b;
   Print("a = ",a,"  b = ",b);
   Print("a | b = ",c);
// Результат будет такой:
// a = 97   b = 98
// a | b = 99
Grund der Beschwerde: