FORTS Bitte helfen Sie - Seite 8

 
MigVRN:

Das war schon immer so.

Er ist ein tickender Experte, der nicht funktioniert. Und alles andere im Chat. Timer und benutzerdefinierte Ereignisse wurden nicht überprüft.

Auch von Hilfe

...Die Servicedateien im HCC-Format dienen als Datenquelle für die Erstellung der Preisdaten für die gewünschten Zeiträume im HC-Format. Bei den Daten im HC-Format handelt es sich um Zeitreihen, die maximal für den schnellen Zugriff aufbereitet sind. Sie werden nur auf Anforderung eines Diagramms oder mql5-Programms in der Menge erstellt, die den Parameter "Max bars in charts" nicht überschreitet, und werden zur weiteren Verwendung in Dateien mit der Endung hc gespeichert.

Um Ressourcen zu sparen, werden die Daten des Zeitfensters nur bei Bedarf in den Arbeitsspeicher geladen und gespeichert, und bei längerer Abwesenheit von Anfragen werden die Daten aus dem Arbeitsspeicher entladen und in einer Datei gespeichert. Die Daten für die einzelnen Zeiträume werden unabhängig von den Daten für andere Zeiträume aufbereitet. Die Regeln für die Datenaufbereitung und -verfügbarkeit sind für alle Zeiträume gleich. Obwohl also die Einheit der Datenspeicherung im HCC-Format der Minutenbalken ist, bedeutet die Verfügbarkeit der Daten im HCC-Format nicht, dass die Daten des Zeitrahmens M1 im gleichen Umfang im HC-Format verfügbar und zugänglich sind.

:)

Wer wird sie also in den Speicher laden, wenn nichtSeriesInfoInteger(symbol,PERIOD_M1,SERIES_TERMINAL_FIRSTDATE,first_date)

Es gibt keine andere Funktion!!!!

Warum zum Server gehen, wenn die Daten im Terminal sind: ????

 
Mikalas:

:)

Wer wird sie also in den Speicher laden, wenn nichtSeriesInfoInteger(symbol,PERIOD_M1,SERIES_TERMINAL_FIRSTDATE,first_date)

Es gibt keine andere Funktion!!!!

Warum zum Server gehen, wenn die Daten im Terminal sind: ????

Das ist richtig - es wird geladen, was da ist. Aber aufgrund der Tatsache, dass jede Verzögerung in Indikator verlangsamt den Chat mit allem, was auf sie hängen - in Indikatoren haben wir so gemacht, dass, wenn Serie zum Zeitpunkt des Aufrufs nicht bereit ist - Funktion wird der Fehler zurück und INITIALIZE Datenvorbereitung. Nach einiger Zeit wird keine Fehlermeldung mehr angezeigt. Dies ist der Fall in Ihren Protokollen.
 
MigVRN:
Weil es das ERSTE Mal ist, dass diese spezielle Serie angesprochen wird.

Ich habe den Zyklus gemacht:

long first_date = 0;
    datetime times[1];
    int fail_cnt = 0;
//---
    while ( fail_cnt < 1000 )
    {
      ResetLastError();  
      if ( SeriesInfoInteger( symbol, PERIOD_M1, SERIES_TERMINAL_FIRSTDATE, first_date ) )
      {
        if ( first_date > 0 )
        {
//--- force timeseries build
          CopyTime( symbol, period, datetime( first_date ) + PeriodSeconds( period ), 1, times );
//--- check date
          if ( SeriesInfoInteger( symbol, period, SERIES_FIRSTDATE, first_date ) )
//---        
          if ( first_date > 0 && first_date <= long( start_date ) )
          {
            return( Bars( symbol, period, start_date, end_date ) );
          } 
        }
      }
      fail_cnt++;
    }

Raten Sie mal, was das Ergebnis ist?

 
MigVRN:
In Ordnung - es wird geladen und vorbereitet, was da ist. Aber aufgrund der Tatsache, dass jede Verzögerung in Indikatoren verlangsamt den Chat mit allem, was daran hängt - in Indikatoren haben wir es so gemacht, dass, wenn Serie ist nicht bereit, im Moment des Aufrufs - Funktion wird Fehler zurück und INITIALIZE Daten Vorbereitung. Nach einiger Zeit wird keine Fehlermeldung mehr angezeigt. Dies ist das, was Sie in Ihren Protokollen haben.
Diese Zeit kann entweder mehrere OnCalculate()-Aufrufe oder sogar ein paar Sekunden dauern. So funktioniert die Geldmachmaschine. Aus diesem Grund ist es falsch, alles, was mit dem Abrufen von Daten aus dem Indikator zu tun hat, OnInit() zu nennen.
 
Mikalas:

Ich habe den Zyklus gemacht:

Raten Sie mal, was das Ergebnis ist?

barabashkakvn:
Diese Zeit kann entweder mehrere OnCalculate()-Aufrufe oder sogar mehrere Sekunden dauern. So funktioniert eine Geldgewinnungsmaschine. Deshalb ist es falsch, alles, was mit dem Abrufen von Daten zu tun hat, bei OnInit() des Indikators aufzurufen.

Das ist richtig - der Zyklus ist SEHR schnell. keine Zeit zur Vorbereitung... Ich verstehe, dass es aus der Sicht eines Entwicklers (uns) die HÖLLE ist :) Aber Sie werden sich daran gewöhnen müssen.

Übrigens, Sleep() funktioniert nicht in Indikatoren

:)

 
MigVRN:

Das ist richtig - der Zyklus ist SEHR schnell. keine Zeit zur Vorbereitung... Ich verstehe, dass es aus der Sicht eines Entwicklers (uns) die HÖLLE ist :) Aber Sie werden sich daran gewöhnen müssen...

Übrigens, Sleep() funktioniert nicht in Indikatoren

:)

Vielen Dank, Andrey!

Die Frage ist nicht an Sie gerichtet, sie ist rhetorisch:

Warum brauche ich

SeriesInfoInteger( Symbol, PERIOD_M1, SERIES_TERMINAL_FIRSTDATE, first_date ) ????

Wenn ich keine Antwort bekomme, muss ich den Server kontaktieren (es dürfen wirklich keine Daten im Terminal sein)!

Ich danke Ihnen allen. Die Tschuktschen haben es....

... Und "Respekt" an MQ!

P/S Ich werde die Hilfe nicht noch einmal lesen...

 
Mikalas:

komposter!

Wenn man etwas nicht versteht oder missversteht, nennt einen niemand Tschuktsch.

Warum sollten sie?

Wenn ich etwas nicht verstehe, versuche ich zu hören, was man mir sagt.

Und Sie haben hartnäckig die Erfahrungen vieler Menschen ignoriert, die ein ähnliches Problem hatten und es gelöst haben.

Das nenne ich einen "Chukcha-Schreiber".

 
Mikalas:

Was ist dann die

SeriesInfoInteger( Symbol, PERIOD_M1, SERIES_TERMINAL_FIRSTDATE, first_date ) ????

Wenn ich keine Antwort erhalte, muss ich zum Server gehen (die Daten im Terminal dürfen wirklich nicht vorhanden sein)!

Um die Daten zu erhalten, wenn sie bereit sind, oder um eine Vorbereitung einzuleiten, wenn die Anfrage zum ersten Mal erfolgt.
 
MigVRN:

Das ist richtig - der Zyklus ist SEHR schnell. keine Zeit zur Vorbereitung... Ich verstehe, dass es aus der Sicht eines Entwicklers (uns) die HÖLLE ist :) Aber Sie werden sich daran gewöhnen müssen...

Übrigens, Sleep() funktioniert nicht in Indikatoren

:)

Übrigens, was hindert die Entwickler daran, dasSERIES_TERMINAL_FIRSTDATE

Rückkehr:

-1 - keine Daten

0 - keine Daten verfügbar, aber nicht bereit

> 0 - Datum selbst

 
Mikalas:

Übrigens, haben die Entwickler denSERIES_TERMINAL_FIRSTDATE-Bezeichner verhindert?

Rückkehr:

-1 - keine Daten

0 - keine Daten verfügbar, aber nicht bereit

> 0 - Datum selbst.

Und was ist der Unterschied zwischen "nicht verfügbar" und "nicht bereit" für das Programm (und den Programmierer)?

Wenn die Daten nicht bereit sind, tritt ein Fehler auf.

Vielleicht ist diese Information aber auch nicht sofort verfügbar und wird deshalb nicht angezeigt.