Dienstag, 16. April 2024, 15:55 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Olli

Benutzer

Registrierungsdatum: 26. Mai 2022

Beiträge: 31

1

Mittwoch, 8. Juni 2022, 17:22

Fuzzy Indikatoren zur Berechnung der Annäherung an eine Linie (support o-Ä.)

Hallo zusammen,

Ich wollte eine recht simple Sache programmieren, nämlich die Verwendung von Fuzzy-Indikatoren zur Berechnung/Normierung des Grades der Annäherung/Überschreiten einer Linie/eines Limits.

Aber offenbar kann man nur feste, numerische Werte und keine Berechnungen oder mit "calc" berechnete Datenreihen wie in anderen Indikatoren verwenden? Schade, ein echter Bummer, oder gibt es eine andere einfache Möglichkeit, Dies zu programmieren, die ich übersehen hätte (wer nicht fragt, bleibt dumm? ;) )?

Der Indikator "Zwischen" spuckt ja auch nur 0 und eins aus und nicht wie nah und weit man an den Limits oder darüber hinaus ist...

Danke schonmal

Schönen Abend

Olli

Olli

Benutzer

Registrierungsdatum: 26. Mai 2022

Beiträge: 31

2

Montag, 13. Juni 2022, 23:12

Das alte Problem wieder

So - ich habe jetzt den Indi programmiert, der einen Wert zwischen 1 und 0 ausgibt je nachdem ob der kurs sich von unten an einen Widerstand oder von oben an einen Support nähert. Der Indi akzeptiert Datenreihen.

Hier der code:

Calc Range: ObSchwelle-UntSchwelle;
Calc OTput: (Range-(OBschwelle-Daten))/(range);
Calc Cond: If(Daten<UNtschwelle,0, If(Daten<Obschwelle,Otput,1));
Cond

Die Inputfelder Daten, Obschwelle und Untschwelle sind jeweils als Datenreihen vorgesehen.

Mit Indis wie "Resist" und "Support" funktioniert das auch wunderbar, nur wenn man Vorberechnungen in den Globalen Definitionen des HS macht, nimmt der Indi bestimmte Berechnungen, nicht, obwohl die gleichen Global Parameter mit #_loadglobal XXX# OK im Chart angezeigt werden.

Hier ein Beispiel:

Global calc SupL1: Support(low, 10, 5, %);
Global Calc ResL1: Resist(high, 10, 5, %);

Global calc Spanne1: (ResL1-supl1);
GLobal calc Mitte1: Supl1+(Spanne1*0.5);

Man kann in dem Indi nicht "Mitte1" mit einem anderen Global verwenden z.B. "SupL1". Dann bekommt man diesen Error Message.



Mit #_Loadglobal SupL1# und #_Loadglobal ResL1# geht es.
Mit #_Loadglobal Mitte1# und dem Indi "Support" auch.
Nur mit #_Loadglobal Mitte1# und z.B. #_Loadglobal SupL1# nicht, obwohl es dieselbe Berechnung ist. Mir völlig unverständlich, wo das Problem ist.

Hat jemand einen Tip?

Danke Gruss

Olli

Nachtrag: Offenbar geht es mit zwei gleichartigen Globals, denn "Mitte1" und "Mitte2" zusammen funktionieren auch. Seltsam

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Olli« (14. Juni 2022, 08:04)