Multi-Timeframe Indikator – Verschiedene Timeframes im gleichen Chart

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #257797 quote
    elvikoelviko
    Participant
    Average


    Hallo zusammen,

    ich versuche, einen komplexen Indikator auf mehreren Zeiteinheiten gleichzeitig im Chart anzuzeigen (z.B. 1-Min und 10-Min Linien im 1-Minuten-Chart).

    Mein Setup:

    • ProRealTime Version 11
    • Haupt-Chart: 1 Minute
    • Indikator berechnet einen Wert (ergebnis1) basierend auf mehreren CALL-Statements zu anderen Indikatoren
    • Der Wert wird mit Fibonacci-Levels auf Preisniveau transformiert und im Chart gezeichnet

    Das Problem: Die 1-Minuten-Linie funktioniert perfekt. Wenn ich aber versuche, eine 10-Minuten-Linie hinzuzufügen mit:



    prorealtime

    timeframe(10 minutes, updateonclose)
    FOR i = 1 TO MIN(1000, barindex - 1) DO
        ergWert10 = ergebnis1[i]
        // ... Transformation und DRAWSEGMENT
    NEXT
    

    …dann zeigt die 10-Min-Linie falsche Werte an, weil ergebnis1 auf dem 10-Min-Chart mit anderen Fibonacci-Levels berechnet wird als auf dem 1-Min-Chart.

    Was ich versucht habe:

    1. Die 1-Min Fibonacci-Werte vorher speichern und im 10-Min-Kontext verwenden
    2. Den RAW-Wert (ergebnis statt ergebnis1) verwenden
    3. timeframe() innerhalb der FOR-Loop (Fehler: “Variable kann nicht in mehreren Zeiteinheiten zugewiesen werden”)

    Die Frage: Wie kann ich ergebnis1 vom 10-Minuten-Timeframe holen, aber mit den gleichen Fibonacci-Referenzwerten transformieren wie die 1-Minuten-Linie?

    Ist es überhaupt möglich, komplexe Indikatoren mit CALL-Statements und eigenen Fibonacci-Berechnungen Multi-Timeframe-fähig zu machen?

    // ========== SPEICHERE 1-MIN FIBONACCI-WERTE ==========

    fibo01min = chartFibo0

    fibo1001min = chartFibo100

    fiboHigh01min = chartFiboHigh0

    fiboHigh1001min = chartFiboHigh100

    tief1min = letztesTiefWert

    hoch1min = hoechstesHighWert


    // ========== 1-MIN LINIE (SCHWARZ) ==========

    FOR i = 1 TO MIN(1000, barindex – 1) DO

      barPos = barindex – i

       

      ergWert = ergebnis1[i]

      ergWertVor = ergebnis1[i + 1]

       

      IF ergWert <= 0 THEN

        IF letztesTiefWert <> 0 THEN

          proz = ergWert / letztesTiefWert

          cLinie = chartFibo0 + (proz * (chartFibo100 – chartFibo0))

          prozVor = ergWertVor / letztesTiefWert

          cLinieVor = chartFibo0 + (prozVor * (chartFibo100 – chartFibo0))

        ELSE

          cLinie = chartFibo0

          cLinieVor = chartFibo0

        ENDIF

      ELSE

        IF hoechstesHighWert <> 0 THEN

          proz = ergWert / hoechstesHighWert

          cLinie = chartFiboHigh0 + (proz * (chartFiboHigh100 – chartFiboHigh0))

          prozVor = ergWertVor / hoechstesHighWert

          cLinieVor = chartFiboHigh0 + (prozVor * (chartFiboHigh100 – chartFiboHigh0))

        ELSE

          cLinie = chartFiboHigh0

          cLinieVor = chartFiboHigh0

        ENDIF

      ENDIF

       

      DRAWSEGMENT(barPos – 1, cLinieVor, barPos, cLinie) COLOURED(0, 0, 0) STYLE(LINE, 1)

    NEXT


    // ========== 10-MIN LINIE (GRÜN) ==========

    timeframe(10 minutes, updateonclose)


    FOR j = 1 TO MIN(1000, barindex – 1) DO

      barPos10 = barindex – j

       

      ergWert10 = ergebnis1[j]

      ergWertVor10 = ergebnis1[j + 1]

       

      IF ergWert10 <= 0 THEN

        IF tief1min <> 0 THEN

          proz10 = ergWert10 / tief1min

          cLinie10 = fibo01min + (proz10 * (fibo1001min – fibo01min))

          prozVor10 = ergWertVor10 / tief1min

          cLinieVor10 = fibo01min + (prozVor10 * (fibo1001min – fibo01min))

        ELSE

          cLinie10 = fibo01min

          cLinieVor10 = fibo01min

        ENDIF

      ELSE

        IF hoch1min <> 0 THEN

          proz10 = ergWert10 / hoch1min

          cLinie10 = fiboHigh01min + (proz10 * (fiboHigh1001min – fiboHigh01min))

          prozVor10 = ergWertVor10 / hoch1min

          cLinieVor10 = fiboHigh01min + (prozVor10 * (fiboHigh1001min – fiboHigh01min))

        ELSE

          cLinie10 = fiboHigh01min

          cLinieVor10 = fiboHigh01min

        ENDIF

      ENDIF

       

      DRAWSEGMENT(barPos10 – 1, cLinieVor10, barPos10, cLinie10) COLOURED(0, 255, 0) STYLE(LINE, 3)

    NEXT


    return




    Vielen Dank für eure Hilfe!

    #257801 quote
    Iván GonzálezIván González
    Moderator
    Legend

    Hallo.

    Das von Ihnen beschriebene Problem tritt auf, weil der Code bei der Durchführung von Transformationsberechnungen innerhalb des TIMEFRAME(10 minutes) -Blocks automatisch die Preise (Hoch, Tief) und Fibonacci-Niveaus verwendet, die den 10-Minuten-Kerzen entsprechen, und dabei die 1-Minuten-Referenzen, die Sie zu speichern versuchten, überschreibt oder ignoriert.

    Um das Problem zu beheben, versuchen Sie Folgendes: Zerlegen Sie die Logik in drei Schritte:

    1. Kontext 1 Minute (Standard): Berechnet und speichert die Referenz-Fibonacci-Niveaus.
    2. Kontext 10 Minuten: Ermitteln Sie nur den Rohwert des Indikators ( ergebnis1 ). Führen Sie hier keine Transformation durch.
    3. Kontext 1 Minute (Standard – Rückgabe): Verwenden Sie den in Schritt 2 abgerufenen Rohwert und wenden Sie die mathematischen Berechnungen unter Verwendung der Referenzen aus Schritt 1 an. Zeichnen Sie abschließend das Objekt.


    robertogozzi thanked this post
Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

Multi-Timeframe Indikator – Verschiedene Timeframes im gleichen Chart


ProBuilder: Indikatoren & Custom Tools

New Reply
Author
author-avatar
elviko @elviko Participant
Summary

This topic contains 1 reply,
has 2 voices, and was last updated by Iván GonzálezIván González
7 months, 1 week ago.

Topic Details
Forum: ProBuilder: Indikatoren & Custom Tools
Language: German
Started: 02/11/2026
Status: Active
Attachments: No files
ProRealCode ProRealCode
Loading...