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

 
psyman:


Wie kann ich sicherstellen, dass die Daten hochgeladen werden?

Ich habe die Hilfe zum Thema "Organisieren des Datenzugriffs" gelesen, aber ich frage mich, ob es eine einfache Möglichkeit gibt, dies sicherzustellen.

https://www.mql5.com/ru/code/1251

Es gibt diesen Code in der mt5-Hilfe

Was meinen Sie mit "ein einfacher Weg"? - ...Ist es nur eine Möglichkeit zu überprüfen, ob die Daten von mind hochgeladen wurden? ))) - Entweder Sie schreiben alles von Grund auf selbst oder Sie verwenden die vorgefertigten Lösungen eines anderen Anbieters. Sowohl der erste als auch der zweite Fall erfordert Zeit - entweder um Ihren eigenen Code zu schreiben und zu entwickeln oder um sich mit der Lösung eines anderen Anbieters zu befassen, was einfacher ist - Ihre Wahl

 
Igor Makanu:

https://www.mql5.com/ru/code/1251

Dieser Code steht in der mt5-Hilfe

Was meinen Sie mit dem einfachen Weg? - durch die Kraft des Geistes? ))) - Entweder Sie schreiben alles von Grund auf selbst oder Sie verwenden die Lösung eines anderen Anbieters. In beiden Fällen kostet es Zeit, entweder Ihren eigenen Code zu schreiben und zu entwickeln oder sich mit der Lösung eines anderen Anbieters zu befassen - Sie haben die Wahl.

Danke für den Link, die Bibliothek ist ein einfacher Weg :-)

Es stimmt, ich habe Kommentare gelesen, die besagen, dass es in manchen Fällen einfriert.

Soweit ich verstanden habe, ist asynchrones Piping für eine Kopie eines Indikators nicht möglich. Soll ich warten, bis die gesamte Warteschlange für jedes Symbol nacheinander abgearbeitet wird?

 
psyman:

Danke für den Link, die Bibliothek ist der einfachste Weg :-)

Es stimmt, dass es in den Kommentaren heißt, dass es in einigen Fällen hakt.

Soweit ich verstehe, asynchrone Herunterladen für eine Kopie eines Indikators ist unmöglich, ich sollte warten, bis es nacheinander die gesamte Warteschlange für jedes Symbol abrufen?

Die Bibliothek friert nicht ein

Sie können den Verlauf nur in Expert Advisors herunterladen, in der Hilfe steht, dass er nicht in Indikatoren verwendet werden darf.

Indikatoren, wiederum Beispiele in KB oder in den Artikeln, Suche nach Multisymbol oder Multicurrency

 

Es gibt interessante Dinge in Mql4. Hier ist ein Beispiel. Angenommen, es gibt eine Funktion.

ArrayResize()

Sie hat den Typ int, kann aber als (void) prozedurale Funktion aufgerufen werden, ohne einen Wert zurückzugeben? Das ist interessant.

 

Hallo. Können Sie mir bitte sagen, wie ich das Problem beheben kann?

Auf der Demo öffnet der Expert Advisor nicht alle Orders, gibt Fehler 129 (falscher Preis), obwohl ich Ask/Bid in OrderSend angegeben habe, Slippage ist mit Reserve. Ich habe bemerkt, dass, wenn ich den Expert Advisor lösche, das Terminal für 10 Sekunden hängen bleibt und im Log anzeigt

Im Testgerät gibt es keine Fehler oder Schluckauf

Dateien:
 
Igor Makanu:

die Bibliothek nicht einfriert

Das Herunterladen der Historie ist nur in Expert Advisors möglich, die Hilfedatei sagt, dass sie nicht in Indikatoren verwendet werden soll.

Indikatoren, wiederum Beispiele in KB oder in Artikeln, Suche nach Multisymbol oder Multicurrency


Hier hat der Autor die Array-Initialisierung in eine separate Bibliothek ausgelagert, was soll das bringen?

Функции для инициализации массивов расположим в подключаемом файле InitArrays.mqh
 
psyman:


Der Autor hat die Array-Initialisierung in eine separate Bibliothek ausgelagert, was soll das?

Ich weiß nicht, der Artikel ist von 2013, vielleicht früher war es notwendig, wie der Autor des Artikels zu tun, das Beispiel aus KB (es ist auch in der Hilfe) funktioniert in EAs und Skripte ohne Probleme, ich benutze es selbst - ich habe keine Probleme bemerkt

Wenn ich einen Indikator schreiben muss, der Daten von einem anderen Zeitrahmen oder Symbol erhält, werde ich in den Beispielen des Autors fündig

 
Ich habe eine Frage. Ich erhielt 200 Balken in meinem Diagramm. iBars() gab 200 zurück (201 Balken, wenn ich 0 nicht berücksichtige), ich löschte 5 Balken aus dem Kursarchiv aufder rechten Seite und erhielt 195 (iBars() gab 195 Balken zurück) und das Diagramm wurde kürzer. Ich habe bemerkt, dass, wenn ich das tue, es die Anzahl der Takte einen nach dem anderen erhöht und nicht 5 auf einmal lädt, es ist sehr seltsam, wenn ich einen sehr großen Abschnitt überspringe, zählt es einen Takt nach dem anderen, also muss ich mit links prüfen. Wie funktioniert die Funktion iBars(), gibt sie alle Balken auf einmal zurück, wenn eine Verbindung besteht, oder funktioniert sie auf andere Weise?
 
Seric29:
Ich habe eine Frage. Ich erhielt 200 Balken in meinem Diagramm. iBars() gab 200 zurück (201 Balken, wenn ich 0 nicht berücksichtige), ich löschte 5 Balken von der rechten Seite des Archivs und die Balkenanzahl war 195 (iBars() gab 195 Balken zurück), das Diagramm wurde kürzer und dann aktivierte ich die Verbindung und diese 5 Balken erschienen im Diagramm und im Kursarchiv. Ich habe bemerkt, dass, wenn ich das tue, es die Anzahl der Takte einen nach dem anderen erhöht und nicht 5 auf einmal lädt, es ist sehr seltsam, wenn ich einen sehr großen Abschnitt überspringe, zählt es einen Takt nach dem anderen, also muss ich mit links prüfen. Wie funktioniert die Funktion iBars(), gibt sie alle Balken auf einmal zurück, wenn eine Verbindung besteht, oder funktioniert sie auf andere Weise?

Er holt die fehlenden Daten schrittweise nach, bis die gesamte Umgebung vollständig synchronisiert ist. Sobald ein Balken vollständig geladen ist, hat sich der Wert der Balkenanzahl erhöht. Sie erhalten nicht sofort die Anzahl der fehlenden Balken zurück - nur die Anzahl der vollständig synchronisierten Daten wird zurückgegeben.

 
Artyom Trishkin:

Die fehlenden Daten werden schrittweise nachgeladen, bis die gesamte Umgebung vollständig synchronisiert ist. Sobald ein Balken vollständig geladen ist, wird die Anzahl der Balken hochgezählt. Sie erhalten nicht sofort die Anzahl der fehlenden Balken zurück - nur die Anzahl der vollständig synchronisierten Daten wird zurückgegeben.

Ich sehe, ich bin nur für scharfe Bar-Feeds zu berechnen, dachte ich, dass es eins zu eins funktioniert: zum Beispiel, 5 Bars fehlen, schalten Sie das Netzwerk, es lädt die Daten und verbringt so viel Zeit wie nötig, und dann die Anzahl der Bars wird voniBars() mit einer möglichen Differenz von mehr als einer zurückgegeben. Daher haben die Entwickler geplant, die Stäbe einzeln zu füttern, was zwar das Schreiben des Codes vereinfacht, aber im Falle von großen fehlenden Abschnitten unnötige Arbeit für den Roboter bedeutet. Was auch immer passiert, die Balken werden einer nach dem anderen geladen, 195, 196, 197, 198, 199, 200. Ist dieser Mechanismus zuverlässig, oder kann es sein, dass er einfriert oder etwas passiert, dass statt eines einzelnen Segments das ganze Segment geladen wird?

Grund der Beschwerde: