Dienstag, 16. April 2024, 10:53 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Lieber Besucher, herzlich willkommen bei: INVESTOX-Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Klaus Männlich

Fortgeschrittener

Registrierungsdatum: 2. September 2002

Beiträge: 143

Wohnort: Südfrankreich

1

Freitag, 8. November 2002, 13:42

ganz einfach, aber trotzdem falsch

ist das Ergebnis der folgenden in den Chart eingefügten Formel:

================================
calc Linie1: 3120;
calc Linie2: 3125;
calc Linie3: 3130;
calc Linie4: 3135;
calc Linie5: 3140;

calc auswahl: Linie1 or Linie2 or Linie3 or Linie4 or Linie5;

auswahl
=================================

als Wert wird nämlich 3199 zurückgegeben, was erstaunt, weil dieser Wert in der Auswahl nicht vorhanden ist.

Die Zahlen im Beispiel sind in der Realität natürlich Anwenderindikatoren, das Ergebnis war falsch, deshalb habe ich es dann mal ganz einfach mit Zahlen probiert.


Hintergedanke ist die Vereinfachung des Prüfens des Abstandes von mehreren sekundären Signallinien zu einer primärenSignallinie
wie zB:

calc Signal:
if(Signallinie - auswahl < 5, 1, 0);

Kann mir jemand weiterhelfen ?

Grüße
Klaus

Fritz

unregistriert

2

Freitag, 8. November 2002, 14:45

ganz einfach, aber trotzdem falsch

Hallo Klaus,
zumindest bis zur 4. Linie wird immer der letzte Wert zurückgegeben, da ja keine Bedingung für die Auswahl vorhanden ist.
Sobald aber ein 5. oder auch 6. Wert hinzugefügt wird, bleibt kurioserweise der Wert immer bei 3199.

Dies wird wohl nur Herr Knöpfel aufdröseln können.

Gruß Fritz

Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

3

Freitag, 8. November 2002, 21:31

Hallo zusammen,
ich hab auch keine ganz klare Antwort, aber so kann man das wohl nicht machen. Eine Verküpfung mit OR ist auch irgendwie eine Berechnung, weiß leider nicht mehr welche.

Es müsste so geschrieben werden:

calc Linie1: 3120;
calc Linie2: 3125;
calc Linie3: 3130;
calc Linie4: 3135;
calc Linie5: 3140;

calc auswahl: Close > Linie1 or Close > Linie2 or Close > Linie3 or Close > Linie4 or Close > Linie5;

auswahl


Falls es so oder so ähnlich gemeint war.

calc Signal:
if(Signallinie - auswahl < 5, 1, 0);

läßt sich auch so schreiben:
calc Signal: Signallinie - auswahl < 5;

da das Ergebnis der Bedingung NUR 1 oder 0 sein kann.

Etwas besser lesbar kann man auch Klammern verwenden:
calc Signal: (Signallinie - auswahl) < 5;

damit wird auch klarer, was man überprüfen will.

Auch Berechungen lassen sich realisieren (Beispiel von oben):

calc auswahl: (Close > Linie1) + (Close > Linie2) + (Close > Linie3) + (Close > Linie4) + (Close > Linie5);

hier sind die Klammern jetzt erforderlich, mit diesem Konstrukt könnte überprüft werden, welche Linie durchbrochen wird, da mit jedem Durchbruch der Wert von AUSWAHL steigt.

Vielleicht konnte ich etwas weiterhelfen.
Viele Grüße,
Hans-Jürgen

Klaus Männlich

Fortgeschrittener

Registrierungsdatum: 2. September 2002

Beiträge: 143

Wohnort: Südfrankreich

4

Samstag, 9. November 2002, 11:23

Danke für Eure Bemühungen. Das das so nicht geht, war eigentlich logisch, weil ja die Berechnung des Signals erst erfolgt, nachdem die "auswahl" in der or-Zeile definiert wurde. Diese "auswahl" kann sich eine Zeile später ja nicht einfach ändern. (Komisch ist eigentlich nur, daß ein nicht existenter Wert zurückgegeben wird)

@Hans-Jürgen
Ich werde da nächste Woche mal ein bisschen rumprobieren und mich von deinen Beispielen inspirieren lassen. Eine Sortierfunktion könnte das Ganze evtl. vereinfachen.

Grüße
Klaus

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

5

Montag, 11. November 2002, 11:16

Hallo,

>>calc auswahl: Linie1 or Linie2 or Linie3 or Linie4 or Linie5;
>>als Wert wird nämlich 3199 zurückgegeben, was erstaunt, weil dieser Wert in der Auswahl nicht vorhanden ist.

Mit "Or" wird nicht zwischen mehreren Werten "unterschieden", sondern eine logische (bitweise) Oder-Verknüpfung vorgenommen. Das Ergebnis dieser Verknüpfung kann natürlich auch ein neuer Wert sein (so wie 8+7 den neuen Wert 15 ergibt).

Viele Grüße
Andreas Knöpfel