Fehler, Irrtümer, Fragen - Seite 907

 
x100intraday:

Das Gegenteil ist der Fall. Unter der persönlichen Sichtkontrolle wird die gesamte Historie beim ersten Start heruntergeladen, am Ende des Downloads wird sie mit der Home-Taste überprüft, indem man zum Anfang des Jahres 1994 auf M1 geht. Dann umgehe ich manuell die Zeitrahmen, die ich häufig benutze, sowie diejenigen, die für den multitemporalen Indikator relevant sind, warte auf ihre Bildung und lade das Terminal neu. Das war's.

Soweit ich weiß, werden alle TFs im Handumdrehen aus M1 erstellt. D.h. bei einem Neustart des Terminals "vergisst" man alle bisherigen Zeichnungen und braucht bei einem erneuten Start des Terminals Zeit für deren Berechnung.

Versuchen Sie vor allen Berechnungen, in Ihren Indikator das Herunterladen aller notwendigen Historien (für alle verwendeten Symbole und TFs) einzufügen, wie es in diesem Skript gemacht wird:

   for(int s=0; s<SymbolsCount; s++)
     {
      for(int p=0; p<PeriodsCount; p++)
        {
          if(!CheckLoadHistory(SymbolsName[s],StringToPeriod(PeriodsName[p]),BarsCount)) return;
         }
     }
sHistoryExport - удобный скрипт для экспорта исторических данных в формате МetaТrader 4
sHistoryExport - удобный скрипт для экспорта исторических данных в формате МetaТrader 4
  • Stimmen: 14
  • 2012.11.12
  • Andrey Khatimlianskii
  • www.mql5.com
Экспорт всех необходимых инструментов и тайм-фреймов одним кликом с загрузкой и проверкой истории.
 
komposter:

Soweit ich weiß, werden alle TFs im Handumdrehen aus M1 erstellt. D.h. durch einen Neustart des Terminals "vergessen" Sie alle vorherigen Zeichnungen und bei einem Neustart braucht das Terminal wieder Zeit, um sie zu berechnen.

Versuchen Sie, vor allen Berechnungen alle notwendigen Historien in Ihren Indikator zu laden (für alle Symbole und die verwendeten TFs), wie es in diesem Skript gemacht wird:

Ich beziehe mich, wenn überhaupt, auf dieses Verzeichnis:

C:\Programme\MetaTrader 5\Bases\MetaQuotes-Demo\history\NZDUSD\cache,

Wenn mit "Konstruktionen" die Schaffung von Zeitrahmen gemeint ist, die nicht zu M1 gehören. Aber wir werden sie bei der ersten Inbetriebnahme des Terminals noch nicht sehen und die nicht-M1-Zeiträume für ihre Bildung und die Möglichkeit, weiter mit ihnen zu arbeiten, umgehen, obwohl das Terminal vollständig betriebsbereit sein wird und nicht nur manuell. Nach dem Entladen des Terminals und auch bei weiteren Durchläufen können die zuvor generierten Zeitrahmen jedoch problemlos im selben Verzeichnis eingesehen werden. Da sie jedoch nicht mit dem Entladen verdampfen, sondern verbleiben und bei den nachfolgenden Fahrten scheinbar hinzukommen, ist es unwahrscheinlich, dass das Terminal Zeit benötigt, um den angeforderten Zeitrahmen vollständig neu zu berechnen.

Aber wenn es um den Indikator geht - alles wird in allen erforderlichen Tiefen neu berechnet -, habe ich beschlossen, mich nicht mit dem Speichern früherer Berechnungen zu befassen, obwohl ich eine solche Idee hatte.

Ihr Code ist meines Erachtens nichts anderes als eine Vorsynchronisation des lokalen Verlaufs mit dem des Servers? Wenn ja, dann habe ich das schon lange vor, habe es aber noch nicht geschafft, einen solchen einfachen Block in meinen Code einzubauen.

 
komposter, obwohl ich absichtlich erwähnt habe, dass das Terminal beim ersten Start (nachdem der notwendige Verlauf heruntergeladen und die Optionen eingestellt wurden) voll funktionsfähig ist, treffe ich persönlich Vorsichtsmaßnahmen und beginne, das stabilisierte Verhalten des Terminals erst ab dem zweiten Start zu melden (wegen dieser Unsicherheit), dass nicht-M1-konfigurierte Zeitrahmen zuverlässig auf der Festplatte gespeichert werden und nicht irgendwo im RAM hängen und bei Speichermangel zu Lasten des Betriebssystems auslagern und beschädigt werden können). Theoretisch sollte der Indikator also nicht beim zweiten Start von MT5 ausfallen. Aber aus irgendeinem Grund hörte es erst beim zehnten Durchlauf auf, obwohl die anderen neun Durchläufe von MT5 nichts verändert haben, alles war eintönig.
 
x100intraday:

Ihr Code, so wie ich ihn verstehe, ist nichts anderes als eine Vorsynchronisation des lokalen Verlaufs mit dem des Servers? Wenn ja, dann habe ich das schon lange geplant, habe aber noch keine Zeit, einen so einfachen Block in meinen Code einzufügen.

Nicht nur die Synchronisierung mit dem Server, sondern auch die Erstellung aller TFs.

Laden Sie die Bibliothek herunter, fügen Sie 3 Zeilen Code in Ihren Indikator ein und sehen Sie sich das Ergebnis an.

 

Ich verstehe nicht, warum die Funktion ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0) beim Testen des Indikators den Wert Null zurückgibt, obwohl die sichtbaren Balken mindestens 30

(überprüft durch ChartGetInteger(0,CHART_VISIBLE_BARS,0)

Auf normalen Diagrammen ist alles in Ordnung, eine unterscheidet sich von der anderen um 1, aber beim Testen gibt es diesen Unsinn...

Wie werde ich sie wieder los?

 
Поясните, почему в данном простом индикаторе с двумя массивами - второй  имеет нулевой размер??

{Код удалил после ответа на вопрос чтобы не занимал место}



 
dimonsky: Erklären Sie, warum in diesem einfachen Indikator mit zwei Feldern das zweite Feld eine Größe von Null hat?
#property indicator_plots 2
 
avoitenko:
Ich danke Ihnen!!!
 
Kann ich hier ein zweites Konto verwenden? Sicherlich nicht zum Zweck des Sammelns von Credits
 
Zeleniy:

Kann ich hier ein zweites Konto verwenden? Natürlich nicht mit dem Ziel, Credits zu sammeln.
Natürliche Frage. Und warum? ))