Diskussion zum Artikel "Anwenden von Indikatoren auf Indikatoren" - Seite 2

 

Vielleicht verstehe ich die Frage falsch, aber ich werde versuchen, eine andere Idee einzubringen

indikator_angewandter_preis

int

legt den Standardwert für das Feld "Anwenden auf" fest. Sie können einen der Werte der Aufzählung ENUM_APPLIED_PRICE festlegen. Wenn die Eigenschaft nicht gesetzt ist, wird der Standardwert PRICE_CLOSE verwendet.

 
Rosh:

Vielleicht verstehe ich die Frage falsch, aber ich werde versuchen, eine andere Idee einzubringen

indikator_angewandter_preis

int

legt den Standardwert für das Feld "Anwenden auf" fest. Sie können einen der Werte aus der Aufzählung ENUM_APPLIED_PRICE setzen. Wenn die Eigenschaft nicht gesetzt ist, ist der Standardwert PRICE_CLOSE

Die Idee ist gut, aber sie ist ein bisschen schräg (wie ein Sprung in die Breite:).

Es ist notwendig, den Wert des Parameters applied_price, den der Benutzer im externen Indikator ausgewählt hat, in den internen Indikator zu übertragen.

Zum Beispiel gibt es einen MA, der auf den ausgewählten Daten aufgebaut ist (dies ist ein interner Indikator), und der Wert dieses MA sollte vom Preis abgezogen werden.

Wenn also PRICE_CLOSE ausgewählt wird, sollte der MA auf der Grundlage dieses Preises gebildet werden und derselbe Preis sollte in der Berechnungsformel des Indikators verwendet werden.

1 инд
МА(app_price)
2 инд
МА(app_price)-price(app_price)
 

Aus dem obigen Beispiel ist ersichtlich, dass app_price einfach als Eingabe deklariert werden soll, aber dann muss der Benutzer den erforderlichen Parameter zweimal angeben.

Einmal in Inputs und einmal in Parametrs. Das ist nicht gut.

Es mag Fälle geben, in denen dies notwendig ist, aber es gibt auch Fälle, in denen es schlecht ist.

 
Ich denke, es ist nicht fatal. Wie oft tritt dieses Problem im Alltag auf? Einmal kann beim Starten angegeben werden.
 

Ich unterstütze den Benutzer Urain. Wie kann man herausfinden, was in dem Array price[] enthalten ist? Um welchen Preis handelt es sich genau?

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
{

Wenn es unmöglich ist, dies herauszufinden, dann ist auch der Sinn der Verwendung des Arrays price[] verloren.

Dieses Problem tritt immer dann auf, wenn man einen Mehrwährungsindikator programmiert. Wir wollen zum Beispiel einen Indikator für die Korrelation zwischen Währungen erstellen. Wir haben bereits ein Array mit Preisen. Dies ist price[]. Wir laden die Preise des zweiten Instruments. Aber von welchem Typ?

Wir müssen den app_price-Parameter in die Eingabe bringen und zwei Arrays mit Preisen unabhängig voneinander laden, unter Umgehung von price[].

Unpraktisch!

Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов
Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов
  • 2010.05.17
  • Alexey Klenov
  • www.mql5.com
В последнее время возрос интерес к кластерному анализу рынка FOREX. MQL5 открывает новые возможности исследования закономерностей движения валютных пар. Важным преимуществом MQL5, по сравнению с MQL4, является возможность использования неограниченного количества индикаторных буферов. В данной статье описан пример построения мультивалютного индикатора.
 
EvgeTrofi:

Ich unterstütze den Benutzer Urain. Wie kann man herausfinden, was in dem Array price[] enthalten ist? Was genau ist der Preis?

Und was ist die Logik darin? Wir passen nicht an, wir berechnen nur auf dem Array der Preise.

Aber wenn Sie auf einen bestimmten Preis berechnen müssen, dann verwenden Sie OnCalculate Aufruf in der ersten Form mit app_price explizit außerhalb.

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
sergeev:

Warum ist das logisch? Wir passen nicht an, wir berechnen nur auf einem Array von Preisen.

Aber wenn Sie auf einen bestimmten Preis berechnen müssen, dann verwenden Sie den OnCalculate-Aufruf im ersten Formular mit app_price explizit außerhalb.


Alex, schau dir den Titel des Themas an...

du rufst einen Indikator von einem Indikator auf, der wiederum einen anderen Indikator aufruft, alle Indikatoren sind auf OnCalculate nach dem Schema mit "price" aufgebaut,

wie man beim Aufruf an die unteren Indikatoren weitergibt, welcher app_price benötigt wird.

Es ist nicht wirtschaftlich, den ganzen Satz von Preisen für jeden Indikator zu tragen, wenn der Benutzer klar definiert hat. Aber wenn Sie die OnCalculate-Überladung mit dem vollen Satz wählen, wird es so sein.

Wenn Sie eine reduzierte Version von OnCalculate verwenden und gleichzeitig app_price in die Eingaben einfügen, entsteht Verwirrung, und der Benutzer kann einen Fehler machen, indem er einen app_price in den Eingaben und einen anderen in den Parametern angibt.

 

Was fehlt, ist die Möglichkeit, einen externen Indikator über den Puffer des aktuellen Indikators aufzurufen.

Nehmen wir zum Beispiel an, dass es keine Stochastik in der Lieferung gibt.

Ich habe die %K-Linie berechnet und sie in den Puffer gelegt.

Als nächstes muss ich die %D-Linie berechnen.

Und hier würde ich einen externen Assistenten aufrufen.

Man würde mir sagen, ich solle sie selbst berechnen, indem ich den %K-Puffer verwende.

Aber was soll ich tun?

1. wenn ich den Code dieses Assistenten nicht kenne und ich diesen Assistenten als kompilierten Indikator gekauft habe.

2. die eingebauten Indikatoren werden viel schneller gezählt als ihre MQL-Pendants.

Es wäre auch sehr nützlich, Indikatoren auf dem Eingabepuffer aufrufen zu können.

Vielleicht ist all dies bereits verfügbar? Dann geben Sie mir bitte einen Link zur Dokumentation.
.

Способы вызова индикаторов в MQL5
Способы вызова индикаторов в MQL5
  • 2010.03.09
  • KlimMalgin
  • www.mql5.com
C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
 
VladMsk:

Was fehlt, ist die Möglichkeit, einen externen Indikator über den Puffer des aktuellen Indikators aufzurufen.

Nehmen wir zum Beispiel an, dass es keine Stochastik in der Lieferung gibt.

Ich habe die %K-Linie berechnet und sie in den Puffer gelegt.

Als nächstes muss ich die %D-Linie berechnen.

Und dafür würde ich einen externen Assistenten aufrufen.


Benötigen Sie diesen externen Assistenten, um diese Möglichkeit aus der Dokumentation zu erfüllen?


 
sergeev:


benötigen Sie, dass die externe Maske dieser Möglichkeit aus der Dokumentation entspricht?


Alexey,
Vielen Dank für Ihre Zeit.
Nach der Dokumentation ist es notwendig, die ANDERE Indikator-Handle zu übergeben,
und ich sprach sich für die Möglichkeit, den aktuellen Indikator Puffer zu verarbeiten.
Weiter.
Die ANDERE Indikator-Handle kann übergeben werden, aber wo zu spezifizieren, welche der Puffer verwendet werden soll, habe ich nicht gefunden.