Fehler, Irrtümer, Fragen - Seite 2934

 
Vitaly Muzichenko:

Also einen Exit machen, wenn die Daten nicht kopiert werden

Beim nächsten Häkchen wird alles geladen und der Code funktioniert korrekt

Nein, in meinem Fall wird der Code furchtbar falsch funktionieren, die Objekte im Indikator werden von ihren Positionen in die Hölle rutschen. Ich kümmere mich um das Laden der Geschichte...

 
Евгений Баженов:

Hallo, ich teste meinen Roboter, nachdem ich den Test beendet habe, sah ich viele Felder mit Requotes im Log, was bedeuten diese Nachrichtenstapel und was kann ich zum Code hinzufügen, um zu verhindern, dass sie erscheinen? Vielen Dank und ein frohes neues Jahr!

Ich gehe davon aus, dass die Handelssitzung im Symbol kleiner ist als die Börsensitzung. Dann werden die Kurse in den Tester aufgenommen, aber der Handel mit diesen Kursen ist während dieser Zeiträume verboten.

 
x572intraday:

Das Blöde ist, dasshttps://www.mql5.com/ru/docs/series/timeseries_access in dem Artikel über das Laden der Historie im Code Sleep() erwähnt, aber in der Hilfe zu Sleep() steht: "Die Funktion Sleep() kann nicht von benutzerdefinierten Indikatoren aufgerufen werden, da Indikatoren im Interface-Thread ausgeführt werden und diesen nicht verlangsamen dürfen". Es stellt sich heraus, dass ich die Historie in einen Indikator laden muss.

Wessen Idiotie?

Wenn Daten vom Indikator (nicht vom EA) angefordert werden, werden die gleichen Daten ohne Verzögerung empfangen. Vitaly hat es richtig gesagt.

Abfrage der erforderlichen Symbol-Periode in OnInit, um die Erstellung der erforderlichen Historie zu initiieren

 
Slava:

Wessen Idiotie?

Wenn Sie Daten von einem Indikator (und nicht von einem Expert Advisor) anfordern, werden diese Daten sofort und ohne Verzögerung bereitgestellt. Vitaly sagte richtig.

Abfrage der erforderlichen Symbol-Periode in OnInit, um die Erstellung der erforderlichen Historie zu initiieren

1. Wenn ich Sie richtig verstehe, schlagen Sie vor, die Anfrage einmal zu Beginn des Indikators zu stellen . Hier https://www.mql5.com/ru/docs/runtime/event_fire ist das Init-Ereignis von einer Vielzahl von Bedingungen umgeben: "Dieses Ereignis wird auch nach einem Wechsel des Symbols und/oder der Chart-Periode, nach einer Neukompilierung des Programms im MetaEditor, nach einer Änderung der Eingabeparameter eines EA oder eines benutzerdefinierten Indikators erzeugt. Der Expert Advisor wird auch initialisiert, nachdem das Konto geändert wurde."Aber der Benutzer muss diese Ereignisse nicht erzeugen, er/sie kann sich bequem auf die einzige aktuelle TF setzen und den Indikator beobachten, so dass die Neuinitialisierung und das erneute Laden der Historie nicht mehr als einmal vorkommen. Das Fehlen der Historie tritt jedoch nicht unbedingt zu Beginn der Arbeit auf, sondern der Fehler erscheint plötzlich und wiederholt zu zufälligen Zeitpunkten während der Arbeit (außerdem kann er während der langfristigen Arbeit des Indikators überhaupt nicht auftreten; oft gibt es zu Beginn der Arbeit keinen Fehler). Dann sollte der fehlende Teil der Historie nicht nur in OnInit, sondern auch inOnCalculate heruntergeladen werden, um den wiederkehrenden Fehler zu vermeiden?

Odermeinten Sie mit"den Aufbau der richtigen Historie einleiten", dass es ausreicht, dies einmal inOnInit zu tun und Sie es dann nicht mehr tun müssen? Aber einerseits tritt ein Fehler auch dann auf, wenn die gesamte Historie des Instruments geladen ist und alle Zeitrahmen abgestimmt sind, weil der Indikator multitime und ryllime ist; andererseits kann unter den gleichen Bedingungen ein Fehler nicht auftreten.

2. Was bedeutet "Fehlen eines Teils der Geschichte"? Wenn Sie das Terminal nach der Installation zum ersten Mal starten, lädt es die fehlende Historie herunter - buchstäblich die auf der linken Seite, also zu einem früheren Zeitpunkt. Aber es kopiert die CopyTime(_Symbol,tf,0,1,Arr), d.h. es kopiert den letzten Balken auf der rechten Seite, nicht den Verlaufsbalken. Könnte die neue Bar etwas mit der Geschichte und ihrem Fehlen zu tun haben?

3. Ich gebe zu, dass meine vagen Erklärungen vielleicht nicht ausreichen, um das Problem zu verstehen; ich möchte nicht anhttps://www.mql5.com/ru/forum/133408 geschickt werden, deshalb bin ich bereit, den Code mit Kommentaren mit den Entwicklern und anderen zu teilen, die ihn gemeinsam debuggen möchten, denn ich möchte den Indikator kostenlos über CodeBase zur Verfügung stellen. Übrigens, wenn das der Fall ist, ist es dann akzeptabel, unveröffentlichten kostenlosen Code zu veröffentlichen?

Документация по MQL5: Программы MQL5 / События клиентского терминала
Документация по MQL5: Программы MQL5 / События клиентского терминала
  • www.mql5.com
События клиентского терминала - Программы MQL5 - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
x572intraday:

1. Wenn ich richtig verstanden habe, schlagen Sie vor, einmal zu Beginn der Arbeit des Indikators, bei OnInit, eine Anfrage zu stellen. Hier https://www.mql5.com/ru/docs/runtime/event_fir e ist das Init-Ereignis von einer Reihe von Begleitumständen umgeben: "Dieses Ereignis wird auch nach einem Wechsel des Symbols und/oder der Chart-Periode, nach einer Neukompilierung des Programms im MetaEditor, nach einer Änderung der Eingabeparameter eines EA oder eines benutzerdefinierten Indikators erzeugt. Der Expert Advisor wird auch initialisiert, nachdem das Konto geändert wurde."Aber der Benutzer muss diese Ereignisse nicht erzeugen, er/sie kann sich bequem auf die einzige aktuelle TF setzen und den Indikator beobachten, so dass die Neuinitialisierung und das erneute Laden der Historie nicht mehr als einmal vorkommen. Das Fehlen der Historie tritt jedoch nicht unbedingt zu Beginn der Arbeit auf, sondern der Fehler erscheint plötzlich und wiederholt zu zufälligen Zeitpunkten während der Arbeit (außerdem kann er während der langfristigen Arbeit des Indikators überhaupt nicht auftreten; oft gibt es zu Beginn der Arbeit keinen Fehler). Dann sollte der fehlende Teil der Historie nicht nur in OnInit, sondern auch inOnCalculate heruntergeladen werden, um den wiederkehrenden Fehler zu vermeiden?

Odermeinten Sie mit"den Aufbau der richtigen Historie initiieren", dass es ausreicht, dies einmal inOnInit zu tun und Sie es dann nicht mehr tun müssen? Aber einerseits tritt ein Fehler auch dann auf, wenn die gesamte Historie des Symbols geladen ist und alle Zeitrahmen abgeschlossen sind, weil der Indikator multitime und rylltime ist; andererseits kann unter den gleichen Bedingungen kein Fehler auftreten.

2. Was bedeutet der Begriff "ein Stück Geschichte verpassen" selbst? Wenn Sie das Terminal nach der Installation zum ersten Mal starten, lädt es den fehlenden Verlauf herunter - wortwörtlich den auf der linken Seite, also zu einem früheren Zeitpunkt. Aber es kopiert die CopyTime(_Symbol,tf,0,1,Arr), d.h. es kopiert den letzten Balken auf der rechten Seite, nicht den Verlaufsbalken. Könnte die neue Bar in irgendeiner Weise mit der Geschichte und ihrem Fehlen zu tun haben?
Bei Indikatoren wird Ihnen niemand die Ausgabe der angeforderten Daten garantieren, wenn diese nicht bereit sind.

Die Skripte und die Expert Advisors haben eine ausreichende Garantie.

Daher wird bei den Indikatoren der Zyklus der Datenverfügbarkeit abgewartet.

Um die Wahrscheinlichkeit zu erhöhen, die richtigen Daten zu erhalten, sollten Sie im Indikator gefälschte Datenanforderungen stellen. Dadurch wird das Laden von Daten im Hintergrund ausgelöst.
 
Renat Fatkhullin:
Bei Indikatoren garantiert niemand, dass die angeforderten Daten herausgegeben werden, wenn sie nicht bereit sind.

Von meinem niedrigen Glockenturm aus habe ich den Eindruck, dass die angeforderten Daten fertig sind, da es sich um den letzten verfügbaren Balken handelt. Wie kann sie nicht fertig sein? Wenn er auf der Karte erscheint, ist er fertig.

 
Renat Fatkhullin:
Bei Indikatoren wird Ihnen niemand die Freigabe der angeforderten Daten garantieren, wenn diese nicht bereit sind.

Für Skripte und Experten gibt es genügend Garantien.

Bei den Indikatoren wird also ein Zyklus nach dem anderen auf die Verfügbarkeit von Daten gewartet.

Cool... Auch im neuen Jahr in der Post. Frohes neues Jahr. !!!!!!!

 
x572intraday:

Von meinem niedrigen Glockenturm aus habe ich den Eindruck, dass die angeforderten Daten fertig sind, da es sich um den letzten verfügbaren Balken handelt. Wie kann sie nicht fertig sein? Wenn er auf der Karte erscheint, ist er fertig.

Lesen Sie meine Antwort aufmerksam.
 
Renat Fatkhullin:
Lesen Sie meine Antwort aufmerksam.

Wir müssen den Begriff der Datenverfügbarkeit definieren. Wenn ich eine Leiste im Terminal sehe, ist sie bereits verfügbar oder gibt es andere Optionen? Und ja, Renat, was ist mit Punkt 3 meines vorherigen Beitrags?

 
x572intraday:

Wir müssen den Begriff der Datenverfügbarkeit definieren. Wenn ich eine Leiste im Terminal sehe, ist sie bereits verfügbar oder gibt es andere Optionen? Und ja, Renat, was ist mit Punkt 3 meines vorherigen Beitrags?

Wenn Sie eine Funktionsantwort erhalten, dann sind die Daten nicht verfügbar.

Wenn Sie Beweise für das Gegenteil haben, sollten Sie diese in vollständig konsistenter und technisch reproduzierbarer Weise vorlegen.