Eine weitere Frage: Ich reiße 3 Indikatorinstanzen im Indikator ab, um Daten von verschiedenen TFs zu erhalten. Aber wenn ich sie an ein Diagramm anhänge, erhalte ich diese Art von Tabellenkalkulation:
Was würde das bedeuten?
Ich kann es nicht mit Sicherheit sagen, aber vielleicht wurde der 2. Puffer zu spät initialisiert.
Um herauszufinden, was genau der Grund dafür ist, sollten Sie die folgenden Zeilen wie folgt anpassen
if(CopyBuffer(handle_MA,0,0,ma_values_to_copy,buffer_MA) < 0 ) // копируем данные из индикаторного массива в массив buffer_MA
{ // если не скопировалосьPrint("Не удалось скопировать данные из индикаторного буфера в buffer_MA, код ошибки "+ IntegerToString(GetLastError())); // то выводим сообщение об ошибкеreturn(0); // и выходим из функции
}
Danach können wir mit größerer Sicherheit sagen, was falsch ist
Fragen Sie im Timer alle zwei Minuten nach den Daten für den gewünschten Zeitraum. Auf diese Weise verfügen Sie immer über aktuelle Daten für den jeweiligen Zeitraum.
Außerdem: In OnCalculate(), ganz am Anfang, fordern Sie es zum Beispiel an:
if(iTime(NULL,PERIOD_M15,1)==0)
return0;
Bis die Daten des fünfzehnminütigen Zeitrahmens verfügbar sind, wartet der Indikator also auf den nächsten Tick. Mit der Funktion CopyXXX können Sie die richtige Menge an Daten für die Berechnung anfordern:
In diesem Fall wartet der Indikator auf den nächsten Tick, bis die erforderliche Anzahl von Daten verfügbar ist.
Wenn Sie sich für die Funktion
Bars(NULL,PERIOD_M15);
..., sollten Sie beachten, dass die Datenmenge für die Berechnung nicht größer sein sollte als die rates_total, da sie sonst die Grenzen des Arrays überschreitet. Mit anderen Worten, wenn es auf dem aktuellen Zeitrahmen weniger Balken gibt als auf M15, dann sollten wir die Anzahl der Balken nehmen, die ihrer Anzahl auf dem aktuellen Zeitrahmen entspricht = rates_total
Fordern Sie im Timer alle zwei Minuten beliebige Daten für den gewünschten Zeitraum an. Auf diese Weise verfügen Sie immer über aktuelle Daten für den jeweiligen Zeitraum.
Außerdem: in OnCalculate() ganz am Anfang fordern Sie z.B.:
Bis die Daten des 15-Minuten-Zeitrahmens verfügbar sind, wartet der Indikator also auf den nächsten Tick. Mit der Funktion CopyXXX können Sie die richtige Menge an Daten für die Berechnung anfordern:
In diesem Fall wartet der Indikator auf den nächsten Tick, bis die erforderliche Datenmenge in number_of_datas verfügbar ist.
Wenn Sie sich für die Funktion
..., sollten Sie beachten, dass die Datenmenge für die Berechnung nicht größer sein sollte als die rates_total, da sonst die Grenzen des Arrays überschritten werden. Mit anderen Worten, wenn es auf dem aktuellen Zeitrahmen weniger Balken gibt als auf M15, dann sollten wir die Anzahl der Balken nehmen, die ihrer Anzahl auf dem aktuellen Zeitrahmen entspricht = rates_total
Hallo zusammen! Bitte beraten Sie mich über die Funktion CopyHigh. Ich habe in der Definition dieser Funktion gelesen: "Ruft die historischen Daten in einem Array mit dem maximalen Barpreis für ein bestimmtes Symbol und einen bestimmten Zeitraum ab".
Handelt es sich um ein Bid- oder Ask-Preisfeld? Oder gibt es eine Möglichkeit, die Art des benötigten Preises festzulegen?
Hallo zusammen! Bitte informieren Sie mich über die Funktion CopyHigh. Ich habe in der Definition dieser Funktion gelesen: "Ruft Historiendaten in Form eines Arrays maximaler Barpreise für ein bestimmtes Symbol und einen bestimmten Zeitraum ab".
Handelt es sich um ein Bid- oder Ask-Preisfeld? Oder ist es möglich, die Art des benötigten Preises irgendwie festzulegen?
Die Verlaufsdaten, auf deren Grundlage die Diagramme erstellt werden, sind auf der Festplatte gespeichert. Wenn Sie ein Diagramm öffnen, werden die Daten von der Festplatte heruntergeladen, und die letzten fehlenden Daten werden vom Handelsserver heruntergeladen. Wenn die historischen Daten eines Finanzinstruments nicht auf der Festplatte verfügbar sind, werden die letzten 512 Balken der Historie heruntergeladen.
Um frühere Daten herunterzuladen, bewegen Sie das Diagramm in den gewünschten Bereich. Sobald der Chart geöffnet ist, erhält die Plattform Informationen zu den aktuellen Kursen. So wird die weitere Kursbewegung in Echtzeit gebildet. Diese Informationen werden automatisch in einer Verlaufsdatei gespeichert und beim erneuten Öffnen dieser Karte verwendet.
Der Parameter "Max bars on chart" wird in den Plattformeinstellungen festgelegt. Mit diesem Parameter lässt sich die Menge der im Diagramm angezeigten historischen Daten steuern.
Die Charts sind gegen die Geldkurse aufgetragen. Wenn dieMarkttiefe für das Symbol verfügbar ist, werden die Charts zu den letzten Preisen (dem Preis des letzten ausgeführten Handels) gezeichnet.
Графики в торговой платформе отображают изменение котировок финансовых инструментов во времени. Они необходимы для проведения технического анализа и работы советников. Они позволяют трейдерам наглядно следить за котировками валют и акций в режиме реального времени и моментально реагировать на любое изменение ситуации на финансовых рынках...
Die historischen Daten, auf deren Grundlage die Diagramme erstellt werden, werden auf der Festplatte gespeichert. Wenn Sie ein Diagramm öffnen, werden die Daten von der Festplatte heruntergeladen, und die letzten fehlenden Daten werden vom Handelsserver heruntergeladen. Wenn die historischen Daten eines Finanzinstruments nicht auf der Festplatte verfügbar sind, werden die letzten 512 Balken der Historie heruntergeladen.
Um frühere Daten herunterzuladen, bewegen Sie das Diagramm in den gewünschten Bereich. Sobald der Chart geöffnet ist, erhält die Plattform Informationen zu den aktuellen Kursen. So wird die weitere Kursbewegung in Echtzeit gebildet. Diese Informationen werden automatisch in einer Verlaufsdatei gespeichert und beim erneuten Öffnen dieser Karte verwendet.
Der Parameter "Max bars on chart" wird in den Plattformeinstellungen festgelegt. Mit diesem Parameter können Sie die Menge der im Diagramm angezeigten historischen Daten steuern.
Die Charts sind gegen die Geldkurse aufgetragen. Wenn dieMarkttiefe für das Symbol verfügbar ist, werden die Charts zu den letzten Preisen (letzter Handelspreis) gezeichnet.
Guten Tag Vladimir, wie immer hilfst du mir weiter :) Ich danke Ihnen!
Der erste Weg half )))) Danke.
Eine weitere Frage: Ich reiße 3 Indikatorinstanzen im Indikator ab, um Daten von verschiedenen TFs zu erhalten. Aber wenn ich sie an ein Diagramm anhänge, erhalte ich diese Art von Tabellenkalkulation:
Was würde das bedeuten?
Ich kann es nicht mit Sicherheit sagen, aber vielleicht wurde der 2. Puffer zu spät initialisiert.
Um herauszufinden, was genau der Grund dafür ist, sollten Sie die folgenden Zeilen wie folgt anpassen
Danach können wir mit größerer Sicherheit sagen, was falsch ist
Ich kann es nicht mit Sicherheit sagen, aber vielleicht wurde der 2. Puffer zu spät initialisiert.
Um herauszufinden, woran es genau liegt, sollten Sie die folgenden Zeilen wie folgt anpassen
Danach können wir mit größerer Sicherheit sagen, was los ist.
Kann man damit etwas anfangen?
Diese Kopie wird übrigens auf M15 geöffnet.
Das Gleiche gilt aber auch für andere TFs...
Können Sie etwas dagegen tun?
Diese Kopie wird übrigens auf M15 geöffnet.
Das Gleiche gilt auch für andere Zeitrahmen...
Fragen Sie im Timer alle zwei Minuten nach den Daten für den gewünschten Zeitraum. Auf diese Weise verfügen Sie immer über aktuelle Daten für den jeweiligen Zeitraum.
Außerdem: In OnCalculate(), ganz am Anfang, fordern Sie es zum Beispiel an:
Bis die Daten des fünfzehnminütigen Zeitrahmens verfügbar sind, wartet der Indikator also auf den nächsten Tick.
Mit der Funktion CopyXXX können Sie die richtige Menge an Daten für die Berechnung anfordern:
In diesem Fall wartet der Indikator auf den nächsten Tick, bis die erforderliche Anzahl von Daten verfügbar ist.
Wenn Sie sich für die Funktion
..., sollten Sie beachten, dass die Datenmenge für die Berechnung nicht größer sein sollte als die rates_total, da sie sonst die Grenzen des Arrays überschreitet. Mit anderen Worten, wenn es auf dem aktuellen Zeitrahmen weniger Balken gibt als auf M15, dann sollten wir die Anzahl der Balken nehmen, die ihrer Anzahl auf dem aktuellen Zeitrahmen entspricht = rates_total
Fordern Sie im Timer alle zwei Minuten beliebige Daten für den gewünschten Zeitraum an. Auf diese Weise verfügen Sie immer über aktuelle Daten für den jeweiligen Zeitraum.
Außerdem: in OnCalculate() ganz am Anfang fordern Sie z.B.:
Bis die Daten des 15-Minuten-Zeitrahmens verfügbar sind, wartet der Indikator also auf den nächsten Tick.
Mit der Funktion CopyXXX können Sie die richtige Menge an Daten für die Berechnung anfordern:
In diesem Fall wartet der Indikator auf den nächsten Tick, bis die erforderliche Datenmenge in number_of_datas verfügbar ist.
Wenn Sie sich für die Funktion
..., sollten Sie beachten, dass die Datenmenge für die Berechnung nicht größer sein sollte als die rates_total, da sonst die Grenzen des Arrays überschritten werden. Mit anderen Worten, wenn es auf dem aktuellen Zeitrahmen weniger Balken gibt als auf M15, dann sollten wir die Anzahl der Balken nehmen, die ihrer Anzahl auf dem aktuellen Zeitrahmen entspricht = rates_total
Danke.
Ich habe es so gemacht:
Ergebnis:
Ich tue mich schwer mit Indikatoren ))))
Hallo zusammen!
Bitte beraten Sie mich über die Funktion CopyHigh.
Ich habe in der Definition dieser Funktion gelesen: "Ruft die historischen Daten in einem Array mit dem maximalen Barpreis für ein bestimmtes Symbol und einen bestimmten Zeitraum ab".
Handelt es sich um ein Bid- oder Ask-Preisfeld? Oder gibt es eine Möglichkeit, die Art des benötigten Preises festzulegen?
Hallo zusammen!
Bitte informieren Sie mich über die Funktion CopyHigh.
Ich habe in der Definition dieser Funktion gelesen: "Ruft Historiendaten in Form eines Arrays maximaler Barpreise für ein bestimmtes Symbol und einen bestimmten Zeitraum ab".
Handelt es sich um ein Bid- oder Ask-Preisfeld? Oder ist es möglich, die Art des benötigten Preises irgendwie festzulegen?
Referenz:Merkmale des Plottens
Merkmale der Diagrammerstellung
Die Verlaufsdaten, auf deren Grundlage die Diagramme erstellt werden, sind auf der Festplatte gespeichert. Wenn Sie ein Diagramm öffnen, werden die Daten von der Festplatte heruntergeladen, und die letzten fehlenden Daten werden vom Handelsserver heruntergeladen. Wenn die historischen Daten eines Finanzinstruments nicht auf der Festplatte verfügbar sind, werden die letzten 512 Balken der Historie heruntergeladen.
Um frühere Daten herunterzuladen, bewegen Sie das Diagramm in den gewünschten Bereich. Sobald der Chart geöffnet ist, erhält die Plattform Informationen zu den aktuellen Kursen. So wird die weitere Kursbewegung in Echtzeit gebildet. Diese Informationen werden automatisch in einer Verlaufsdatei gespeichert und beim erneuten Öffnen dieser Karte verwendet.
Referenz:Merkmale der grafischen Darstellung
Merkmale der Diagrammerstellung
Die historischen Daten, auf deren Grundlage die Diagramme erstellt werden, werden auf der Festplatte gespeichert. Wenn Sie ein Diagramm öffnen, werden die Daten von der Festplatte heruntergeladen, und die letzten fehlenden Daten werden vom Handelsserver heruntergeladen. Wenn die historischen Daten eines Finanzinstruments nicht auf der Festplatte verfügbar sind, werden die letzten 512 Balken der Historie heruntergeladen.
Um frühere Daten herunterzuladen, bewegen Sie das Diagramm in den gewünschten Bereich. Sobald der Chart geöffnet ist, erhält die Plattform Informationen zu den aktuellen Kursen. So wird die weitere Kursbewegung in Echtzeit gebildet. Diese Informationen werden automatisch in einer Verlaufsdatei gespeichert und beim erneuten Öffnen dieser Karte verwendet.
Guten Tag Vladimir, wie immer hilfst du mir weiter :) Ich danke Ihnen!
Wie findet man die kleinste Kerze von N in mql5?
In mql4
Wie findet man die minimale Kerze von N in mql5?
In mql4
Im Expert Advisor oder in einem Indikator? Für den aktuellen Zeitraum oder für einen anderen?