Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 665

 
Artyom Trishkin:

Niemand wird sich diese Art von Hemden ansehen.


Was gibt es dann noch zu sehen? "Der "Tartan" ist der Indikator für das Murrey-Level-System (ich denke, viele kennen ihn). Die Frage war, wie man sie richtig "extrahiert".

die richtigen Daten für iCustom().

 
psyman:

Warum kann ich nicht ein dynamisches Array verwenden?

In diesem Fall habe ich dort den Schlusskurs ohne Berechnung überschrieben.

Wo kann ich nachlesen, wie man Indikatorpuffer verwendet?

Sie ist hier erhältlich: https://book.mql4.com/ru/samples/icustom

Создание пользовательских индикаторов - Простые программы на MQL4 - Учебник по MQL4
Создание пользовательских индикаторов - Простые программы на MQL4 - Учебник по MQL4
  • book.mql4.com
При создании торговой стратегии у разработчика часто возникает необходимость графически отобразить в окне финансового инструмента некоторую зависимость, рассчитанную пользователем (программистом). Для этой цели в языке MQL4 предусмотрена возможность создания пользовательских индикаторов. Пользовательский индикатор - это программа, составленная...
 

Es zeigt Ihnen, wie Sie Berechnungen durchführen und sie zur Anzeige an das Terminal weitergeben können.

Ich habe nirgendwo Zwischenberechnungen ausgegeben, also sagt mir mein Schulprogrammierwissen, dass ein dynamisches Array, das sich bei jedem i++ vergrößert, dafür ausreichend ist.

Warum man dafür einen Puffer braucht, ist mir ein Rätsel, auf das es noch keine Antwort gibt.

 
psyman:

Warum kann ich nicht ein dynamisches Array verwenden?

In diesem Fall habe ich dort den Schlusskurs ohne jede Berechnung überschrieben.

Wo kann ich nachlesen, wie man Indikatorpuffer verwendet?

Sie können es verwenden. Doch bevor Sie ihn schreiben, sollten Sie ihn vergrößern. Sie können es in der Dokumentation nachlesen. Sie haben einen Puffer in Ihrem Indikator deklariert.

psyman:

Sie zeigen Ihnen, wie Sie Berechnungen durchführen und sie zur Anzeige an das Terminal senden können.

Ich gebe nirgendwo Zwischenwerte aus, also sagen mir meine schulischen Programmierkenntnisse, dass ein dynamisches Array, das für jedes i++ inkrementiert wird, ausreicht.

Warum man dafür einen Puffer braucht, ist mir ein Rätsel und ich habe noch keine Antwort darauf.

Nur die Größe des Indikatorpuffer-Arrays wird automatisch mit jedem i++ erhöht.
IndicatorBuffers - Пользовательские индикаторы - Справочник MQL4
IndicatorBuffers - Пользовательские индикаторы - Справочник MQL4
  • docs.mql4.com
Количество буферов не может превышать 512, а также не может быть меньше значения, указанного в свойстве #property indicator_buffers. Если пользовательский индикатор требует дополнительных буферов для расчета, то необходимо использовать функцию IndicatorBuffers() для указания общего числа буферов...
 

= Sie können es in der Dokumentation nachlesen.


Bitte geben Sie mir den Link.

Ich habeSetIndexBuffer(1, tmp1) hinzugefügt, aber es ändert sich nichts.

Soweit ich weiß, wird ein Array, wenn ihm ein Puffer zugewiesen wird, als Array mit demselben Namen angesprochen, aber es ist tatsächlich ein Puffer. Ist das so?

 
psyman:

= Sie können es in der Dokumentation nachlesen.


Bitte geben Sie mir den Link.

Ich habe SetIndexBuffer(1, tmp1) hinzugefügt, aber es hat sich nichts geändert.

Soweit ich weiß, wird ein Array, wenn ihm ein Puffer zugewiesen wird, als Array mit demselben Namen angesprochen, aber es ist tatsächlich ein Puffer. Oder?

Hinweis

Die Anzahl der Puffer darf 512 nicht überschreiten und nicht kleiner sein als der Wert, der in der Eigenschaft #property indicator_buffers angegeben ist. Wenn der benutzerdefinierte Indikator zusätzliche Puffer für die Berechnung benötigt, müssen Sie IndicatorBuffers() verwenden , um die Gesamtzahl der Puffer anzugeben.

Und dann gibt es noch ein Beispiel. Wenn es einen Puffer für die Anzeige gibt und einen für Berechnungen, dann sollten IndicatorBuffers 2 haben und nur dann SetIndexBuffer(1, tmp1); während das Array auf globaler Variablenebene vorher deklariert wird.

 
Anatoliy Ryzhakov:

Was gibt es denn hier zu sehen? "Das Gerücht ist der Murrey-Level-System-Indikator (ich denke, viele Leute kennen ihn). Die Frage war, wie man sie richtig "extrahiert".

die richtigen Daten für iCustom().

Noch einmal. Sehen Sie sich das Bild genau an:


 
psyman:

Warum kann ich nicht ein dynamisches Array verwenden?

In diesem Fall habe ich dort den Schlusskurs ohne jede Berechnung überschrieben.

Wo kann ich nachlesen, wie man Indikatorpuffer verwendet?

Du verstehst etwas nicht!

Eindynamisches Array dient zur Aufzeichnung dynamischer Daten (z. B. eingehende Kurse, Uhrzeit usw.).

Dynamische Arrays sollten nicht in Berechnungen verwendet werden.

Es ist also ganz einfach - ENTWEDER DU SCHREIBST - ODER DU RECHNEST !!!

Ich hoffe, das ist klar (!!!???)

Wenn es sich um Indikatoren handelt, dann sollten Indikatoren (im Allgemeinen!) ÜBERTROFFEN werden. Aber in MT4/MT5 sehen wir das nicht!

In MT4/MT5 sind alle Indikatoren dynamisch. (Oder gibt es noch andere? - Ich weiß es nicht. Ich habe sie nicht alle überprüft, aber ich habe keine anderen gesehen).

Ich weiß nicht, ob es gut oder schlecht ist - ich urteile nicht.

Die Standardindikatoren in MT4/MT5 sind alle dynamisch (wenn ich mich irre, lassen Sie mich korrigieren! Aber ich habe keine anderen gesehen).

Bevor Sie Ihr Problem lösen, sollten Sie es daher formulieren.

Was wollen Sie AUFZEICHNEN oder EXAKT machen?

Und danach entscheiden Sie, welche Felder Sie haben möchten.

Ich hoffe, ich habe mich klar ausgedrückt.

 
neverness:

Du verstehst etwas nicht!

Ein dynamisches Array dient zur Aufzeichnung dynamischer Daten (z. B. eingehende Kurse, Zeiten usw.).

Dynamische Arrays sollten nicht in Berechnungen verwendet werden.

Es ist also ganz einfach - ENTWEDER DU SCHREIBST - ODER DU RECHNEST !!!

Ich hoffe, das ist klar (!!!???)

Wenn es sich um Indikatoren handelt, dann sollten Indikatoren (im Allgemeinen!) berechnet werden. Aber in MT4/MT5 sehen wir das nicht!

Ich weiß nicht, ob es gut oder schlecht ist - ich werde es nicht beurteilen.

Die Standardindikatoren in MT4/MT5 sind alle dynamisch (wenn ich mich irre, lassen Sie mich korrigieren! Aber ich habe keine anderen gesehen).

Bevor Sie also Ihr Problem lösen, sollten Sie es formulieren.

Was wollen Sie AUFZEICHNEN oder EXAKT machen?

Und danach entscheiden Sie, welche Felder Sie haben möchten.

Ich hoffe, ich habe mich klar ausgedrückt.

Aber das ist nicht richtig.

Wer hindert Sie daran, ein dynamisches Array für Berechnungen zu verwenden? Die Größe eines dynamischen Arrays (wenn es sich NICHT um einen Indikatorpuffer handelt, der von einem Subsystem überwacht wird) muss von Ihnen selbst überwacht werden, und Sie können seine Größe bei Bedarf ändern. Aber ein statisches Array hat immer eine vordefinierte Größe - das hängt von der Aufgabe ab.

Wenn es sich um Indikatoren handelt, sollten die Indikatoren (im Allgemeinen!) berechnet werden. Aber in MT4/MT5 sehen wir das nicht!

Was ist das für ein unbegründeter Unsinn? Indikatoren tun in ihrer überwiegenden Mehrheit nichts anderes, als die notwendige und ausreichende Menge an berechneten Daten zu berechnen und anzuzeigen. Ständig, bei jedem Ticken.

Was sollen die ganzen Beschimpfungen? Aus Unwissenheit? Dann ist es besser zu schweigen. Dann werden die Leute sagen, sie hätten es im offiziellen MK-Forum gelesen. Erfinden Sie absichtlich eine Lüge?

 

Ich habe eine Variable in private

Ich versuche, damit in einer Klassenmethode zu arbeiten

sagt, dass die Variable nicht deklariert ist

???