FORTS Bitte helfen Sie - Seite 10

 
Mikalas:

Sie sind auch unser "Leser"... Frage:

Warum wird eine Zeitreihe erstellt, wenn die Daten bereit sind ( CopyTime(symbol,period,first_date+PeriodSeconds(period),1,times) )?

Sie sind nicht bereit. Sie befinden sich wahrscheinlich auf der Festplatte. Es ist sogar möglich, dass sie mit dem Verlauf des Servers synchronisiert werden (wenn das Diagramm geöffnet ist oder ein anderes Programm sie kürzlich angefordert hat).

Das bedeutet aber nicht, dass die Funktion es einfach glauben wird. Sie müssen die Daten von der Festplatte abfragen, einen Cache im Speicher anlegen, und erst dann können Sie feststellen, dass der Verlauf vorhanden ist und mit diesem Datum beginnt.

Aber weder diese Antwort von mir, noch wiederholte Antworten von den Entwicklern, noch funktionierender Code, noch Dokumentation werden Ihnen helfen. Die Funktion funktioniert nicht so, wie Sie es sich vorgestellt haben, hier liegt ein Fehler vor.

 
antt:

Lesen Sie die Dokumentation sorgfältiger und nicht selektiv. Das Vorhandensein von Verlaufsdaten auf der Festplatte bedeutet für das Terminal nicht zwangsläufig "definitiv vorhanden". In diesem Fall (beim Zugriff über den Indikator) arbeiten die Funktionen nur mit dem Zeitreihen-Cache im Speicher. Das bedeutet, dass ein synchroner Speicherzugriff durchgeführt wird, und wenn es dort keine vorbereitete Zeitreihe gibt, wird das Datum SERIES_FIRSTDATE (des ersten Elements des Arrays) nicht zurückgegeben. Aber natürlich löst die Anfrage die Vorbereitung aus - das Laden der Zeitreihen in den Speicher.

Die SERIES_TERMINAL_FIRSTDATE-Anfrage ist mit der Initialisierung der Datenbank und der Synchronisierung mit dem Server verbunden, so dass der erste Aufruf ohnehin nicht sofort funktioniert.

Grundsätzlich wird die Fähigkeit, die erforderliche Historie zu erhalten, mit SERIES_SERVER_FIRSTDATE überprüft. Natürlich kann man mit X Iterationen der Abfrage der Historie rechnen, aber wenn das Terminal das Vorhandensein der Historie in SERIES_SERVER_FIRSTDATE bestätigt , dann ist die Verfügbarkeit der Zeitreihendaten nur eine Frage der Zeit (Synchronisierung der m1-Basis mit dem Server und Erzeugung der Zeitreihen).

Das habe ich verstanden, aber sagen Sie mir, warum konnte es nicht so gemacht werden, wie ich es oben beschrieben habe?

Die Geschwindigkeit der Informationsverarbeitung wäre dadurch in keiner Weise beeinträchtigt worden:

Wenn es irgendwelche Informationen über ein Instrument gab - notieren Sie das Datum des ersten Auftretens und speichern Sie es im Speicher - 8 Bytes!

Sie können es auch nicht speichern, aber wenn Sie SymbolSelect() ausführen, wird es im Speicher abgelegt.

Wenn wir es mit der Funktion SeriesInfoInteger (SERIES_TERMINAL_FIRSTDATE) ansprechen, erhalten wir:

A -1 - keine Daten

Б. 0 - keine Daten verfügbar, aber nicht bereit

В. Datum der ersten Information

Dann wäre alles klar und transparent.

-1 - Auf den Server gehen

0 - Warten auf die nächste Iteration, um die Zeitreihe zu prüfen und/oder zu erstellen

> 0 Zeitreihen erstellen

Ihrem Hinweis habe ich entnommen, dass SIE das fast getan hätten, aber das hat sich als falsch herausgestellt.

Offenbar hat ein Programmierer mit dem Schreiben begonnen und ein anderer hat es beendet

Ihre Umsetzung ist gut für FOREX, aber sehr ungünstig für FORTS.

Bei FORTS kann es sein, dass die Kurse lange Zeit nicht kommen und die Zeitreihe von der Plattform heruntergeladen wird.

und Sie müssen den gesamten Vorgang mit dem Serverzugriff noch einmal wiederholen!

2015.03.27 20:24:56.568  (GAZR-6.15,M1) OnCalculate: Не скопированы тийминги по символу - GAZR-9.15
2015.03.27 20:25:34.092  (VTBR-6.15,H1) OnCalculate: Не получены бары по символу - VTBR-9.15
2015.03.27 20:25:34.100  (VTBR-6.15,H1) OnCalculate: Не получены бары по символу - VTBR-9.15
2015.03.27 20:25:34.326  (VTBR-6.15,H1) OnCalculate: Не получены бары по символу - VTBR-9.15
2015.03.27 20:25:34.326  (VTBR-6.15,H1) OnCalculate: Не получены бары по символу - VTBR-9.15
2015.03.27 20:34:40.098  (SILV-6.15,H1) OnCalculate: Не получены бары по символу - SILV-9.15
2015.03.27 20:34:40.126  (SILV-6.15,H1) OnCalculate: Не получены бары по символу - SILV-9.15
2015.03.27 20:37:21.475  (RTS-9.15,H1)  OnCalculate: Не получены бары по символу - RTS-12.15
2015.03.27 20:37:21.491  (RTS-9.15,H1)  OnCalculate: Не получены бары по символу - RTS-12.15
2015.03.27 20:37:41.563  (RTS-9.15,H1)  OnCalculate: Не получены бары по символу - RTS-12.15
2015.03.27 20:40:41.051  (SILV-6.15,H1) OnCalculate: Не получены бары по символу - SILV-9.15
2015.03.27 20:40:56.579  (RTS-9.15,H1)  OnCalculate: Не получены бары по символу - RTS-12.15
2015.03.27 20:40:56.595  (RTS-9.15,H1)  OnCalculate: Не получены бары по символу - RTS-12.15
2015.03.27 20:40:58.886  (VTBR-6.15,H1) OnCalculate: Не получены бары по символу - VTBR-9.15
2015.03.27 20:40:58.896  (VTBR-6.15,H1) OnCalculate: Не получены бары по символу - VTBR-9.15
2015.03.27 20:40:59.436  (SILV-6.15,H1) OnCalculate: Не получены бары по символу - SILV-9.15
2015.03.27 20:41:00.892  (VTBR-6.15,H1) OnCalculate: Не получены бары по символу - VTBR-9.15
 
Mikalas:

Ihre Umsetzung ist gut für FOREX, aber sehr ungünstig für FORTS.

Bei FORTS kann es sein, dass die Notierungen lange Zeit nicht kommen und die Zeitreihe aus dem Paiachi entladen wird

und Sie müssen den gesamten Prozess der Datenerfassung noch einmal wiederholen, wobei sich der Server an meldet!

Mikalas, ich habe immer noch Vertrauen in dich. Sie werden bestimmt alles lesen, was hier gesagt wurde.

FORTS Bitte helfen Sie.

Der Mehrwährungsindikator ist nicht so einfach.

Prüfen Sie zunächst die Verfügbarkeit der Instrumente:

bool CorrectSymbol( string symbol )
{
        ResetLastError();
        if ( SymbolInfoDouble( symbol, SYMBOL_BID ) > DBL_EPSILON ) return(true);

        // символ не выбран в "Обзоре рынка" (нет в списке доступных)
        if ( GetLastError() == 4302 )
        {
                if ( SymbolSelect( symbol, true ) && SymbolInfoInteger( symbol, SYMBOL_SELECT ) ) return(true);
        }

        return(false);
}

Öffnen Sie dann die Charts aller verwendeten Instrumente (ein unsichtbares Chart-Objekt genügt), damit der Verlauf normal geladen wird.

Und erst dann versuchen, den Verlauf mit CheckLoadHistory zu laden.

Aber auch das reicht möglicherweise nicht aus.


 

Übrigens gefällt mir diese Situation bei der Analyse mehrerer Währungen und der Konstruktion von Indikatoren auch nicht. Wie sie umgesetzt wird.

Es ist ein Tamburin-Tanz: Bevor man etwas berechnen kann, muss man eine Reihe von Überprüfungen vornehmen... Das habe ich bei keiner anderen Plattform gesehen. Aus der Sicht des Benutzers ist dort alles einfacher.

Es ist kein Geheimnis, dass viele Menschen, auch diejenigen, die die MT4-Programmierung gelernt haben, Angst vor der Komplexität der MT5-Programmierung haben.

Wäre ich der Entwickler, würde ich versuchen, uns das Leben leichter zu machen. Kombinieren Sie all diese Tamburine in einem Befehl, wie

GatData(RTS,1000)

und das Terminal löst diese Aufgabe, führt ggf. Überprüfungen durch, öffnet Diagramme, tauscht die Historie aus, aktualisiert, usw.

Und nach der Ausführung habe ich tatsächliche Daten, mit denen ich arbeiten kann.

Z.I. Ich erinnere mich, dass es ein Motto gab: "Terminal für Hausfrauen"...

 
komposter:

Mikalas, ich habe immer noch Vertrauen in dich. Sie werden sicherlich alles lesen, was hier gesagt wurde.


komposter!

(Alles Weitere - nichts für ungut!)

Was haben Sie an meinem Modell der Informationsbeschaffung über Tamserien SCHLECHT gefunden?

Weil es nicht von dir ist!?

Ich versuche, zu den Entwicklern "durchzudringen", um es für uns alle einfacher zu machen

"Leben", aber es gibt IMMER Leute wie Sie, die die Klügsten sind!

Es wird also so sein!

 
Prival-2:

Übrigens gefällt mir die Situation bei der Mehrwährungsanalyse und der Konstruktion von Indikatoren auch nicht. Wie sie umgesetzt wird.

Es ist ein Tamburin-Tanz: Bevor man etwas berechnen kann, muss man eine Reihe von Überprüfungen vornehmen... Das habe ich bei keiner anderen Plattform gesehen. Aus der Sicht des Benutzers ist dort alles einfacher.

Es ist kein Geheimnis, dass viele Menschen, auch diejenigen, die die MT4-Programmierung gelernt haben, Angst vor der Komplexität der MT5-Programmierung haben.

Wäre ich der Entwickler, würde ich versuchen, uns das Leben leichter zu machen. Kombinieren Sie all diese Tamburine in einem Befehl, wie

GatData(RTS,1000)

und das Terminal löst diese Aufgabe, führt ggf. Überprüfungen durch, öffnet Diagramme, tauscht die Historie aus, aktualisiert, usw.

Und nach der Ausführung habe ich tatsächliche Daten, mit denen ich arbeiten kann.

Denken Sie an das Motto: "Terminal für Hausfrauen"...

Hallo!

Ein universeller und einfacher Ansatz würde es unmöglich machen, effiziente Programme zu schreiben. Man kann nicht eine einzige DyData-Funktion erstellen, die alle Überprüfungen durchführt - das wäre für den Benutzer in 95 % der Fälle unnötig.
Im Falle des Indikators - er arbeitet so schnell wie möglich mit seinen Chartdaten. Sie ist für diesen Zweck konzipiert. Wenn wir es "für jede Situation bereit" machen, wird ein einfacher MA langsamer als ein komplexes Monster.

Ich will die Entwickler keineswegs verteidigen. Ich mag auch viele Dinge nicht.
Aber ich versuche, konstruktiv zu sein, und ich verstehe, dass ich nicht alle Details des Terminals kenne.

Mikalas hat in gewisser Hinsicht Recht - wenn man sich zurückhält (nicht liest) und immer wieder "Unbequem!" ruft, werden die Diskussionen populär und für die Entwickler sichtbar. Und sie tun etwas dagegen (sie haben bereits einige Fehler auf seinen Hinweis hin behoben).
Ich nuschele also umsonst, denke ich.)

 
Mikalas:

komposter!

(Alles, was darüber hinausgeht, ist nicht böse gemeint!)

Was finden Sie SCHLECHT an meinem Modell der Informationsbeschaffung über tamserials?

Weil es nicht von dir ist!!!?

Ich versuche, zu den Entwicklern "durchzudringen", um es für uns alle einfacher zu machen

"Leben", aber es gibt IMMER Leute wie Sie, die die Klügsten sind!

Es wird also so sein!

Ich habe es bereits.

Die Aufgabe bestand lediglich darin, einen Indikator zu schreiben. Und es stellte sich heraus, dass wir die Sprache verbessern mussten.

Wenn es so wäre, würde ich keine Ratschläge geben.)

 
komposter:

Ich habe es schon.

Es wurde nur die Aufgabe formuliert, einen Indikator zu schreiben. Es stellte sich jedoch heraus, dass es notwendig war, die Sprache zu verbessern.

Wenn es so wäre, würde ich keine Ratschläge geben.)

Andrej!

Sie haben viel mehr Zeit damit verbracht, Ihre Beiträge hier zu schreiben.

Sie hätten in dieser Zeit einen Indikator für "meine" Forderungen (für FORTS) schreiben können.

Und die "Krücken", von denen ich spreche, haben Sie selbst gesehen!

 
Mikalas:

Andrej!

Sie haben mehr Zeit damit verbracht, hier zu posten.

In dieser Zeit hätten Sie einen Indikator für "mein" Jammern schreiben können (für FORTS)

Und Sie haben ja selbst gesehen, von welchen "Krücken" ich spreche!

Ich habe geschrieben, deshalb weiß ich, wovon ich spreche.

Sie hätten Ihren Indikator auch schon bekommen, wenn es darum ginge, einen Indikator zu bekommen, und nicht darum, die Sprache zu verbessern.

 
komposter:

Ich habe geschrieben, und deshalb weiß ich, wovon ich rede.

Sie hätten Ihren Indikator auch schon bekommen, wenn es darum ginge, einen Indikator zu bekommen, und nicht darum, die Sprache zu verbessern.

Ich habe einen Indikator geschrieben, aber es ist unmöglich, ihn zu benutzen.

Egal, was ich versuche, ich habe überall Probleme!

Ich habe OrderSendAsync() - kein Tracking-Mechanismus, obwohl es ORDER_ID gibt

Es gibt eine globale Variable - wenn ich das Terminal schließe, setzt sie sich selbst zurück...

Es gibt "unverständliche" Verzögerungen bei der Auftragsabwicklung - halb fertig und der nächste

eine Anschuldigung der Scharlatanerie....

Und so weiter...

Ich werfe Fragen auf, weil es Probleme und Fehler gibt.

(Ich denke mir das nicht aus!)

Ich handele auf der BUREAU für echtes Geld, nicht für Späße!

Und so ist es für mich und für ALLE, die handeln, ARCHIV, dass die Handelsfunktionen

ARCHIVEN, dass die Handelsfunktionen FREQUENT sind.

Die Architektur von MT5 ist SUPER, ich mag sie sehr, aber alles muss richtig funktionieren und

Der Zugang zu den Daten sollte schnell und einfach sein.

И... Machen wir Schluss für heute, bitte.

Grund der Beschwerde: