Referenzindikatoren-Arrays.
Ergebnis 1 bis 5 von 5

Thema: Referenzindikatoren-Arrays.

  1. #1
    Ist es möglich, auf ein Array zu verweisen, das bereits in einem Indikator initialisiert wurde? Etwas ähnliches wie die iCustom-Funktion, vielleicht den Fensterindex, den Anzeigenamen und den Puffer-Array-Index.

    Ich habe einen Indikator, der 6 PufferArrays erstellt. Ich habe dann ein paar andere Indikatoren, die doppelten Code ausführen, um vielleicht 2 oder 3 dieser gleichen Puffer zu erzeugen. Alles funktioniert gut, aber ich finde es kann teuer in der Leistung sein, deren Details ich gewonnen habe.

    Wenn ich es richtig verstehe, führt iCustom mit seinen Parametern tatsächlich den Code (in seinem eigenen Thread) aus, um den gewünschten Rückgabewert zu erzeugen. Das ist großartig, aber nicht das, was ich brauche, wenn mein Hauptanliegen zur Zeit Leistung ist.

    Was ich danach suche, ist die Fähigkeit, auf ein bestimmtes Feld eines Indikators zu verweisen, der BEREITS initialisiert wurde. In diesem Fall würde die Referenzierung von einem anderen Indikator stammen, der im selben Fenster angebracht ist. Aber es wäre nützlich, wenn es von woanders referenziert werden könnte, da ich andere Indikatoren in separaten Unterfenstern habe, die wiederum Code duplizieren, um 1 oder 2 der Puffer des Basisindikators zu erzeugen.

    Ich habe eine Reihe von Artikeln gelesen, aber nicht gefunden, was ich brauche. Ich glaube nicht, dass es möglich ist, da dies sicherlich eine gut dokumentierte Strategie zur teilweisen Überwindung der 8-Puffer-Grenze für jeden Indikator wäre. (Warum haben sie das?)

    Hmmm # 8230 ;. Oder beantworte ich hier meine eigene Frage # 8230; ist die Lösung, um meine Indikatoren um eine Reihe von iCustom Calls # 8230; Hmnmmmm # 8230; .. kompliziert und wahrscheinlich jenseits meiner Programmierkenntnisse.

    Irgendwelche GedankenTipps oder eine entscheidende # 8220; NO # 8230; es kann # 8217; t getan werden # 8221; würde sehr geschätzt werden. Es tut mir leid, wenn diese Frage zuvor angesprochen wurde undoder meine Unkenntnis von MQL zeigt.

    Vielen Dank im Voraus für alle Antworten.

  2. #2
    Stellen Sie sicher, dass Ihre Indikatoren nur für Kerzen berechnet werden, die sich geändert haben. Einer der größten Performance-Killer sind Indikatoren, die jede einzelne Kerze durchlaufen.

  3. #3

    Zitat Zitat von ;
    Stellen Sie sicher, dass Ihre Indikatoren nur für Kerzen berechnet werden, die sich geändert haben. Einer der größten Performance-Killer sind Indikatoren, die jede einzelne Kerze durchlaufen.
    Danke für die Antwort . Ja, mit counted_bars = IndiorCounted () ect. Ich schätze, dass es schwierig ist, den Code zu kommentieren, wenn ich keine gepostet habe ... aber ich denke, ich habe nur gehofft, dass es eine schnelle und einfache Antwort geben würde .... JA .... du machst es so. Ich bin zuversichtlich, dass der grundlegende Code in Ordnung ist ... Ich werde es bei Bedarf veröffentlichen .... aber ich bin zuversichtlich, dass der Basiscode gut ist, weil es geschrieben hat ..... hahahahah. Das Problem, das ich habe, ist mehr theoretisch als alles andere ... Ich finde, dass ich eine Menge Code bin duplizieren Wert zu reproduzieren, die bereits in einem Indikator erzeugt wird ....... würde es groß sein, wenn ich könnte Referenz dieser Wert statt den Code immer wieder laufen .... wie ich schon sagte .... mein Code gut läuft, aber, wie ich es hier zwicken und zwicken sie dort mit anderen Indikatoren zu experimentieren, die die gleichen Basis inidior Puffer verwenden. .. diese Frage kommt für mich immer wieder auf ... und fordert mich dazu auf, stundenlang Hilfedateien und Artikel hier und bei tsd zu durchsuchen, um zu sehen, ob es eine Lösung für das gibt, von dem ich sicher bin, dass es ein häufiges Problem ist. Grundsätzlich ... kann ein initialisiertes Array in einem Indikator von einem anderen separaten Indikator referenziert werden. Der betreffende Indikator ist einer, der einen Korb von Währungspaaren als ein einzelnes Währungspaar darstellt ... dh er summiert den HLOC jedes Währungspaares und stellt es als eine Kerze dar. Vielleicht erkläre ich es nicht deutlich genug. Aber ich kann mir keinen besseren Weg vorstellen, es zu erklären, als Seiten und Seiten Code zu veröffentlichen. ================================================== ============== ok hier sind einige Segmente des Codes, der helfen kann erklären, was ich meine .... ich kann die Indikatoren veröffentlichen, wenn nötig, aber es würde einige Zeit dauern, als ich gemacht habe ziemlich viele Änderungen am Basketsindikator, die es mir erlauben, verschiedene Körbe schnell zu laden ... aber ich bin sicher, dass Sie sehen werden, was ich in Bezug auf die Threadfrage meine. int start () {int gezählte_leisten = IndiorCounted (); doppeltes ch, cl, cb, co; if (counted_barslt; 0) return (-1);/---- Der zuletzt gezählte Balken wird neu gezählt, wenn (counted_barsgt; 0) counted_bars--; int pos = Balken - gezählte Balken; while (posgt; = 0) {ch = gethigh (Paar1, Zeitraum, pos) gethigh (Paar2, Zeitraum, pos) gethigh (Paar3, Zeitraum, pos) gethigh (Paar4, Zeitraum, pos) gethigh (Paar5, TPERIOD, po) gethigh (Pair6, TPERIOD, po) gethigh (Pair7, TPERIOD, po) gethigh (Pair8, TPERIOD, po); cl = getlow (Pair1, TPERIOD, po) getlow (PAIR2, TPERIOD, po) getlow (Pair3, TPERIOD, po) getlow (Pair4, TPERIOD, po) getlow (Pair5, TPERIOD, po) getlow (Pair6 , Periode, pos) getlow (Paar 7, Periode, pos) getlow (Paar 8, Periode, pos); cb = getbid (Paar1, Zeitraum, pos) getbid (Paar2, Zeitraum, pos) getbid (Paar3, Zeitraum, pos) getbid (Paar4, Zeitraum, pos) getbid (Paar5, Zeitraum, pos) getbid (Paar6 , Zeitraum, pos) getbid (Paar 7, Zeitraum, pos) getbid (Paar8, Zeitraum, pos); co = getopen (Paar1, Zeitraum, pos) getopen (Paar2, Zeitraum, pos) getopen (Paar3, Zeitraum, pos) getopen (Paar4, Zeitraum, pos) getopen (Paar5, Zeitraum, pos) getopen (Paar6 , Periode, pos) getopen (Paar 7, Periode, pos) getopen (Paar8, Periode, pos);............................................. .... diese Die Werte werden dann an eine Reihe von Puffern übergeben und zum Zeichnen einer Kerze verwendet. Die genannten Funktionen sind unten: - ........................................... ...... double gethigh (Zeichenfolge c, int tf, int ni) {if (StringLen (c) lt; 6) return (0); RefreshRates (); Doppelchigh = iHigh (c, tf, ni)MarketInfo (c, MODE_POINT); Rückkehr (chigh); } double getlow (Zeichenfolge c, int tf, int ni) {if (StringLen (c) lt; 6) return (0); RefreshRates (); Doppelklumpen = iLow (c, tf, ni)MarketInfo (c, MODE_POINT); Rückkehr (Klumpen); } double getbid (Zeichenfolge c, int tf, int ni) {if (StringLen (c) lt; 6) return (0); RefreshRates (); double cbid = iSchließen (c, tf, ni)MarketInfo (c, MODE_POINT); Rückkehr (cbid); } double getopen (Zeichenfolge c, int tf, int ni) {if (StringLen (c) lt; 6) return (0); RefreshRates (); Doppelkopfen = iOpen (c, tf, ni)MarketInfo (c, MODE_POINT); Rückkehr (Copen); } ================================================== ======== Nun nehme ich an, ich möchte einen RSI-Indikator oder Stochs-Indikator für den Warenkorb erstellen .... anstatt Code zu duplizieren, um die Puffer für sagen zu können ... das Gebot (für RSI). ... oder die High, Low, Bid Buffer (für Stochs) ist es möglich, den Originalindikator in sagen .... Sub Window1, Indikator = BasketBars, buffer1, Array-Element 27 oder was auch immer. Hoffentlich können Sie sehen, wohin ich damit gehe. Gibt es etwas, das ich in der allgemeinen MQL-Programmierung vermisse, die all diesen redundantenduplizierten Code, den ich gerade verwende, reduzieren könnte? Wie ich schon sagte .... meine Indikatoren funktionieren gut ..... aber ich habe dieses quälende Gefühl, dass mir etwas fehlt, was die ganze Sache viel einfacher und möglicherweise schneller machen könnte. Ich schätze, dass die Möglichkeit, auf den ursprünglichen Indikator zu verweisen ... in diesem Fall nicht zu einer viel schnelleren Leistung führen würde, da beide Puffer ... im ORIG- und im RSI-Korbindikator nur die zuletzt geänderten Kerzen modifizieren, wie Sie hervorgehoben haben. ... aber theoretisch .... ist es möglich. Da das Endergebnis meiner Strategie mehrere Zeitrahmen für jeden von 8 Körben verwendet, verwendet jeder Zeitrahmen RSI und Stochs mit jeweils 3 verschiedenen Zeiträumen. Obwohl die Leistungssteigerung in einem Fall vernachlässigbar sein kann, könnte sie insgesamt signifikant sein . Nochmals vielen Dank für jede Hilfe oder Tipps .... Ich weiß es zu schätzen.

  4. #4
    Ich sehe, was Sie verlangen, und leider können Sie die Puffer nicht von einem laufenden Indikator referenzieren. Das wäre eigentlich nett, und MT4 ist nicht nett. LOL! Ihre einzige Hoffnung ist die iCustom-Funktion, bei der Sie jeden einzelnen Puffer einzeln referenzieren können.

  5. #5

    Zitat Zitat von ;
    Ich sehe, was Sie verlangen, und leider können Sie die Puffer nicht von einem laufenden Indikator referenzieren. Das wäre eigentlich nett, und MT4 ist nicht nett. LOL!
    Danke Magnumfreak. Ich habe das nicht gedacht. Naja .... zumindest wundere ich mich nicht mehr. Prost Kumpel.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Die tradingintuitive Webseite verwendet Cookies
Wir nutzen Cookies, um Ihnen das Webseitenerlebnis bestmöglich anbieten zu können. Durch weitere Nutzung der Webseite erlauben Sie die Nutzung von Cookies. Für weitere Details und wie Sie ggf. diese Einstellungen verändern können, lesen Sie bitte unsere Datenschutzbestimmung. Lesen Sie mehr